将 TYPO3 realurl.conf fixedPostVars 迁移到站点扩展
Migrate TYPO3 realurl.conf fixedPostVars to site extension
我正在多站点 TYPO3 v.8.7.1 安装中构建多个站点,并为每个站点(站点包)创建了一个扩展,其中包含来自 tx-news 扩展的拼写错误。
为了重写新闻扩展 url,我已将设置添加到 realurl.conf,类似于文档中的高级示例:https://docs.typo3.org/typo3cms/extensions/news/3.0.0/Main/Administration/Realurl/Index.html
现在,如果可能的话,我想迁移和排序多站点 realurl.conf 设置,以将每个站点的配置隔离在各自的站点包中。我能以某种方式使用 ext_localconf.php 吗?
而且我很好奇是否可以在设置或常量等中将 fixedPostVars pageIds 设置为 TypoScript 数组变量,以使这些设置更易于编辑。
感谢您的宝贵时间!
我们有这样一个使用 realurl (v2.1.0+) hooks 的解决方案:
和
感谢 Kleins 的回答和大量的社区支持,我现在已经设法建立了一个运行良好的解决方案。
首先,在使用扩展realurl重写时,记得删除realurl_autoconf.php
并清除typo3和realurl cache 在测试期间。还要检查 realurl 变量是否应用于 typo3 配置模块
解决方案 1、原始配置
只需将您的配置复制到 ext_localconf.php
解决方案 2,外部配置
这个更高级,对我来说效果很好。 (不确定 Kleins 解决方案是否会更好)。
在 Classes/RealUrlConf.php
中创建命名空间 class 并将其包含在 ext_localconf.php
中。确保遵循 typo3 要求的 filepath/namespace 配置约定。
Classes/RealUrlConf.php
: https://pastebin.com/sg836BhJ
ext_localconf.php
:
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/realurl/class.tx_realurl_autoconfgen.php']['extensionConfiguration']['coreRealUrlConf'] = 'Micke\GenCore\RealUrlConf->realUrlConfigurer';
如果你想像这样使用设置,你可以在 Classes/RealUrlConf.php
.
中取消注释 pageIds 的定义和应用
解决方案 3,将核心配置与站点扩展分开
我创建了一个核心包,它是我们安装中各个站点包的依赖项。所以在我的例子中,我只在核心中设置配置(还没有应用 pageIds),这是上面提到的配置。在这种情况下,无需取消任何注释。
然后我为每个单独的网站包设置了一个类似的配置,它只定义 pageIds 并将核心配置应用于它们。在这种情况下,pageIds 被隔离在各个站点包中,而大部分配置位于核心中。
Classes/RealUrlConf.php
: https://pastebin.com/A2xUvrJm
ext.localconf.php
:
// Include realurl configuration with page IDs
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/realurl/class.tx_realurl_autoconfgen.php']['extensionConfiguration'][$_EXTKEY . 'realUrlVars'] = 'Micke\RieSitepack\RealUrlConf->realUrlConfigurer';
祝你好运!
我正在多站点 TYPO3 v.8.7.1 安装中构建多个站点,并为每个站点(站点包)创建了一个扩展,其中包含来自 tx-news 扩展的拼写错误。
为了重写新闻扩展 url,我已将设置添加到 realurl.conf,类似于文档中的高级示例:https://docs.typo3.org/typo3cms/extensions/news/3.0.0/Main/Administration/Realurl/Index.html
现在,如果可能的话,我想迁移和排序多站点 realurl.conf 设置,以将每个站点的配置隔离在各自的站点包中。我能以某种方式使用 ext_localconf.php 吗?
而且我很好奇是否可以在设置或常量等中将 fixedPostVars pageIds 设置为 TypoScript 数组变量,以使这些设置更易于编辑。
感谢您的宝贵时间!
我们有这样一个使用 realurl (v2.1.0+) hooks 的解决方案:
和
感谢 Kleins 的回答和大量的社区支持,我现在已经设法建立了一个运行良好的解决方案。
首先,在使用扩展realurl重写时,记得删除realurl_autoconf.php
并清除typo3和realurl cache 在测试期间。还要检查 realurl 变量是否应用于 typo3 配置模块
解决方案 1、原始配置
只需将您的配置复制到 ext_localconf.php
解决方案 2,外部配置
这个更高级,对我来说效果很好。 (不确定 Kleins 解决方案是否会更好)。
在 Classes/RealUrlConf.php
中创建命名空间 class 并将其包含在 ext_localconf.php
中。确保遵循 typo3 要求的 filepath/namespace 配置约定。
Classes/RealUrlConf.php
: https://pastebin.com/sg836BhJ
ext_localconf.php
:
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/realurl/class.tx_realurl_autoconfgen.php']['extensionConfiguration']['coreRealUrlConf'] = 'Micke\GenCore\RealUrlConf->realUrlConfigurer';
如果你想像这样使用设置,你可以在 Classes/RealUrlConf.php
.
解决方案 3,将核心配置与站点扩展分开
我创建了一个核心包,它是我们安装中各个站点包的依赖项。所以在我的例子中,我只在核心中设置配置(还没有应用 pageIds),这是上面提到的配置。在这种情况下,无需取消任何注释。
然后我为每个单独的网站包设置了一个类似的配置,它只定义 pageIds 并将核心配置应用于它们。在这种情况下,pageIds 被隔离在各个站点包中,而大部分配置位于核心中。
Classes/RealUrlConf.php
: https://pastebin.com/A2xUvrJm
ext.localconf.php
:
// Include realurl configuration with page IDs
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/realurl/class.tx_realurl_autoconfgen.php']['extensionConfiguration'][$_EXTKEY . 'realUrlVars'] = 'Micke\RieSitepack\RealUrlConf->realUrlConfigurer';
祝你好运!