如何正确使用tt_news中的钩子,每次添加

时间:2015-03-14 09:36:24

标签: php typo3 tt-news

我最近尝试使用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

模板部分正常工作,因为我使用通用标记和相同的文件进行了测试。根据许多互联网指南,它应该像这样开箱即用。但在任何观点中我都看不到任何东西。

我甚至都不知道,从哪里开始寻找。

1 个答案:

答案 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';