我试图访问模板中的流体页面配置。
详细说明:我在页面布局中添加了一个选择域
<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_page_flexform 中,它包含一个XML数组。
如何访问流体模板中的XML值?
马库斯
答案 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>