Не срабатывают хуки.
Пытаюсь написать плагин:
<?php
return array(
'name' => 'SentOrderLetter',
'description' => 'Отправка письма заказчику после совершения заказа',
'img' => 'img/letterorder.png',
'handlers' => array(
'frontend_product' => 'orderActionCreate',
),
);<?php
class shopSentOrderLetterPlugin extends shopPlugin
{
public function orderActionCreate()
{
return "<p>something</p>";
}
}Всё вроде бы верно, но html почему то не выводится, если пробовать из шаблона к плагину обратиться - всё в порядке. Но на хук он не реагирует ни как. В чем может быть проблема?
Эта тема в архиве. Добавление комментариев к ней отключено.










6 ответов
frontend_product для нескольких разных частей карточки товара позволяет выводить. Там надо массив возвращать, в качестве ключа указать нужное расположение, в качестве значения ваш код
Описание. Пример в самом низу.
Спасибо, я лучше стал понимать как всё работает, но к сожалению не срабатывает почему то. Вроде в шаблоне вызов хуков есть + другие плагины работают. Но конкретно в этом плагине хуки не срабатывают. Думаю я что то всё равно не так делаю, но пока не понимаю что.
Исправил на это:
<?php class shopSentOrderLetterPlugin extends shopPlugin { public function orderActionCreate() { return array( 'menu' => '<p>something</p>', 'cart' => '<p>something</p>', 'block' => '<p>something</p>', 'block_aux' => '<p>something</p>', ); } }Но не работает.
Пути проверил всё вроде бы как надо. Попробовал уже почти все хуки с разными вариантами вывода, даже письмо пробовал отправлять. И если просто к методу обращаться, то всё в порядке, а с хуком - нет. Куда можно посмотреть ещё или почитать что то?
Этот массив только для frontend_product подойдет. Кэш сбрасывали?
Как вариант --- в теме оформления нет вывода хука.
Всё проверил. Вывод хуков есть:
{* @event frontend_product.%plugin_id%.menu *} {foreach $frontend_product as $_}{$_.menu}{/foreach} <!-- plugin hook: 'frontend_product.block_aux' --> {* @event frontend_product.%plugin_id%.block_aux *} {if !empty($frontend_product)} <div class="aux"> {foreach $frontend_product as $_}{$_.block_aux}{/foreach} </div> {/if} <!-- plugin hook: 'frontend_product.cart' --> {* @event frontend_product.%plugin_id%.cart *} {foreach $frontend_product as $_}{$_.cart}{/foreach}Кэш сбросил, результата нет. В шаблоне выводятся комментарии, но реакции нет.
Попробую ещё раз сделать всё с 0, если другие плагины работают значит, что то у меня не так.
И еще. Это, скорее всего не выйдет
Вот так переименуйте:
Не знаю точно в чем тут дело, но переименовал плагин в sentletter, убрал все заглавные буквы и order из названия. И название класса сменил тоже. Не понимаю в чем проблема была, но после этого всё заработало. Спасибо за помощь.