Автор Тема: Не отобразился блок в шаблоне  (Прочитано 4521 раз)

10 Июля 2012, 17:24:09
  • Пользователь
  • **
  • Сообщений: 57
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте, я установил шаблон с модулями на 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) тоже не отображается модуль в нужной мне позиции.

Что я сделал не так ?
11 Июля 2012, 09:51:05
Ответ #1
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102467
  • Репутация: +34217/-0
    • Просмотр профиля
Какая версия prestashop? Как называется модуль для меню? Какой шаблон используете? Ссылку на сайта дайте, так легче будет понять. Возможно не нужно менять позиции модулей, а достаточно настроить. Например, для модуля blocktopmenu можно просто добавить ссылки на страницы смс.
11 Июля 2012, 14:51:15
Ответ #2
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86054
  • Репутация: +25403/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Создание места вывода (хука) начинается в функции установке:
public function install(){...$this->registerHook('top')Потом уже описываете функцию вывода.
public function hookTop() {...global $smarty;$smarty->assign(array(....или
public function hookTop($param) {....
11 Июля 2012, 20:19:46
Ответ #3
  • Пользователь
  • **
  • Сообщений: 57
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Какая версия 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/

Уже не знаю что делать, может вы поможете
12 Июля 2012, 09:39:12
Ответ #4
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102467
  • Репутация: +34217/-0
    • Просмотр профиля
Вам нужно править модуль, который отвечает за вывод меню. Лучше всего написать свой на основе этого модуля.
12 Июля 2012, 10:46:18
Ответ #5
  • Пользователь
  • **
  • Сообщений: 57
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
А как именно править модуль, можете сказать, ну хотя бы примерно, я ведь в этом деле не очень разбираюсь, а уж самому писать модуль...
12 Июля 2012, 12:50:52
Ответ #6
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102467
  • Репутация: +34217/-0
    • Просмотр профиля
12 Июля 2012, 16:30:23
Ответ #7
  • Пользователь
  • **
  • Сообщений: 57
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
12 Июля 2012, 18:07:14
Ответ #8
  • Пользователь
  • **
  • Сообщений: 57
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Ещё хочу добавить что в этом шаблоне (который указал выше), блок CMS не выводится ни в одной позиции, а не только в той что мне нужно, с чем это связанно ?
12 Июля 2012, 19:52:50
Ответ #9
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102467
  • Репутация: +34217/-0
    • Просмотр профиля
На оф.сайте самое полное описание, главное, что там показанны примеры кода.
У вас, наверное, переделан блок смс. Поэтому и не выводит этот блок в шаблоне. Попробуйте подключить оригинальный блок смс.
12 Июля 2012, 20:07:09
Ответ #10
  • Пользователь
  • **
  • Сообщений: 57
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Блок 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, он там не появляется, я вот этого понять не могу, можете объяснить ?
12 Июля 2012, 21:13:32
Ответ #11
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102467
  • Репутация: +34217/-0
    • Просмотр профиля
Попробуйте заново настроить модуль.
Панель управления > Модули > Фронт-офис
Находите Блок CMS
Удаляете. Устанавливаете заново.
После восстановления, проверяете активацию модуля, нажимаете Настроить
Заходите в Настройка CMS-блока
Проверяете : Список блоков слева и Список блоков справа.
Если нужно добавить блок в левую колонку или правую, нажимаете : Добавить новый блок
Выбираете : Расположение Слева/Справа
Указываете страницы, которые должны быть в блоке. Сохраняете. Проверяете.
Панель управления > Модули > Позиции
Если модуля нет, нажимаете Расположить модуль
Модуль : Блок CMS
В хук : куда хотите выводить блок

 
12 Июля 2012, 21:47:42
Ответ #12
  • Пользователь
  • **
  • Сообщений: 57
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Я удалил модуль блок CMS, как мне его восстановить ?
12 Июля 2012, 22:03:30
Ответ #13
  • Пользователь
  • **
  • Сообщений: 57
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В общем я удалил модуль, кое как его восстановил, сделал как вы написали, в админке в позициях модуль появился, а вот на самом сайте в той же позиции так и остался не виден, ещё предложения ?
13 Июля 2012, 09:40:59
Ответ #14
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102467
  • Репутация: +34217/-0
    • Просмотр профиля
Блок cms не появляется ни слева, ни справа?
Кеш чистили?