Пользовательские хуки в Prestashop 1.7

Я пытаюсь создать собственный хук для Prestashop 1.7.0.3 для модуля слайдера. Я вставляю:

displaySlider: - ps_imageslider

в файле theme.yml на блоке «хуки». Затем вставьте:

{if $page.page_name == 'index'} 
   {hook h='displaySlider'}
{/if} 

в файле theme / templates / layouts / layout-both-columns.tpl между тегами header и section id = ”wrapper”. Согласно этой статье: Пользовательские хуки в Prestashop 1.7 все будет работать нормально, но крючок не отображается на доступных крючках, когда я пытаюсь изменить положение модуля слайдера с бэкэнда.


person George    schedule 07.01.2017    source источник


Ответы (4)


Я работал сегодня над тем же вопросом.

И мне удается заставить его появиться, вероятно, это не лучший способ, и я надеюсь, что это не лучший способ, потому что это странно.

В вашем theme.yml вы должны установить хук следующим образом:

global_settings:
  hooks:
    custom_hooks:
      - name: displayFooterBefore
        title: displayFooterBefore
        description: Add a widget area above the footer

И если вы хотите увидеть свой хук на странице позиции, вам нужно переключиться на другой шаблон и вернуться к своему. (Вид обновления)

Вы также можете проверить неполный документ в Prestashop: http://developers.prestashop.com/themes/hooks/index.html

Я надеюсь, что есть другой способ обновить хуки на этой странице ...

person KelzoJP    schedule 08.01.2017
comment
Спасибо. Да, я переключаюсь на другой шаблон, а затем снова на свой, и все работает. Я также считаю, что это не правильный способ, но он работает, поэтому спасибо за решение. - person George; 09.01.2017
comment
вам нужно переключиться на другой шаблон и вернуться к своему, который звучит так, как будто вам пришлось переключать темы? Я считаю, что удаление файла shop [n] .json дает то же самое. Увы, мне ни один из этих приемов не покажет мой новый крючок! :( - person Jono; 02.07.2020

Так что просто для ясности. Чтобы добавить новый крючок в Prestashop.

  1. В \ themes \ yourTheme \ config \ theme.yml вы добавляете
 
    custom_hooks:
          - name: displayYourCustomHook
          - title: displayYourCustomHook
          - description: This is a Custom hook

  1. В том же файле в разделе modules_to_hook:
 displayYourCustomHook:
        - ps_moduleIwantoHook
        - ps_anotherModuleIwantToHook

  1. Куда бы в ваших файлах .tpl вы хотите добавить свой хук:
 
...
   {hook h='displayYourCustomHook'}
...
  1. Наконец, из своего бэк-офиса вы меняете свою текущую тему на другую, а затем сохраняете. После этого вы переходите к предыдущей теме (теме, которую вы действительно хотите использовать), снова сохраняете, и ваш крючок должен быть виден. Это сделано с целью обновления хуков, распознаваемых вашим сайтом Prestashop.

Это работает в Prestashop 1.7.7

person Manuel    schedule 09.07.2021

Я потратил много времени на поиски того, почему мой кастомный крючок не появился спереди, спасибо за подсказку.

Чтобы улучшить процесс, вы можете использовать кнопку сброса на внешнем виде> темы и логотип.

Это позволяет избежать активации другой темы.

person jean-philippe guillermo    schedule 28.06.2019

Я вижу, что проголосовал за принятое решение 2 года назад, но теперь придумал гораздо лучшее решение. Согласно Prestashop 1.7 hooks doc, все, что вам нужно сделать, это зарегистрировать свой как любой другой обычный, он будет создан автоматически. Так что вставьте что-нибудь вроде:

$this->registerHook('displayAtSpecificPlace');

в вашем модуле install () и переустановите модуль.

person user109764    schedule 08.03.2021