我有一个多域TYPO3 CMS安装,其中每个X页面树都有自己的页面模板,内容元素使用FluidTYPO3构建。
目前,后端用户会看到不同提供商扩展程序提供的所有模板和元素。现在的问题是:是否可以通过某些用户定义的条件禁用页面模板和内容元素(如果我们在页面Y的子页面上只显示页面模板A和内容元素B,D和F?
马库斯
答案 0 :(得分:2)
解决方案是为不同的模板集提供单独的TS配置。
参见以下示例:
your_ext/Configuration/TypoScript/Set1/setup.txt
:
plugin.tx_yourext.view {
templateRootPath = EXT:your_ext/Resources/Private/Set1/Templates/
partialRootPath = EXT:your_ext/Resources/Private/Set1/Partials/
layoutRootPath = EXT:your_ext/Resources/Private/Set1/Layouts/
}
your_ext/Configuration/TypoScript/Set2/setup.txt
:
plugin.tx_yourext.view {
templateRootPath = EXT:your_ext/Resources/Private/Set2/Templates/
partialRootPath = EXT:your_ext/Resources/Private/Set2/Partials/
layoutRootPath = EXT:your_ext/Resources/Private/Set2/Layouts/
}
your_ext/ext_tables.php
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile($_EXTKEY, 'Configuration/TypoScript/Set1', 'Templates Set1');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile($_EXTKEY, 'Configuration/TypoScript/Set2', 'Templates Set2');
因此,您可以在树中的指定TS模板中包含所需的集合。例如。你的结构是:
root
|
|- Home1 (TS Template)
| |
| |- Page 1
| |- Page 2
|- Home2 (TS Template)
|
|- Page 1
|- Page 2
然后你可以包含"模板Set1"在你的" Home1" TS模板,但"模板Set2"在你的" Home2" TS模板。
唯一的缺点是:你不能在同一页面上同时使用两套。
offcial manual的更多信息。
更新 05.03.2015:创建了ticket来跟踪问题,无法取消设置自定义CE,现在这个问题终于成为solved。 因此,从上面的提交消息中获取示例,可以这样做:
# disable the "Alert" element:
plugin.tx_fluidbootstraptheme.forms.alert.enabled = 0
答案 1 :(得分:0)
我为项目所做的是根据站点名称生成目录树:
我创造了:
plugin.tx_yourprovidername.settings.sitename = site1
然后我可以在我的模板中使用它:
<f:layout name="{settings.sitename}/nameoflayout"/>
答案 2 :(得分:0)
至少有一种方法可以隐藏新内容向导中的元素和标签。将其添加到您的页面tsconfig中,并确保将其包含在您的页面树中(属性&gt;资源&gt; typoscript配置):
mod.wizards.newContentElement.wizardItems.common.show =
此行将隐藏&#34;普通&#34;新内容向导中的选项卡。如果您相应地对ce模板进行分组,则可以控制为给定页面树显示哪些元素。您还可以使用&#34;:= removeFromList(yourElement1,...)&#34;隐藏单个元素。
请注意,这仅适用于新内容向导。编辑元素时,您仍然可以从&#34;流体内容类型&#34;中选择任何一个元素。下拉列表。
我仍在寻找显示和隐藏页面模板以及禁用某些元素的方法。我会在找到某些内容后立即尝试更新此答案:)
干杯......