我正在尝试访问模板中的流体页面配置.
详细说明:我在页面布局中添加了一个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_page_flexform中.
如何访问流体模板中的XML值?
马库斯
最简单的方法:
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
DB表),你的值将被保存到记录本身的一个字段中(你必须在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>
归档时间: |
|
查看次数: |
1729 次 |
最近记录: |