Расширение расширения с помощью новых действий
Я перехожу с 6.2 на 7.6 и борюсь с расширением (A), которое расширяет другое расширение (b), которое расширяет Новости (A ->B-> Новости). Все хорошо в 6.2, но не в 7.6.
Я вызываю свое действие из Typoscript (lib.news.nextEvent)
lib.news.nextEvent < .related
nextEvent {
switchableControllerActions {
News {
1 = nextEventList
}
}
settings {
startingpoint = 123
limit = 15
link {
skipControllerAndAction = 1
}
}
}
У меня есть эта ошибка
Oops, an error occurred! Code: 201812181555070cca4167 - {"exception":"exception 'TYPO3\\CMS\\Extbase\\Mvc\\Exception\\NoSuchActionException' with message 'An action \"nextEventListAction\" does not exist in controller \"Roquin\\RoqNewsevent\\Controller\\EventController\"
TypoScript\ Setup.txt
config.tx_extbase {
objects {
Roquin\RoqNewsevent\Controller\EventController {
className = QcMedia\QmNewsExtended\Controller\NewsExtendedController
}
}
}
В моем контроллере у меня есть (не полный фактический класс)
NewsExtendedController.php
use Roquin\RoqNewsevent\Controller\EventController;
class NewsExtendedController extends EventController
public function nextEventListAction(array $overwriteDemand = NULL)
Может кто-нибудь дать мне подсказку об этой ошибке? Спасибо
2 ответа
В зависимости от того, какая версия roq_newsevent
вы используете, пространство имен отличается в случае:
Репозиторий расширений TYPO3 3.1.1:
ROQUIN\RoqNewsevent\Controller
Вилка из https://github.com/visol/ext-roq_newsevent 3.3.0:
Roquin\RoqNewsevent\Controller
Это не должно быть проблемой, но я не уверен насчет реализации в TYPO3.
config.tx_extbase {
objects {
ROQUIN\RoqNewsevent\Controller\EventController {
className = QcMedia\QmNewsExtended\Controller\NewsExtendedController
}
}
}
Вы можете попробовать использовать XCLASS в ext_localconf.php
вместо TypoScript config.tx_extbase.XXX
$GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects']['ROQUIN\\RoqNewsevent\\Controller\\EventController'] = [
'className' => 'QcMedia\\QmNewsExtended\\Controller\\NewsExtendedController'
];
Больше ничего не нужно делать, кроме расширения класса контроллера и объявления расширенного класса контроллера NameName в настройке Typo3, что вы сделали правильно.
Если имя вашего класса QcMedia\QmNewsExtended\Controller\NewsExtendedController указано правильно и расширение QmNewsExtended установлено правильно, возможно, проблема связана с вашими кэшами. Очистили ли вы все кеши, в том числе автозагрузку?