访问模板中的fluidpage配置

时间:2014-03-18 19:20:04

标签: typo3 fedext

我试图访问模板中的流体页面配置。

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

            <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'}
            }"/>

到目前为止一切顺利。现在我渲染一个菜单想要访问此字段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>

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

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

马库斯

1 个答案:

答案 0 :(得分: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.前缀是关键,因为我们使用的是pages数据库表),您的值将保存到记录本身的字段中(您必须填写一个字段)然后添加SQL模式/ TCA,并根据需要在根行中启用值滑动)。如果保存了具有此前缀的字段,Flux会将其值直接插入到页面记录中,这意味着您可以使用例如{pageVariable.icon}立即访问它,而无需flux:flexform.data ViewHelper。

更新

有关Flux的最新版本,请尝试:

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