Визуальные хуки в ПрестаШоп

miniatЯ давно собирался написать статью про хуки, но мне не хотелось писать сухим текстом мало кому
понятным. Более понятнее будет когда текст разбавлен разъяснительными изображениями. Для этого
мне пришлось поискать программку способную снимать скриншот всей веб-страницы с возможностью
редактирования полученного изображения. И такую утилиту я нашел-это плагин для Goole Chrome,
FireShot. Оценить ее работу вы сможете посмотрев на мои скриншоты.

  Что такое хук?
В ПрстаШоп хуки (крючки, якоря)-это места в шаблоне фронт-офиса или бэк-офиса где происходят
действия по заданным событиям или происходит отображение действия модулей визуально или
в фоне. В версии 1.5 хуки были переименованы согласно происходящих в них моментах, то есть были
добавлены приставки display (отображение) и action (действие). Это было сделано для удобства
работы, для того что бы мы знали с каким типом хука имеем дело.

Расположение хуков
В этой статье я не буду затрагивать все хуки, а рассмотрю лишь те которые нам нужны для создания
модулей. Для тех кто хочет увидеть и ознакомиться со всеми хуками версий 1.4 и 1.5 могут
посмотреть официальную документацию ПрестаШоп

http://doc.prestashop.com/display/PS15/Hooks+in+PrestaShop+1.5

Для сравнения изменений хуков на изображениях выделил области разным цветом и подписал для
разных версий их названия. Рассмотрим главную страницу

home

 

Здесь достаточно все просто и пояснений не требует. Хочу лишь сделать одну заметку, модули версии
1.4 могут работать в версии 1.5 со своими названиями хуков. Нужно только немного подправить
основной файл модуля и убрать знак закрытия тега php ?> . А вот модули версии 1.5 не могут
работать в 1.4, движок этой версии не знает новых названий хуков.
Переходим к странице товара

product1

 

На этой странице визуальных хуков побольше. На первом изображении я забыл добавить хук header
(displayHeader), поэтому разместил его здесь. Может так и лучше для понимания, ведь этот хук
располагается на всех страницах. Модули использующие этот хук обычно отображают всплывающие окна,
кнопки социальных сетей, кнопки сервиса онлайн-чата и т. д.
Область где представлен товар разделена на две части, левую и правую и для ориентирования в
названии хука добавлены слова left(левый) и right(правый).Ниже расположена область футера товара.
И хук productFooter(displayFooterProduct) соответственно в названии имеет слово footer. Кстати,
кнопка “добавить в корзину”вообще то не должна была попасть в эту область, но так получилось.
В хуке productTab(displayProductTab) размещаются вкладки модулей, например стандартный модуль
отзывы о товаре имеет вкладку “комментарии”, а модуль ecomments  имеет вкладку “отзывы”.  Для
отображения этой вкладки модули используют стандартный шаблон tab.tpl и имеют следующий код
<li><a href=”#idTabtest” class=”idTabHrefShort”>{l s=’test’ mod=’testmodule’}</a></li>

где вы меняете для каждого модуля idTabtest, который будет является id для div шаблона модуля
отображенного в свою очередь в хуке productTabContent(displayProductTabContent)

<div id=”idTabtest”>
……
</div>

Из-за большой плотности контента на странице продукта не все хуки у меня вместились и я выделил
их в отдельном рисунке

product2

Хук productOutOfStock(displayProductOutOfStock) снова имеет в своем названии ориентир на
расположение под областью Stock(наличие товара). Сюда можно поместить модуль с дополнительной
информацией о товаре.Ну и наконец в хук productAction (displayProductButtons) можно добавить
дополнительную кнопку для товара.
В этой статье я не буду рассматривать хуки для корзины, модулей оплаты и бэк-оффиса. Знаний о
хуках описанных выше будет достаточно для начала создания собственных модулей простых и сложных.
Надеюсь информация будет вам полезна.
До встречи на webnewbie.ru

Comments (6)

Алекс
05.10.2013 - 10:17 / Ответить

Отличная статья для понимания! Я так понял что по сути можно не покупать платные модуля а делать все самому, так например подключить яндекс метрику – как я логически мыслю исходя из почитанного можно тупо открытый код – любой другой скрипт кинуть в footer.tpl и обернуть тегами (liter) -/ и сценарий ложен исполняться – я реально долго не вкуривал что такое хук и с чем его едят! статья открыла глаза

Александр
10.10.2013 - 09:36 / Ответить

Что-то реальное не напишите, а всякие яндекс метрики написаны уже по 100 раз.

Alex
31.05.2014 - 17:28 / Ответить

Привет! как можно добавить модуль “рекомендуемые товары” в новую созданную страницу, например “О нас” ? Если есть такая возможность конечно…

31.05.2014 - 18:12 / Ответить

Здравствуйте! Вообще не совсем понятна задача. Если хотите выводить модуль именно на CMS странице, сделать можно, в модуле рекомендуемые товары добавить регистрацию нового хука, привязать модуль к cms_id, в шаблоне магазина в файле cms.tpl добавить где выводить новый хук (статья). Это сложный путь. Проще переделать модуль и добавить контроллер для вывода товаров на отдельной странице, это более стандартный способ.

Виталий
29.11.2015 - 01:37 / Ответить

Как можно было запостить такие мелкие картинки? Ни… не понятно!

29.11.2015 - 02:10 / Ответить

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

Leave a Reply