Не отобразился блок в шаблоне

Автор Ragnos, 10 июля 2012, 17:24:09

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

Ragnos

Здравствуйте, я установил шаблон с модулями на prestashop, в результате в позиции Top of pages появился новый модуль который отображал пункты меню на разные страницы. Но мне нужно было чтобы в Top of pages отображался модуль блок cms который отображал нужные мне пункты меню (страницы). Сначало я попробовал создать модуль в этой позиции но мне высветилось "Этот модуль не может быть пересажены на этот крючок." Потом я прочитал как создавать хук в файле модуля cms я изменил

public function hookHeader($params)

на

public function hookTop($params)

Перед этим удалив из Top of pages тот модуль что появился после установки. Потом снова зашёл в позиции/расположить модуль, выбрал блок cms в top of pages, нажал сохранить, высветилась зелёная надпись "Модуль перенесен", ну слава богу подумал я. Потом зашёл на сайт обновил страницу и получил isi с маслом, блок cms так и не отобразился в позиции top of pages.

И что тоже странно в стандартном шаблоне (который устанавливается после установки самой prestashop) тоже не отображается модуль в нужной мне позиции.

Что я сделал не так ?

Виктор Демидов

Какая версия prestashop? Как называется модуль для меню? Какой шаблон используете? Ссылку на сайта дайте, так легче будет понять. Возможно не нужно менять позиции модулей, а достаточно настроить. Например, для модуля blocktopmenu можно просто добавить ссылки на страницы смс.

DarinSr

Создание места вывода (хука) начинается в функции установке:
public function install(){...$this->registerHook('top')
Потом уже описываете функцию вывода.
public function hookTop() {...global $smarty;$smarty->assign(array(....
или
public function hookTop($param) {....

Ragnos

Цитата: Виктор Демидов от 11 июля 2012, 09:51:05
Какая версия prestashop? Как называется модуль для меню? Какой шаблон используете? Ссылку на сайта дайте, так легче будет понять. Возможно не нужно менять позиции модулей, а достаточно настроить. Например, для модуля blocktopmenu можно просто добавить ссылки на страницы смс.

Версия PrestaShop 1.4.4.0, модуль который установился вместе с шаблоном в ту позицию которую нужно было установить модуль блок cms называется Categories block (top) v1.0, использую вот этот шаблон:

http://presta-blog.com/prestaskin/9-besplatnyy-shablonna-medicinskuyu-temu-prestashop-ps097.html

Адрес сайта http://teatriada.ru/

Уже не знаю что делать, может вы поможете

Виктор Демидов

Вам нужно править модуль, который отвечает за вывод меню. Лучше всего написать свой на основе этого модуля.

Ragnos

А как именно править модуль, можете сказать, ну хотя бы примерно, я ведь в этом деле не очень разбираюсь, а уж самому писать модуль...


Ragnos


Ragnos

Ещё хочу добавить что в этом шаблоне (который указал выше), блок CMS не выводится ни в одной позиции, а не только в той что мне нужно, с чем это связанно ?

Виктор Демидов

На оф.сайте самое полное описание, главное, что там показанны примеры кода.
У вас, наверное, переделан блок смс. Поэтому и не выводит этот блок в шаблоне. Попробуйте подключить оригинальный блок смс.

Ragnos

Блок Cms не переделан, там стоят хук позиции, вот некоторые:

   public function hookLeftColumn()
   {
      global $smarty;
   
      $cms_titles = self::getCMStitles(self::LEFT_COLUMN);
      $smarty->assign(array(
         'block' => 1,
         'cms_titles' => $cms_titles,
         'theme_dir' => _PS_THEME_DIR_
      ));
      return $this->display(__FILE__, 'blockcms.tpl');
   }
   
   public function hookRightColumn()
   {
      global $smarty;

      $cms_titles = self::getCMStitles(self::RIGHT_COLUMN);
      $smarty->assign(array(
         'block' => 1,
         'cms_titles' => $cms_titles,
         'theme_dir' => _PS_THEME_DIR_
      ));
      return $this->display(__FILE__, 'blockcms.tpl');
   }


Так почему же когда я устанавливаю его в позицию LeftColumn, он там не появляется, я вот этого понять не могу, можете объяснить ?

Виктор Демидов

Попробуйте заново настроить модуль.
Панель управления > Модули > Фронт-офис
Находите Блок CMS
Удаляете. Устанавливаете заново.
После восстановления, проверяете активацию модуля, нажимаете Настроить
Заходите в Настройка CMS-блока
Проверяете : Список блоков слева и Список блоков справа.
Если нужно добавить блок в левую колонку или правую, нажимаете : Добавить новый блок
Выбираете : Расположение Слева/Справа
Указываете страницы, которые должны быть в блоке. Сохраняете. Проверяете.
Панель управления > Модули > Позиции
Если модуля нет, нажимаете Расположить модуль
Модуль : Блок CMS
В хук : куда хотите выводить блок



Ragnos

Я удалил модуль блок CMS, как мне его восстановить ?

Ragnos

В общем я удалил модуль, кое как его восстановил, сделал как вы написали, в админке в позициях модуль появился, а вот на самом сайте в той же позиции так и остался не виден, ещё предложения ?

Виктор Демидов

Блок cms не появляется ни слева, ни справа?
Кеш чистили?