禁用FluidTYPO3页面模板和/或内容元素

时间:2014-12-10 12:25:34

标签: typo3 fedext

我有一个多域TYPO3 CMS安装,其中每个X页面树都有自己的页面模板,内容元素使用FluidTYPO3构建。

目前,后端用户会看到不同提供商扩展程序提供的所有模板和元素。现在的问题是:是否可以通过某些用户定义的条件禁用页面模板和内容元素(如果我们在页面Y的子页面上只显示页面模板A和内容元素B,D和F?

马库斯

3 个答案:

答案 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)

我为项目所做的是根据站点名称生成目录树:

  • SITE1
    • 模板
    • 布局
    • 局部模板
  • 站点2
    • 模板
    • 布局
    • 局部模板

我创造了:

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;中选择任何一个元素。下拉列表。

我仍在寻找显示和隐藏页面模板以及禁用某些元素的方法。我会在找到某些内容后立即尝试更新此答案:)

干杯......