Вывод модуля на определенной странице в определенном месте!

Автор Darkrogua, 11 декабря 2017, 09:33:44

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

Darkrogua

Здравствуйте, недавно судьба меня свела с prestashop, не скажу, что я рад этому, но делать надо. Первостепенной задачей у меня было внедрение стороннего модуля написанного на php, я пытался его загружать через ajax, но потом столкнулся с проблемой пагинации. И решил что лучше создать модуль, который  будет подключать мой php скрипт, который тем самым будет отображать информацию в двух местах. Первое место это левый блок сайта, я нашел хук для этого, проблем с этим никаких нет, но вторая проблема заключается в том, что у меня есть страница с отзывами и я хочу чтобы только на этой странице были отзывы и они отображались в контенте. Интересное решение я видел в одном из плагинов, когда на нужной тебе странице ты просто пишешь {тут название плагина} и он выводит информацию туда. Как такое сделать.

Adik

Prestashop: Как создать Hook
Вот тут написано как создать свой хук. Потом в любом шаблоне вставляете код
{hook h='myCustomHook'}
и будет показан контент.

PrestaMan

Цитата: Darkrogua от 11 декабря 2017, 09:33:44
у меня есть страница с отзывами и я хочу чтобы только на этой странице были отзывы и они отображались в контенте.
{if $cms->id_cms == 'id страницы'}
    отзывы
{/if}
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

Darkrogua

Благодарю, решил данную проблему, всё же погрузкой ajax с сервера и пагинацией через ajax. Но со своими хуками нифига не выходит! У меня есть стандартный модуль "Блок производителей" , который имеет несколько хуков так вот, я хочу чтобы этот модуль имел еще мой кастомный хук поэтому я открыл данный модуль и добавил туда свой хук manufacturersDark
public function install()
{

Configuration::updateValue('MANUFACTURER_DISPLAY_TEXT', true);
Configuration::updateValue('MANUFACTURER_DISPLAY_TEXT_NB', 5);
Configuration::updateValue('MANUFACTURER_DISPLAY_FORM', false);
$success = (parent::install() &&
$this->registerHook('header') &&
$this->registerHook('leftColumn') &&
$this->registerHook('manufacturersDark') &&
$this->registerHook('actionObjectManufacturerDeleteAfter') &&
$this->registerHook('actionObjectManufacturerAddAfter') &&
$this->registerHook('actionObjectManufacturerUpdateAfter')
); 

ниже я создал для него функцию , которая должна возвращать test на страницу
public function hookManufacturersDark($params)
{
echo 'test';

}

Далее я скопировал данный модуль, заархивировал и удалил с сайта и опять установил.. (ну на всякий) после чего на страницу где хочу чтобы выводилась test написал {hook h='manufacturersDark' mod='blockmanufacturer'} и сохранил... Пока я это писал я думаю что стоит в шаблоне вызывать этот хук, а не на странице))

Adik



Darkrogua

Также интересует момент, почему когда я в шаблон cms подключаю свои куски шаблона с помощью {include file="$tpl_dir./manufacturer-slider.tpl"} никаких изменений не происходит?*?

mAgency

Цитата: Darkrogua от 13 декабря 2017, 13:52:56
Также интересует момент, почему когда я в шаблон cms подключаю свои куски шаблона с помощью {include file="$tpl_dir./manufacturer-slider.tpl"} никаких изменений не происходит?*?
Потому что для manufacturer-slider.tpl не определены переменные в контроллере CmsController.php
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.