Автор Тема: Не отображается модуль в новом хуке  (Прочитано 2488 раз)

01 Декабрь 2014, 13:37:34
Ответ #30
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Я думал так сделать, но у меня в продукт футере еще есть модули и возможно добавятся новые. Они тогда тоже перенесутся.

Хотя сейчас пришла простая мысль, этот хук действительно перенести, а там создать новый, куда запихнуть модули, которые есть сейчас. Надеюсь они будут отображаться :)
01 Декабрь 2014, 13:46:37
Ответ #31
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Да, всё так и сделал. 2 минуты делов, а я несколько дней голову ломал.

Как видите, остальные модули я смог запихнуть в новый хук. Дело конкретно в модуле доп товаров. Какой-то он "особенный".
01 Декабрь 2014, 13:59:52
Ответ #32
  • Ветеран
  • *****
  • Сообщений: 105673
  • Репутация: +39553/-0
    • Просмотр профиля
    • Webstudio UwK
Этот модуль обычный, ничего особенного в нем нет. Вы делали что-то не правильно, поэтому и не получалось.
Если все делать так как вам написали:
1. Добавить хук в таблицу ps_hook
INSERT INTO `ps_hook` (`id_hook`, `name`, `title`, `description`, `position`, `live_edit`) VALUES (NULL, 'underdesc', 'UnderDesc', 'My hook UnderDesc', '1', '0');2. Добавить хук в /controllers/front/ProductController.php
protected function assignCategory()
{
.......
$this->context->smarty->assign(array(
  'HOOK_PRODUCT_FOOTER' => Hook::exec('displayFooterProduct', array('product' => $this->product, 'category' => $this->category)),
  'HOOK_underDesc' => Hook::exec('underDesc', array('product' => $this->product, 'category' => $this->category))
));
}
3. Добавить вывод хука в шаблон /themes/default/product.tpl
{if isset($packItems) && $packItems|@count > 0}
<div id="blockpack">
<h2>{l s='Pack content'}</h2>
{include file="$tpl_dir./product-list.tpl" products=$packItems}
</div>
{/if}
{if isset($HOOK_underDesc) && $HOOK_underDesc}{$HOOK_underDesc}{/if}
4. Определить хук в модуле /modules/productscategory/productscategory.php
public function install()
{
Configuration::updateValue('PRODUCTSCATEGORY_DISPLAY_PRICE', 0);
$this->_clearCache('productscategory.tpl');
return (parent::install()
&& $this->registerHook('productfooter')
&& $this->registerHook('header')
&& $this->registerHook('addproduct')
&& $this->registerHook('updateproduct')
&& $this->registerHook('deleteproduct')
&& $this->registerHook('underdesc')
);
}
....
public function hookUnderDesc($params)
{
        return $this->hookProductFooter($params);
}
5. В админке Модули найти модуль Дополнительные товары, нажать Сбросить.
6. В Модули > Расположение блоков найти  Product footer (Техническое имяdisplayFooterProduct) и удалить из него Дополнительные товары.

То в результате модуль будет показан только в новом хуке, ниже описания товара.
Cоздание интернет сайтов Webstudio UwK
01 Декабрь 2014, 14:09:15
Ответ #33
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Действительно 2 минуты, если делать как Виталий написал.
01 Декабрь 2014, 15:08:34
Ответ #34
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо, раз у вас получилось, наверное действительно что-то не так делал. В любом случае спасибо.
Получилось неплохое руководство для таких как я :)