访问模板中的fluidpage配置

Mar*_*hof 3 typo3 fedext

我正在尝试访问模板中的流体页面配置.

详细说明:我在页面布局中添加了一个selectfield

            <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'}
            }"/>
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.现在我渲染一个想要访问此字段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>
Run Code Online (Sandbox Code Playgroud)

但这不起作用.经过一些调试后我注意到,这个配置似乎存储在包含XML数组的tx_fed_pa​​ge_flexform中.

如何访问流体模板中的XML值?

马库斯

Cla*_*Due 8

最简单的方法:

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>

不总是提取这些数据的原因仅仅是为了提高性能.还有另一种方法,你可能没有意识到:

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

如果你这样命名你的字段(pages.前缀是密钥,因为我们使用的是pagesDB表),你的值将被保存到记录本身的一个字段中(你必须在SQL模式/ TCA中添加一个字段,并启用值滑动)如果你想要它在根线上).如果保存了具有此前缀的字段,Flux会将其值直接插入到页面记录中,这意味着您可以使用例如{pageVariable.icon}不需要flux:flexform.dataViewHelper的方式立即访问它.

UPDATE

对于更新版本的Flux,请尝试:

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