Автор Тема: Вставить позицию модуля в полное описание товара  (Прочитано 1351 раз)

06 Март 2016, 12:11:03
  • Пользователь
  • **
  • Сообщений: 60
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Ребята, подскажите пожалуйста как вставить позицию модуля в полное описание товара?

Мне нужно выводить одинаковый кусок текста во всех товарах, и как это реализовать? в виртуемарте сделал это за 5 мин. вставив в описание новую позицию для модуля, а в модуль уже вписал нужный текст.

Можно ли как то реализовать это в Престе 1.6?
06 Март 2016, 12:29:42
Ответ #1
  • Пользователь
  • **
  • Сообщений: 60
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
06 Март 2016, 12:33:39
Ответ #2
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
В prestashop за минуту. В модуле определяешь хук и шаблон.
public function install() {
    if !parent::install() || !$this->registerHook('myCustomHook'))
        return false;
    return true;
}
public function hookMyCustomHook($params)
{
    return $this->display(__FILE__, 'mymodule.tpl');
}
В шаблоне страницы товара product.tpl добавляешь вывод
{hook h='myCustomHook'}Подробнее здесь
http://prestashop-forum.ru/index.php/topic,1669.0.html

На форуме искать нужно, тут много что есть.
06 Март 2016, 12:41:19
Ответ #3
  • Пользователь
  • **
  • Сообщений: 60
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо, классно

То есть ('myCustomHook') - это название нового хука, может быть любое?

mymodule.tpl - это шаблон вывода модуля который хочу показать?
06 Март 2016, 12:44:08
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Название может быть любое, только чтобы не совпадало с уже созданными хуками.
Названии функции должно начинаться с hook...
Название шаблона любое.
06 Март 2016, 12:52:03
Ответ #5
  • Пользователь
  • **
  • Сообщений: 60
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Там папки с модулями есть в корне сайта и в папке шаблона - я так понял правим модуль в шаблоне

/themes/default-bootstrap/modules/blocksearch - вот для примера хочу вывести модуль поиска в товаре

открываю файл


/themes/default-bootstrap/modules/blocksearch/blocksearch.tpl и в него вписываю

public function install() {
    if !parent::install() || !$this->registerHook('TovarHook'))
        return false;
    return true;
}
public function hookMyCustomHook($params)
{
    return $this->display(__FILE__, 'blocksearch.tpl');
}

Затем в product.tpl добавляю вывод

{hook h='TovarHook'}

Так правильно будет?
06 Март 2016, 12:58:55
Ответ #6
  • Пользователь
  • **
  • Сообщений: 60
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Не совсем понял куда вот это вписывать, в какой именно файл, подскажите пожалуйста?

public function install() {
    if !parent::install() || !$this->registerHook('TovarHook'))
        return false;
    return true;
}
public function hookMyCustomHook($params)
{
    return $this->display(__FILE__, 'blocksearch.tpl');
}
06 Март 2016, 13:01:51
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Для создания своего модуля и своего хука, чтобы потом его использовать в любом шаблоне.

Для blocksearch ничего не нужно, просто добавить в шаблон tpl
{l s='Тест который можно менять в переводах' mod='blocksearch'}
06 Март 2016, 13:09:23
Ответ #8
  • Пользователь
  • **
  • Сообщений: 60
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Впринципе нашел бесплатный модуль html,

а так если свой модуль то

public function install() {
    if !parent::install() || !$this->registerHook('myCustomHook'))
        return false;
    return true;
}
public function hookMyCustomHook($params)
{
    return $this->display(__FILE__, 'mymodule.tpl');
}

это вписывать в tpl файл модуля?
06 Март 2016, 13:22:25
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
06 Март 2016, 14:17:23
Ответ #10
  • Пользователь
  • **
  • Сообщений: 60
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Пасиб. но кривоватый образец, если установить модуль из архива - в админке один параметр - его заполнить выкидывает ошибку и не сохраняет

может для старых версий
06 Март 2016, 15:18:11
Ответ #11
  • Пользователь
  • **
  • Сообщений: 60
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Подскажи пожалуйста в твоем примере

...{
    return $this->display(__FILE__, 'mymodule.tpl');
}...

mymodule.tpl - это прописывается файл выводимого модуля? или файл product.tpl шаблона, где я хочу вывести?
06 Март 2016, 17:18:49
Ответ #12
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
"mymodule.tpl"
Это файл шаблона модуля. Он находится в папке модуля.

"product.tpl"
Это файл шаблона карточки товара, находится в папке темы.

В одном шаблоне можно подключать другой:
1. С помощью hook, как написал coder
2. Или
{include file="./my.tpl"}