Недавно я пытался использовать универсальные маркеры для вывода некоторого содержимого базы данных с помощью TypoScript, но мне нужно быть более гибким, поэтому я ищу решение для использования хуков для tt_news. Я хочу проанализировать мой собственный шаблон данных в массиве маркеров tt_news.
Мое собственное расширение поставляется с /Classes/Controller/FahrzeugController.php, и я добавил функцию extraItemMarkerProcessor (..) в соответствии с codehook, предоставленным tt_news.
<?
class FahrzeugController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
function extraItemMarkerProcessor($markerArray, $row, $lConf, $obj) {
$markerArray['###FAHRZEUGE###'] = 'exItMaPro';
return $markerArray;
}
}?>
Затем я добавил некоторые параметры конфигурации в мой ext_localconf.php.
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
Часть шаблона работает, так как я тестировал ее с помощью общих маркеров и того же файла. По мнению многих интернет-гидов, это должно работать из коробки, как это. Но я не вижу ничего ни в одном виде.
Я даже не знаю, с чего начать.
Ваша регистрация хука в вашем ext_localconf неверна. tx_y7fahrzeugdatenbank
не принадлежит там. Вы должны сообщить tt_news, в каком классе php находится ваш код. Это было бы Vendor\Extension\Controller\FahrzeugController
если вы следовали структуре папок extbase, ваш класс должен быть автоматически загружен.
Но я настоятельно рекомендую не использовать контроллер extbase для хука tt_news. Используйте класс, который содержит только ваш код, который должен быть выполнен хуком, и ничего более. Вставьте в your_extenion / Классы / Крючки. Используйте правильное пространство имен, и TYPO3 автоматически загрузит ваш класс для вас.
В вашем ext_localconf.php
это будет
$TYPO3_CONF_VARS['EXTCONF']['tt_news']['extraItemMarkerHook'][] = 'Vendor\Extension\Hooks\ClassContainingMyHook';
Других решений пока нет …