TYPO3:EXT:news 不同的模板布局和相应的 TypoScript
TYPO3: EXT:news different templateLayouts and corresponding TypoScript
我已将 EXT:news 配置为不同的 templateLayouts
,如 https://docs.typo3.org/typo3cms/extensions/news/AdministratorManual/Templates/TemplateSelector/Index.html
所示
一切正常。
现在我想为每个 templateLayout 使用不同的 TypoScript。
我有两种不同的列表类型:列表类型 98 和列表类型 99。您可以在 flexform 中选择它们,并且流体模板切换正确。
但是怎么可能有单独的 list-type 98 和 list-type 99 的错别字呢?
例如列表类型 98:每页 5 条新闻,列表类型 99:每页 10 条新闻。
这可以通过一种解决方法实现。
1、创建TypoScript:
plugin.tx_news.settings {
default {
setting1 = abc
list.image.width = 100
detail.image.width = 123
}
type1 {
setting1 = abcdef
list.image.width = 200
}
}
2、采用模板
而不是默认的部分
<f:render partial="List/Item" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" />
您现在可以这样做了
# use a f:case if more than 1 templateLayout used
<f:if condition="{settings.templateLayout}">
<f:then>
<f:render partial="List/Item" arguments="{newsItem: newsItem,settings:settings.type1,iterator:iterator}" />
<f:then>
<f:else>
<f:render partial="List/Item" arguments="{newsItem: newsItem,settings:settings.default,iterator:iterator}" />
</f:else>
</f:if>
这应该会在这个操作中更改此部分中所有位置的设置。
我目前看到的缺点:
- 您需要采用每个模板
- 我想像
plugin.tx_news.settings.default < plugin.tx_news.settings
这样的东西也可以使用所有默认设置。
我已将 EXT:news 配置为不同的 templateLayouts
,如 https://docs.typo3.org/typo3cms/extensions/news/AdministratorManual/Templates/TemplateSelector/Index.html
一切正常。
现在我想为每个 templateLayout 使用不同的 TypoScript。 我有两种不同的列表类型:列表类型 98 和列表类型 99。您可以在 flexform 中选择它们,并且流体模板切换正确。
但是怎么可能有单独的 list-type 98 和 list-type 99 的错别字呢?
例如列表类型 98:每页 5 条新闻,列表类型 99:每页 10 条新闻。
这可以通过一种解决方法实现。
1、创建TypoScript:
plugin.tx_news.settings {
default {
setting1 = abc
list.image.width = 100
detail.image.width = 123
}
type1 {
setting1 = abcdef
list.image.width = 200
}
}
2、采用模板
而不是默认的部分
<f:render partial="List/Item" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" />
您现在可以这样做了
# use a f:case if more than 1 templateLayout used
<f:if condition="{settings.templateLayout}">
<f:then>
<f:render partial="List/Item" arguments="{newsItem: newsItem,settings:settings.type1,iterator:iterator}" />
<f:then>
<f:else>
<f:render partial="List/Item" arguments="{newsItem: newsItem,settings:settings.default,iterator:iterator}" />
</f:else>
</f:if>
这应该会在这个操作中更改此部分中所有位置的设置。
我目前看到的缺点:
- 您需要采用每个模板
- 我想像
plugin.tx_news.settings.default < plugin.tx_news.settings
这样的东西也可以使用所有默认设置。