/ / Dostęp do konfiguracji strony fluidalnej w szablonie - typo3, fedext

Dostęp do konfiguracji strony płynów w szablonie - typo3, fedext

Próbuję uzyskać dostęp do płynnej konfiguracji strony w szablonie.

Szczegółowo: dodałem pole wyboru do mojego układu strony

            <flux:flexform.field.select name="pageIcon" items="{
0: {0: "{f:translate(key: "pageIconNone")}", 1: ""},
1: {0: "{f:translate(key: "pageIconFacebook")}", 1: "fa-facebook-square"},
2: {0: "{f:translate(key: "pageIconFlickr")}", 1: "fa-flickr"},
3: {0: "{f:translate(key: "pageIconGooglePlus")}", 1: "fa-google-plus-square"}
}"/>

Jak na razie dobrze. Teraz renderuję menu i chcę uzyskać dostęp do tego pola pageIcon

    <v:page.menu.directory pages="{settings.pid.socialMenu}" useShortcutData="TRUE" classFirst="first" classLast="last">
<f:for each="{menu}" as="mainPage" iteration="iteration">
<a href="{mainPage.link}" class="{mainPage.class}"><i class="fa {mainPage.pageIcon} fa-2x"></i><b>{mainPage.title}</b></a>
</f:for>
</v:page.menu.directory>

Ale to nie działa. Po debugowaniu zauważyłem, że ta konfiguracja wydaje się być przechowywana tx_fed_page_flexform który zawiera tablicę XML.

Jak mogę uzyskać dostęp do wartości XML w moim szablonie płynów?

Markus

Odpowiedzi:

8 dla odpowiedzi № 1

Najprostszy sposób:

https://fluidtypo3.org/viewhelpers/flux/master/Form/DataViewHelper.html

<flux:flexform.data table="pages" field="tx_fed_page_flexform" uid="{pageUid}" as="pageData"> <a href="#">{pageData.pageIcon}</a> </flux:flexform.data>

Powodem nie zawsze wyodrębniania tych danych jest po prostu wydajność. Jest inny sposób, o którym możesz nie wiedzieć:

<flux:flexform.field.select name="pages.pageIcon" items="{...}" />

Jeśli w ten sposób nazwiesz swoje pole ( pages. prefiks jest kluczem, ponieważ używamy pages Tabela DB) twoja wartość zostanie zapisana w poluw samym rekordzie (pole, które należy następnie dodać w schemacie SQL / TCA, i włączyć przesuwanie wartości w linii głównej, jeśli chcesz). Jeśli pole z tym prefiksem zostanie zapisane, Flux wstawi jego wartość bezpośrednio do rekordu stron, co oznacza, że ​​możesz natychmiast uzyskać do niego dostęp za pomocą na przykład {pageVariable.icon} bez potrzeby flux:flexform.data ViewHelper.

AKTUALIZACJA

Aby uzyskać najnowszą wersję Flux, spróbuj:

<flux:form.data table="pages" field="tx_fed_page_flexform" uid="{pageUid}" as="pageData"> <a href="#">{pageData.pageIcon}</a> </flux:form.data>