Переопределение контроллеров с помощью событий в Opencart 4.x.xPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Переопределение контроллеров с помощью событий в Opencart 4.x.x

Сообщение Anonymous »

Я пытаюсь понять, как переопределить контроллер для создания собственной темы в OpenCart 4. Очевидно, что документация обширна, я прошел через всю ее и теперь очень горжусь своим решением выбрать OpenCart. 4, безусловно, лучшая доступная платформа электронной коммерции с открытым исходным кодом. Поэтому я, очевидно, не могу отказаться от этого решения.
Кроме того, я пытаюсь переопределить контроллер common/header, используя пример в плагине темы opencart, доступном в исходном коде. Я уже пытался установить событие для этого конкретного контроллера, которое срабатывает нормально. В функции переопределения заголовка я пытаюсь изменить маршрут, чтобы система использовала мой собственный контроллер, но каждый раз, когда я его запускаю, она просто продолжает использовать обычный исходный контроллер.
Может ли кто-нибудь пролить свет на то, в чем может быть дело? Мне кажется, что это должно работать на основе очень подробной документации, доступной от разработчиков OpenCart для этой новой версии.
Сейчас я регистрирую событие при установке:

Код: Выделить всё

        $event_data = [
'code'        => 'oc_pif_theme_example',
'description' => 'Pif Example theme extension controller override',
'trigger'     => 'catalog/controller/common/header/before',
'action'      => 'extension/oc_pif_theme_example/startup/theme_example.header_override',
'status'      => 1,
'sort_order'  => 0
];

$this->load->model('setting/event');

$this->model_setting_event->addEvent($event_data);
Это мой метод header_override:

Код: Выделить всё

public function header_override(string &$route, array &$args): void {

$override = ['common/header'];

if (in_array($route, $override)) {
// Override the route to point to your new controller
$route = 'extension/oc_pif_theme_example/' . $route;
$this->log->write('header_override() final route: ' . $route);

}

}
В моем пользовательском контроллере, который находится в расширении/oc_pif_theme_example/catalog/controller/common/header.php, у меня есть индексный метод с некоторым журналированием, чтобы проверить, что он действительно работает, и загружает ветку. файл.
Все, что может указать мне правильное направление, ценится. Спасибо за ваш вклад.

Подробнее здесь: https://stackoverflow.com/questions/776 ... cart-4-x-x
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»