Расширение расширения с помощью новых действий - PullRequest
0 голосов
/ 19 декабря 2018

Я перехожу с 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 ]

0 голосов
/ 30 декабря 2018

В зависимости от того, какую версию roq_newsevent вы используете, пространство имен различается в случае:

Репозиторий расширений TYPO3 3.1.1 :

ROQUIN\RoqNewsevent\Controller

Вилка из 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'
];
0 голосов
/ 19 декабря 2018

Больше ничего не нужно делать, кроме расширения класса контроллера и объявления расширенного имени класса контроллера в настройке Typo3, которое вы сделали правильно.

Если имя вашего класса QcMedia \ QmNewsExtended \ Controller \ NewsExtendedController является правильным и расширениеQmNewsExtended установлен правильно, возможно, проблема с вашими кешами.Вы очистили все кэши, включая перезапуск автозагрузки?

...