Не отображается модуль в новом хуке

Автор kulich, 29 ноября 2014, 19:26:12

« назад - далее »

Adik


mAgency

Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.

kulich

Всем спасибо за советы. Всё попробовал, но результата нет.

Еще раз повторюсь. Хук у меня создан (уже раз 5й). Пустой созданный модуль в нем отображается.



Проблема именно с модулем доп товаров. Он как будто заточен под то место. И еще раз повторюсь, что он отображается в новом хуке, НО только при условии, что отображается и в хуке ProductFooter. Убираем его отсюда, пропадает и в моем.

Adik

Это потому что вы не определяете переменные smarty в вашем хуке. Нужно или скопировать все из хука hookProductFooter в хук hookUnderDesc, или сделать так
public function hookUnderDesc($params)
{
return $this->hookProductFooter($params);
}

и в Модули > Расположение блоков удалить модуль из хука hookProductFooter.

kulich

Вы имеете ввиду скопировать в php файле модуля? Если да, то я даже создавал модуль клон, где вместо хука ProductFooter вставлял свой, а его совсем удалял.
Также просто копировал всё содержимое ProductFooter в свой и оставлял оба. Всё равно не выходит.

Как вы написали, тоже пробовал.




Adik

Я так делал, делаю и все работает. В prestasop все модули так работают. Почему у вас не работает, не знаю.

kulich

Вот и я не знаю. Другие модули отображаются тут, а с этим вообще уже не знаю что делать.

Может где-то еще определяться в каком хуке отображается модуль?

Кстати, как вы написали модуль никогда не отображается. Если так написать

public function hookUndesc($params){

return $this->display(__FILE__, 'productscategory.tpl', $this->getCacheId($cache_id));
   
}


то он отображается, но дубликатом как я уже говорил.

coder

Если делать как написал Adik, то модуль выводиться в нужном хуке.
Если как делаете вы, то выдиться шаблон из кеша. А в кеш он помещается из хука hookProductFooter
$this->getCacheId($cache_id)
Поэтому удаляя хук hookProductFooter ничего не выводиться.

kulich

Понял. Переделал - просто скопировал содержимое хука ProductFooter в свой. В инстале мой хук тоже прописан.

В админке в нужном хуке отображается.



Кеш почистил ( в админке и файл удалил, как советовали в самом начале)

Mymodule отображается, товары нет.

kulich

Может еще где-то быть файл, где написано в каких хуках отображать модуль?

coder

ЦитироватьПеределал - просто скопировал содержимое хука ProductFooter в свой.
Нельзя просто скопировать, нужно заменять константы, ид кеша, шаблоны на свои.
Где-то была тема как клонировать модуль.

kulich

Adik же написал



Я могу и одну строчку написать как он предложил, ток работать всё равно ничего не будет.

coder

1. Определить хук hookProductFooter
Как это уже написано.
2. Добавить этот хук в install
3. Добавить этот хук в конроллер и шаблон
4. После этого добавить код, который написал Adik
5. В админке в Модули > Расположение блоков удалить ProductsCategory из hookProductFooter, оставить только в hookUnderDesc

Вот так делаете и не работает?

kulich

1) Хук есть. Отображается как в базе, так и в админке.

2) Хук в инсталле



3) Давайте здесь подробнее про контроллеры. Хук в шаблоне написан так {hook h='Undesc'}.

Контроллеры. В начале темы MAgency написал, что нужно вставлять код сюда /controllers/front/ProductController.php.

Вот



и вот




Не знал куда вставлять точно.

По ссылке, которую мне дали выше по регистрации нового хука, написано, что код нужно вставлять сюда classes >> controller >> FrontController.php

Вот



и вот

.

Тоже не знал куда точно вставлять.

4) Код добавлен.

5) В расположении модуля удален из ProductFooter

mAgency

ЦитироватьПолностью удалил модуль "доп товары". Хочу расположить его в самом низу под основным описанием товара.
Для этого не нужно делать свой хук. Это делается проще.
Оставляете модуль "доп товары", открываете шаблон product.tpl, находите код
{if isset($HOOK_PRODUCT_FOOTER) && $HOOK_PRODUCT_FOOTER}{$HOOK_PRODUCT_FOOTER}{/if}
вырезаете его и вставляете после
{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_PRODUCT_FOOTER) && $HOOK_PRODUCT_FOOTER}{$HOOK_PRODUCT_FOOTER}{/if}
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.