使用 TYPO3 9.5 LTS 中的分发扩展处理多域设置
Handle multi domain setup with distribution extensions in TYPO3 9.5 LTS
我在 TYPO3 9.5.20 LTS 中设置了多域,根据最佳实践经验,我应该使用分发扩展来为每个根提供 Typoscript 和模板。所以我就这么做了。
domainA 模板包含:
- fluid_styled_content
- ...
- gridelements
- 模板a
domainB 模板包含:
- fluid_styled_content
- ...
- gridelements
- 模板b
现在的问题是在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(来自扩展)”添加,保存并瞧瞧。
我在 TYPO3 9.5.20 LTS 中设置了多域,根据最佳实践经验,我应该使用分发扩展来为每个根提供 Typoscript 和模板。所以我就这么做了。
domainA 模板包含:
- fluid_styled_content
- ...
- gridelements
- 模板a
domainB 模板包含:
- fluid_styled_content
- ...
- gridelements
- 模板b
现在的问题是在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(来自扩展)”添加,保存并瞧瞧。