我使用的是带有新闻扩展的TYPO3 7.6.14。我想在后端的不同视图之间切换。
根目录中的页TS:
tx_news.templateLayouts {
Custom = Gesamter Artikel2
}

<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
xmlns:n="http://typo3.org/ns/GeorgRinger/News/ViewHelpers"
data-namespace-typo3-fluid="true">
<f:layout name="General" />
<!--
=====================
Templates/News/List.html
-->
<f:section name="content">
<!--TYPO3SEARCH_end-->
<f:if condition="{news}">
<f:then>
<div class="news-list-view">
<f:if condition="{settings.hidePagination}">
<f:then>
<f:for each="{news}" as="newsItem">
<f:if condition="{0:settings.templateLayout} == {0:'Custom}">
<f:then>
<f:render partial="List/GesamteArtikel" arguments="{newsItem: newsItem, settings:settings, className:className, view:'list'}"/>
</f:then>
<f:else>
<f:render partial="List/Item" arguments="{newsItem: newsItem, settings:settings, className:className, view:'list'}"/>
</f:else>
</f:if>
</f:for>
</f:then>
<f:else>
<n:widget.paginate objects="{news}" as="paginatedNews" configuration="{settings.list.paginate}" initial="{offset:settings.offset,limit:settings.limit}">
<f:for each="{paginatedNews}" as="newsItem" iteration="iterator">
<f:render partial="List/Item" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" />
</f:for>
</n:widget.paginate>
</f:else>
</f:if>
</div>
</f:then>
<f:else>
<div class="no-news-found">
<f:translate key="list_nonewsfound" />
</div>
</f:else>
</f:if>
<!--TYPO3SEARCH_begin-->
</f:section>
</html>在我拥有List.html的同一个文件夹中,我添加了自己的文件GesamteArtikel.html
我做错了什么?
编辑:
(更改文件位置)
我发现它没有任何影响。我把它改成了这样的:
<f:then>
<f:for each="{news}" as="newsItem">
<f:if condition="{settings.templateLayout} == 'Custom'">
<f:then>
<f:render partial="GesamteArtikel" arguments="{newsItem: newsItem, settings:settings, className:className, view:'list'}"/>
</f:then>
<f:else>
<f:render partial="GesamteArtikel" arguments="{newsItem: newsItem, settings:settings, className:className, view:'list'}"/>
</f:else>
</f:if>
</f:for>
</f:then>它什么也没做。
它用
<f:else>
<n:widget.paginate objects="{news}" as="paginatedNews" configuration="{settings.list.paginate}" initial="{offset:settings.offset,limit:settings.limit}">
<f:for each="{paginatedNews}" as="newsItem" iteration="iterator">
<f:render partial="List/Item" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" />
</f:for>
</n:widget.paginate>
</f:else>然后我把它改成
<f:else>
<n:widget.paginate objects="{news}" as="paginatedNews" configuration="{settings.list.paginate}" initial="{offset:settings.offset,limit:settings.limit}">
<f:for each="{paginatedNews}" as="newsItem" iteration="iterator">
<f:if condition="{settings.templateLayout} == 'Layout'">
<f:then>
<f:render partial="GesamteArtikel" arguments="{newsItem: newsItem, settings:settings, className:className, view:'list'}"/>
</f:then>
<f:else>
<f:render partial="List/Item" arguments="{newsItem: newsItem, settings:settings, className:className, view:'list'}"/>
</f:else>
</f:if>
</f:for>
</n:widget.paginate>
</f:else>但是,只有当我告诉这两个If语句使用GesamteArtikel (自定义模板)时,它才会使用它,但我不想覆盖旧的item.html。我想在后端选择它时使用我的自定义布局.
发布于 2017-03-13 20:35:56
有两件事可能会有帮助:
首先,在比较中,你似乎遗漏了一个单引号:
<f:if condition="{0:settings.templateLayout} == {0:'Custom}">
您可以在不需要数组旁路的情况下进行字符串比较,所以您得到的结果是:
<f:if condition="{settings.templateLayout} == 'Custom'">第二件事是定制布局文件的位置:
在我拥有List.html的同一个文件夹中,我添加了自己的文件GesamteArtikel.html
您需要将它放在部分根路径中的某个位置,比如部分根路径的EXT:my_ext/Resources/Private/Partials/List/兄弟级(以防覆盖该路径)。
https://stackoverflow.com/questions/42765966
复制相似问题