我有一个流动的typo3网站,单页面布局。一个菜单有不同的布局。如何在我的主模板中获取所选的布局名称?
main.html中
<v:page.menu levels="1" as="sections">
<f:for each="{sections}" as="section" iteration="itemIteration">
<f:debug>{sections}</f:debug>
</f:for>
</v:page.menu>
sub.html
<f:layout name="Pagewithnav" />
<f:section name="Configuration">
<flux:form id="subnav" icon="{f:uri.resource(path: 'Icons/Page/logo.png')}" label="Sub Navigation">
<!-- Insert fields, sheets, grid, form section objects etc. here, in this flux:form tag -->
</flux:form>
<flux:grid>
<!-- Edit this grid to change the "backend layout" structure -->
<flux:grid.row>
<flux:grid.column colPos="0" colspan="4" name="main" label="Navigation wrapper" />
</flux:grid.row>
<flux:grid.row>
<flux:grid.column colPos="1" colspan="4" name="main" label="Main wrapper" />
</flux:grid.row>
</flux:grid>
</f:section>
<f:section name="Main">
<div class="sub_nav">
<div class="container">
<v:content.render column="0"/>
</div>
</div>
<div class="container">
<v:content.render column="1"/>
</div>
</f:section>
答案 0 :(得分:2)
取决于您的确切含义&#34;布局名称&#34;:
pages
表的字段,那么当您在v:page.menu
中对其进行迭代时,这些字段将在每个记录中可用(例如,tx_fed_page_controller_action
)。pages
的字段,而且当这个变量被继承时(例如,backend_layout
是和tx_fed_page_controller_action
也是,但每个都通过不同的方法)它变得更复杂:您需要遍历根线并使用第一个非空值。为此,v:page.rootLine
加v:iterator.filter
加v:iterator.first
可以提供很大的帮助(将根行的输出放入过滤器以删除非空值,然后使用first
VH进行选择过滤结果的第一个值。)。flux:form.data
读取该文件(如果未禁用,则继承,如果模板通过根行匹配)。根据您的具体含义,有很多可能的解决方案。如果您还在寻找有关哪一个有意义的建议:很可能您指的是在页面属性中选择的布局(无论字段如何),为此,v:page.rootLine
加v:iterator.filter
加{ {1}}是一个很好的通用方法,可以选择&#34;幻灯片选择&#34;来自当前页面根行的任何非空值。
答案 1 :(得分:1)
你可以使用流体中的变量来获取它
DECLARE @XMLData XML =
'<JournalEntry xmlns="http://schema.mycompany.com/Info/2">
<JELine sequence="1">
<Amount currencyID="USD">-100.000</Amount>
<FunctionalAmount currencyID="USD">-100.000</FunctionalAmount>
<ReportingCurrencyAmount currencyID="USD">100.000</ReportingCurrencyAmount>
<GLAccount>
<GLNominalAccount>1005690</GLNominalAccount>
<AccountingChartReference>
<ID accountingEntity="T00">T00</ID>
</AccountingChartReference>
</GLAccount>
</JELine>
<JELine sequence="2">
<Amount currencyID="USD">100.000</Amount>
<FunctionalAmount currencyID="USD">100.000</FunctionalAmount>
<ReportingCurrencyAmount currencyID="USD">100.000</ReportingCurrencyAmount>
<GLAccount>
<GLNominalAccount>34180050</GLNominalAccount>
<AccountingChartReference>
<ID accountingEntity="T00">T00</ID>
</AccountingChartReference>
</GLAccount>
</JELine>
</JournalEntry>';
WITH XMLNAMESPACES(DEFAULT 'http://schema.mycompany.com/Info/2')
SELECT ParamValues.SSD.value('GLNominalAccount[1]', 'varchar(8)')
FROM @xmlData.nodes('JournalEntry/JELine/GLAccount') AS ParamValues(SSD) -- dont need the "//"
WHERE ParamValues.SSD.value('GLNominalAccount[1]', 'varchar(8)') LIKE '[2-46-8]%' -- simplier WHERE clause