我在TYPO3 9.5.20 LTS中进行了多域设置,根据最佳实践经验,我应该使用分发扩展为每个根提供Typoscript和模板。所以我就这么做了。
domain模板包含:
- fluid_styled_content
- 格栅
- 模板
domainB模板包含:
- fluid_styled_content
- 格栅
- templateb
现在的问题是,在域B中,我只看到域A的BE布局。
我该怎么分开呢?如何将其限制在页面上?
我用mod.web_layout.BackendLayouts
在Configuration/TSConfig/Page.txt中定义布局。在每个扩展中,我将Page.txt加载到ext_localconf.php
中,类似于:
<?php
if (!defined('TYPO3_MODE')) {
die ('Access denied.');
}
TYPO3CMSCoreUtilityExtensionManagementUtility::addPageTSConfig(
'<INCLUDE_TYPOSCRIPT: source="FILE:EXT:templatea/Configuration/TSConfig/Page.txt">'
);
TYPO3CMSCoreUtilityExtensionManagementUtility::addUserTSConfig(
'<INCLUDE_TYPOSCRIPT: source="FILE:EXT:templatea/Configuration/TSConfig/User.txt">'
);
当然,我在domainB中做templateb;(
旁注:对于tx_gridelements,我有一个解决方案,可以将其添加到Page.txt:
# Limit the gridelements storage to a single page id
TCEFORM.tt_content.tx_gridelements_backend_layout.PAGE_TSCONFIG_ID = 1
但这种限制也只适用于域A。
好吧,一旦你知道了,解决方案就非常简单。您不会将其与addPageTSConfig
一起添加,也不会将其添加到ext_localconf.php
中。只需创建一个/Configuration/TCA/Overrides/pages.php
并添加:
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerPageTSConfigFile("myextkey",'配置/TSConfig/Page.txt','模板域A PageTSConfig');
删除缓存后,转到您的页面设置";资源";并通过";包括页面TSconfig(来自扩展(";,拯救,瞧。
文件参考:https://docs.typo3.org/m/typo3/reference-tsconfig/master/en-us/UsingSetting/Index.html#using-和设置tsconfig