使用 TYPO3 9.5 LTS 中的分发扩展处理多域设置

Handle multi domain setup with distribution extensions in TYPO3 9.5 LTS

我在 TYPO3 9.5.20 LTS 中设置了多域,根据最佳实践经验,我应该使用分发扩展来为每个根提供 Typoscript 和模板。所以我就这么做了。

domainA 模板包含:

domainB 模板包含:

现在的问题是在domainB中我只能看到domainA的BE布局。

我怎样才能把它分开?我怎样才能将它限制在它的页面上?

我用 mod.web_layout.BackendLayouts 在 Configuration/TSConfig/Page.txt 中定义布局。 在每个扩展中,我将 Page.txt 加载到 ext_localconf.php 中,例如:

<?php
if (!defined('TYPO3_MODE')) {
    die ('Access denied.');
}

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig(
    '<INCLUDE_TYPOSCRIPT: source="FILE:EXT:templatea/Configuration/TSConfig/Page.txt">'
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addUserTSConfig(
    '<INCLUDE_TYPOSCRIPT: source="FILE:EXT:templatea/Configuration/TSConfig/User.txt">'
);

当然我在域 B 中做 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

但是这个限制也只适用于domainA。

好的,一旦你知道了,解决方法就很简单了。 您不会使用 addPageTSConfig 添加它,也不会在 ext_localconf.php 中添加它。 只需创建一个 /Configuration/TCA/Overrides/pages.php 并添加:

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerPageTSConfigFile( 'myextkey', 'Configuration/TSConfig/Page.txt', 'Template domainA PageTSConfig' );

删除缓存后,将您的页面设置转到“资源”并通过“包含页面 TSconfig(来自扩展)”添加,保存并瞧瞧。

文档参考:https://docs.typo3.org/m/typo3/reference-tsconfig/master/en-us/UsingSetting/Index.html#using-and-setting-tsconfig