我正在尝试将typo3 7.6.32安装迁移到8.7.24。将所有扩展名更新为最新版本并完成基本页面设置并工作后,ke_search扩展名仅在一个特定页面上中断。
实际错误消息:
Argument 1 passed to TYPO3\CMS\Fluid\View\StandaloneView::setTemplateRootPaths() must be of the type array, null given, called in /var/www/web18/htdocs/relaunch2016_t3v8/typo3conf/ext/ke_search/pi1/class.tx_kesearch_pi1.php on line 95
TypeError thrown in file
/var/www/web18/htdocs/typo3_src-8.7.24/typo3/sysext/fluid/Classes/View/StandaloneView.php in line 178.
16 TYPO3\CMS\Fluid\View\StandaloneView::setTemplateRootPaths(NULL)
/var/www/web18/htdocs/relaunch2016_t3v8/typo3conf/ext/ke_search/pi1/class.tx_kesearch_pi1.php:
00093: {
00094: $this->searchFormView = GeneralUtility::makeInstance('TYPO3\\CMS\\Fluid\\View\\StandaloneView');
00095: $this->searchFormView->setTemplateRootPaths($this->conf['templateRootPaths']);
00096: $this->searchFormView->setPartialRootPaths($this->conf['partialRootPaths']);
00097: $this->searchFormView->setLayoutRootPaths($this->conf['layoutRootPaths']);
15 tx_kesearch_pi1::initFluidTemplate()
/var/www/web18/htdocs/relaunch2016_t3v8/typo3conf/ext/ke_search/pi1/class.tx_kesearch_pi1.php:
00067:
00068: // init template for pi1
00069: $this->initFluidTemplate();
00070:
00071: // hook for initials
这会持续多行,但我认为问题出在这部分。
我尝试过this solution,但无济于事。据我所知(使用Typo3对象浏览器),根本没有为ke_search加载整个配置。
这是7.6的原始打字稿(的一部分):
plugin.tx_kesearch_pi1 {
templateRootPath = fileadmin/fluidtpl/_kesearch/Templates/
partialRootPath = fileadmin/fluidtpl/_kesearch/Partials/
layoutRootPath = fileadmin/fluidtpl/_kesearch/Layouts/
}
plugin.tx_kesearch_pi2 {
templateRootPath = fileadmin/fluidtpl/_kesearch/Templates/
partialRootPath = fileadmin/fluidtpl/_kesearch/Partials/
layoutRootPath = fileadmin/fluidtpl/_kesearch/Layouts/
}
使用前面提到的答案中的解决方案:
plugin.tx_kesearch_pi1 {
templateRootPaths {
5 = EXT:ke_search/Resources/Private/Templates/
}
partialRootPaths {
5 = EXT:ke_search/Resources/Private/Partials/
}
layoutRootPaths {
5 = EXT:ke_search/Resources/Private/Layouts/
}
}
plugin.tx_kesearch_pi2 {
templateRootPaths {
5 = EXT:ke_search/Resources/Private/Templates/
}
partialRootPaths{
5 = EXT:ke_search/Resources/Private/Partials/
}
layoutRootPaths {
5 = EXT:ke_search/Resources/Private/Layouts/
}
}
我也尝试添加以前使用的模板作为后备,但是似乎根本无法识别它。我还在每一步之后都清除了缓存,但是没有任何变化,仍然是相同的错误。
我已经准备好一定程度地更改旧模板文件,但是此时我什至无法使用默认模板。
答案 0 :(得分:0)
您是否在Typoscript-Object-Browser的Template Backend Module中显示了TYPO3为该页面计算了什么?您必须具有类似屏幕截图的类似输出:[TYPO3对象浏览器的屏幕截图] [1]:https://i.stack.imgur.com/UZ4es.jpg
答案 1 :(得分:0)
我发现了一个错误:我在树下的某个地方有另一个拼写错误,它覆盖了templateRootPath,partialRootPath和layoutRootPath设置。清除此罪魁祸首后,一切都按预期进行。