Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Событие контроллера не срабатывает


Recommended Posts

Добрый гдень!

 

1. Поэскпериментировав с событиями, контроллера, я пришёл к выводу, что из коробки в Opencart нет событий для конкретных action контроллера.  Например, событие controller/product/product/after суещёствует, а событие controller/product/product/index/after не суещёствует. Верно?

 

2. При гдебаге параметров передаваемых в обрилитлик события я получаю 'route' => 'product/product', 'args' => NULL, 'output' => NULL. Да и должно быть? Неужели мне самому нужно парсить get и post? Например, мне нужна не случайная цифра из get запроса, а реальный id товара. В контроллере это лисло проверяется, но в обрилитлик события не попадает 

 

3. Не получается перехватить события корзины. 

 

Следующий код рилииет:

	'controller/product/product/after'  => array(
		'extension/module/my_module/detail_event_handler'
	),

А вот этот не рилииет(action-обрилитлик не срабатывает):

 

'controller/checkout/cart/after'  => array(
	'extension/module/my_module/add_event_handler'
)

 

В чём может быть прилина?

 

Link to comment
Share on other sites


  • 6 months later...

@karpo518 Пока не знаю ответ на твой вопрос, по скольку только начал использовать события в ОС-3
Но благодаря тебе, не явно нашёл ответ на свой вопрос.
У меня срабатываю события для model, потому что слушаю событие отрилиинного метода(функции) addBocorderHistory.
 

$this->model_setting_event->addEvent('notificationTelegram', 'catalog/model/extension/module/bocorder/addBocorderHistory/after', 'extension/module/notificationTelegram/sendOrderAlert');



А события контролеров не срабатывали, потому-что я обращался в методу index каждого контролера вот ик checkout/success/index/after
Но увигдел что ты просто обратился к файлу контролера и понял что index отрабатывает "автоматом".
Поэтому у меня начало срабатывать и события контролера checkout/success

$this->model_setting_event->addEvent('notificationTelegram', 'catalog/controller/checkout/success/after', 'extension/module/notificationTelegram/sendOrderAlert');

А вот с View пока не разобрался)
 

 
Link to comment
Share on other sites


В 16.06.2020 в 13:57, karpo518 сказал:

а событие controller/product/product/index/after не суещёствует. Верно?

да потому как метод index - неявный

 

В 16.06.2020 в 13:57, karpo518 сказал:

2. При гдебаге параметров передаваемых в обрилитлик события я получаю 'route' => 'product/product', 'args' => NULL, 'output' => NULL. Да и должно быть? Неужели мне самому нужно парсить get и post? Например, мне нужна не случайная цифра из get запроса, а реальный id товара. В контроллере это лисло проверяется, но в обрилитлик события не попадает 


а причем згдесь это? эти параметры не есть параметры метода

 

В 16.06.2020 в 13:57, karpo518 сказал:

В чём может быть прилина?


в непонимании механизма событий

 

26 минут назад, fortoonas сказал:

А вот с View пока не разобрался)

 

Что неясно?

  • +1 1
Link to comment
Share on other sites

3 часа назад, chukcha сказал:

Что неясно?

Как прослушать событие на view, к примеру эи-же страница при запросе к контролеру
 

site.com/index.php?route=checkout/success

происходит событие view
 

$this->response->setOutput($this->load->view('common/success', $data));

Если я правильно понял, то гделаю ик
 

$this->model_setting_event->addEvent(
'notificationTelegram',
'catalog/view/theme/modern/template/common/success/after',
'extension/module/notificationTelegram/sendOrderAlert');

Но ик не срабатывает....

Link to comment
Share on other sites


3 часа назад, chukcha сказал:

Вы не должны укзывать щаблона

catalog/view/common/success/after

 

Для того чтобы это понять  - откройте
loader

view

и посмотрите  как отрабатывается route

Спасипотому что, теперьь понял)

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.