Typo3扩展程序ke_search无法加载配置/模板

时间:2019-02-12 18:05:29

标签: php typo3 faceted-search typo3-8.7.x

我正在尝试将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/
    }
}

我也尝试添加以前使用的模板作为后备,但是似乎根本无法识别它。我还在每一步之后都清除了缓存,但是没有任何变化,仍然是相同的错误。

我已经准备好一定程度地更改旧模板文件,但是此时我什至无法使用默认模板。

2 个答案:

答案 0 :(得分:0)

您是否在Typoscript-Object-Browser的Template Backend Module中显示了TYPO3为该页面计算了什么?您必须具有类似屏幕截图的类似输出:[TYPO3对象浏览器的屏幕截图] [1]:https://i.stack.imgur.com/UZ4es.jpg

答案 1 :(得分:0)

我发现了一个错误:我在树下的某个地方有另一个拼写错误,它覆盖了templateRootPath,partialRootPath和layoutRootPath设置。清除此罪魁祸首后,一切都按预期进行。