3

我正在尝试访问模板内的流畅页面配置。

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

            <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 值?

马库斯

4

1 回答 1

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。

更新

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

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

于 2014-03-19T01:23:49.240 回答