Отображение модуля где угодно

posting Размещение модулей и своего контента в любом месте страницы сайта для PrestaShop 1.6 реализуется с помощью модуля Супер Хук. В этой статье мы рассмотрим разработку программиста по имени Paul Campbell, многим он известен как создатель бесплатного модуля облака тегов ps_comulus. Его решение создание механизма вывода модуля в любом месте шаблона без особых усилий на изменение кода модуля. Этот механизм настолько прост, что даже новички способны использовать плагин для изменения положения любого модуля на своем сайте. Однако плаги пока ограничен для версии Prestashop 1.4.

Расположение модуля Prestashop ограничивается привязкой к хуку, но вдруг вам понадобиться расположить модуль еще в нескольких местах вашего сайта, иногда даже в нестандартных и тогда приходится править код. Задача заказчика расположить модуль homefeatured (популярные товары на главной) помимо хука home еще и на страницах товара подтолкнуло Paul на создание данного плагина, который состоит из двух файлов. Разместить их необходимо в ваш_сайт/override/classes/
Таким образом, чтобы отобразить модуль homefeatured на страницах товаров достаточно в файле product.tpl вашей темы разместить маленький код
[php]{plugin module=’homefeatured’hook=’home’}[/php]
Еще пример, для того что бы корзина отображалась в футере необходимо в файле footer.tpl добавить строчку
[php]{plugin module=’blockcart’ hook=’rightColumn’}[/php]
Примеры смотрите на тестовом сайте http://f1presta.16mb.com/product.php?id_product=1 -для homefeatured, на остальных страницах товара то же самое.
Для корзины смотрите в футере.
Как видно из примеров для расположения модуля в нужном месте сначала выбираем файл шаблона tpl и в нем размещаем минимальный код с названием модуля и его привязку к хуку.
Аналогичным способом плагин позволяет разместить в любом месте шаблона CMS страницы, которые вы можете создать в бэк-офисе. В необходимом файле фаблона tpl добаляется код, где id=’1′ номер CMS страницы
[php]{cmspage id=’1′}[/php]
Так же можно разместить в наглядном месте код для вывода значений переменной Prestashop
Это очень удобно при размещении информации, таких как адрес магазина, номер телефона и т.д.
[php]{psconfig item=’PS_SHOP_PHONE’}[/php]
Пример в топе тестового сайта
Но на этом функционал не заканчивается. Новаторством стало возможность отображения кода php в Smarty, для этого создается файл functions.php в каталоге шаблона вашего сайта. Простой пример кода который дает возможность приветствовать посетителей на сайте в зависимости от времени суток (смотрите там же на тестовом в центральной колонке)
[php]// file: /themes/mytheme/functions.php
function ecs_smartygreet($params, &$smarty)
{
// Would need to work out how to internationalise this to use it “properly”!
$hour = date(‘H’);
if($hour > 18 || $hour < 4)
{
$greeting = ‘Good Evening’;
}
elseif($hour < 12)
{
$greeting = ‘Good Morning’;
}
else
{
$greeting = ‘Good Afternoon’;
}
return $greeting;
}
add_plugin(‘greet’, ‘ecs_smartygreet’);[/php]
Для отображения в смарти создаем файл index.tpl с кодом

[php]<h2>{greet}, ДОБРО ПОЖАЛОВАТЬ НА ДЕМО-САЙТ</h2>
{$HOOK_HOME}[/php]

Плагин для скачивания с примером
Плагин является экспериментальным, перед использованием проверьте его работоспособность на локальном сервере
До встречи на http://webnewbie.ru/

Comments (3)

Виталий
17.07.2013 - 23:14 / Ответить

Забросил файлы в папку,
устанавливаю этот код {plugin module=’homefeatured’hook=’home’} в фаил product.tpl шаблона в место перед товарами из этой категории, но не работет.
Может быть я что-то делаю не так, помогите!

18.07.2013 - 03:33 / Ответить

код {plugin module=’homefeatured’hook=’home’} необходимо добавить в самом низу шаблона product.tpl после {/if}

tandr
24.12.2013 - 12:23 / Ответить

Жаль нет под 1.5 :(

Leave a Reply