我正在多站点TYPO3 v.8.7.1安装中构建多个站点,并为每个站点(站点包)创建了一个扩展,其中包含来自tx-news扩展的typoscript .
为了重写新闻扩展,url 's I' ve向realurl.conf添加了类似于doc中的高级示例的设置:https://docs.typo3.org/typo3cms/extensions/news/3.0.0/Main/Administration/Realurl/Index.html
现在,如果可能的话,我想迁移和排序多站点realurl.conf设置,以隔离各站点包中的每个站点的配置 . 我能以某种方式使用ext_localconf.php吗?
而且我很好奇是否可以在设置或常量等中将fixedPostVars pageIds设置为TypoScript数组变量,以使这些设置更加可用于编辑 .
感谢您的时间!
2 回答
感谢Kleins的回答以及很多社区支持,我现在已经设法 Build 了一个非常好的解决方案 .
首先,在使用扩展realurl重写时,请记住删除
realurl_autoconf.php
并在测试期间清除typo3和realurl cache . 还要检查是否在typo3配置模块中应用了realurl变量Solution 1 ,原始配置
只需将配置复制到
ext_localconf.php
Solution 2 ,外部化配置
这是更先进的,对我来说很有用 . (不确定Kleins解决方案是否可能更好) .
在
Classes/RealUrlConf.php
中创建名称空间类,并将其包含在ext_localconf.php
中 . 确保遵循typo3所需的文件路径/命名空间配置约定 .Classes/RealUrlConf.php
:https://pastebin.com/sg836BhJext_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的定义和应用 .Solution 3 ,将核心配置与站点扩展分开
我创建了一个核心包,它是作为我们安装中各个站点包的依赖关系绘制的 . 所以在我的情况下,我只设置核心中的配置(尚未应用pageIds),这是上面提到的配置 . 在这种情况下,没有任何取消注释 .
对于每个单独的站点包,我然后设置一个类似的配置,它只定义pageIds并将核心配置应用于它们 . 在这种情况下,pageIds在各个站点包中被隔离,而大多数配置都驻留在核心中 .
Classes/RealUrlConf.php
:https://pastebin.com/A2xUvrJmext.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';
Good Luck!
我们使用realurl(v2.1.0)钩子有这样的解决方案:
https://bitbucket.org/reelworx/rx-typo3-sitesetup/src/e34b675a223f02580838fe7d5d118d7f07fd8a68/Classes/Hooks/RealUrl.php?at=master&fileviewer=file-view-default
和
https://bitbucket.org/reelworx/rx-typo3-sitesetup/src/e34b675a223f02580838fe7d5d118d7f07fd8a68/ext_localconf.php?at=master&fileviewer=file-view-default#ext_localconf.php-68