我最近尝试使用Generic Markers通过TypoScript发布一些数据库内容,但我需要更加灵活,所以我正在寻找一个解决方案来利用tt_news的钩子。我想将自己的数据模板解析为tt_news的MarkerArray。
我自己的扩展附带了/Classes/Controller/FahrzeugController.php,我根据tt_news提供的代码钩添加了函数extraItemMarkerProcessor(..)。
<?
class FahrzeugController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
function extraItemMarkerProcessor($markerArray, $row, $lConf, $obj) {
$markerArray['###FAHRZEUGE###'] = 'exItMaPro';
return $markerArray;
}
}?>
然后我在ext_localconf.php中添加了一些Config-Parameters。
if (TYPO3_MODE!='BE') {
require_once(t3lib_extMgm::extPath('y7_fahrzeugdatenbank').'/Classes/Controller/FahrzeugController.php');
}
// y7_fahrzeugdatenbank = Path to my Extension , followed by relative path to my .php .
$TYPO3_CONF_VARS['EXTCONF']['tt_news']['extraItemMarkerHook'][] = 'EXT:y7_fahrzeugdatenbank/Classes/Controller/FahrzeugController.php:tx_y7fahrzeugdatenbank'; // tx_y7fahrzeugdatenbank is my SQL prefix
模板部分正常工作,因为我使用通用标记和相同的文件进行了测试。根据许多互联网指南,它应该像这样开箱即用。但在任何观点中我都看不到任何东西。
我甚至都不知道,从哪里开始寻找。
答案 0 :(得分:0)
你的ext_localconf中的Hook注册是错误的。 tx_y7fahrzeugdatenbank
不属于那里。你必须告诉tt_news你的代码在哪个php类中找到。如果您遵循extbase文件夹结构,那么这将是Vendor\Extension\Controller\FahrzeugController
,您的类可以自动加载。
但我强烈建议不要为tt_news Hook使用extbase控制器。使用只包含应该由钩子执行的代码的类,仅此而已。放入your_extenion / Classes / Hooks。使用适当的命名空间,TYPO3将为您自动加载您的课程。
在ext_localconf.php
中,它将是
$TYPO3_CONF_VARS['EXTCONF']['tt_news']['extraItemMarkerHook'][] = 'Vendor\Extension\Hooks\ClassContainingMyHook';