Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TYPO3新闻-定义自己的模板_Typo3_Typo3 7.6.x_Tx News_Typo3 Extensions - Fatal编程技术网

TYPO3新闻-定义自己的模板

TYPO3新闻-定义自己的模板,typo3,typo3-7.6.x,tx-news,typo3-extensions,Typo3,Typo3 7.6.x,Tx News,Typo3 Extensions,我正在使用Typo37.6.14和新闻扩展。我想在后端的不同视图之间切换 根目录中的第TS页: tx_news.templateLayouts { Custom = Gesamter Artikel2 } 在我的List.html所在的文件夹中,我添加了自己的文件GesamteArtikel.html 我做错了什么 编辑: (更改了文件的位置) 我发现它没有影响。我把它改成这样: <f:then> <f

我正在使用Typo37.6.14和新闻扩展。我想在后端的不同视图之间切换

根目录中的第TS页:

tx_news.templateLayouts {     
 Custom = Gesamter Artikel2
}


在我的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>

但它随后只使用Item.html 如果我告诉两个If语句使用GesamteArtikel(自定义模板),它将使用它,但我不想覆盖旧的item.html。我想在后端选择自定义布局时使用它…

有两件事可能会有所帮助:

首先,在比较中,您似乎缺少一个报价:

您可以在不绕过数组的情况下进行字符串比较,因此得到的结果是:

<f:if condition="{settings.templateLayout} == 'Custom'">

第二件事是自定义布局的文件位置:

在我的List.html所在的文件夹中,我添加了自己的文件GesamteArtikel.html


您需要将它放在部分根路径中的某个位置,如
EXT:my_EXT/Resources/Private/Partials/List/
部分
List/Item
(以防覆盖该路径)。

您可能还需要检查。不幸的是,这没有帮助。。。我更改了我的f:if条件,如:并将文件放在不同的位置。这是我以前的list.html新闻/Resources/Private/Partials/list这是我的自定义模板news/Resources/Private/Partials,但我发现f:if条件可能仍然存在问题。查看我的更新答案(将自定义更改为仅用于测试目的的布局)
<f:if condition="{settings.templateLayout} == 'Custom'">