我正试图将一个类型3 7.6.32安装迁移到8.7.24。在将所有扩展更新到最新版本并完成基本页面设置和工作后,ke_search扩展仅在一个特定页面上中断。
实际错误消息:
Argument 1 passed to TYPO3CMSFluidViewStandaloneView::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 TYPO3CMSFluidViewStandaloneView::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
这又继续了几行,但我认为问题出在这一部分。
我试过这个解决方案,但没有用。据我所知(使用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/
}
}
我还尝试添加以前使用的模板作为后备,但似乎根本无法识别。我也在每一步后清除了缓存,但没有任何变化,仍然是相同的错误。
我已经做好了在一定程度上更改旧模板文件的准备,但目前我甚至无法使用默认模板。
您是否在Typoscript对象浏览器的模板后端模块中显示了TYPO3为此页面计算的内容?您必须有类似于屏幕截图中的输出:[screenshot of TYPO3 Object Browser][1]:https://i.stack.imgur.com/UZ4es.jpg
我发现了错误:我在树的某个地方有另一个打字脚本,它覆盖了templateRootPath、partialRootPath和layoutRootPath设置。在除掉这个罪犯之后,一切都按计划进行。