Автор Тема: Изменение расположения модуля, если он вызывается хуком  (Прочитано 1979 раз)

24 Сентября 2014, 15:37:08
  • Старожил
  • ****
  • Сообщений: 299
  • Репутация: +0/-0
  • Новичек
    • Просмотр профиля
Добрый день.

Борюсь с такой проблемой: есть модуль Brands&Logos,который отображается на странице товара не очень хорошо, его необходимо переместить на другое место на странице. Если в браузере просматривать блок,в котором он находится, а потом пойти в шаблон страницы товара, то на тот самом месте его нет , а вместо него '..if isset($HOOK_EXTRA_RIGHT)..'.

Подскажите пожалуйста где можно корректировать изменение расположения этого модуля?
24 Сентября 2014, 17:11:56
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 13118
  • Репутация: +14553/-0
  • Сообщество PrestaShop
    • Просмотр профиля
24 Сентября 2014, 17:21:01
Ответ #2
  • Старожил
  • ****
  • Сообщений: 299
  • Репутация: +0/-0
  • Новичек
    • Просмотр профиля
Функцию, отвечающую за расположение модуля на странице товара в этом файле я нашел. А вот как указать в ней, если мне нужно, чтобы модуль располагался там же(я имею ввиду блок div(RightColumn)), но в другом месте внутри этого блока?

public function hookDisplayRightColumnProduct($params) {
        if (Configuration::get('BMS_PRODUCT_PAGE') == 1 || Configuration::get('BMS_SUPP_PRODUCT_PAGE') == 1) {
            $id_product = Tools::getValue('id_product');
            $productObj = new Product($id_product, FALSE, $this->context->cookie->id_lang);
            $size = Configuration::get('BMS_PRODUCT_SIZE');
        }
24 Сентября 2014, 17:24:17
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 13118
  • Репутация: +14553/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Передвигать модули в Модули > Расположение блоков.
24 Сентября 2014, 17:47:54
Ответ #4
  • Старожил
  • ****
  • Сообщений: 299
  • Репутация: +0/-0
  • Новичек
    • Просмотр профиля
В том то и проблема, что когда я в Live-режиме захожу на страницу товара, то этот блок(Brands&Logos) не обозначен как модуль(не обведен в красную пунктирную линию), хотя устанавливал я его как отдельный модуль - Brands&Logos. В чем заковыка?
24 Сентября 2014, 17:53:59
Ответ #5
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 85943
  • Репутация: +25399/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Передвигать модули в Модули > Расположение блоков.
Это не живой редактор, а все модули которые показанны в разных хуках. Передвинуть можно вниз/вверх.
В живом редакторе отображаются только те модули, у которых вывод определен в нескольких хуках.
24 Сентября 2014, 18:21:33
Ответ #6
  • Старожил
  • ****
  • Сообщений: 299
  • Репутация: +0/-0
  • Новичек
    • Просмотр профиля
Зашел в Модули>Расположение блоков нашел displayRightColumnProduct и там всего два модуля: 1-Социальные сети 2-Brands&Logos. Я поставил(передвинул) второй блок на первое место. Зашел на страницу, почистил кэш, перезагрузил страницу товара - блок так и остался на своем месте.
24 Сентября 2014, 18:37:49
Ответ #7
  • Старожил
  • ****
  • Сообщений: 299
  • Репутация: +0/-0
  • Новичек
    • Просмотр профиля
Мне нужно сдвинуть этот модуль так, чтобы он был напротив названия товара(справа от названия), там места для него хватает. Может это можно как-нибудь по-другому реализовать? А то через Редактор модулей не выходит
24 Сентября 2014, 20:33:17
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 1010
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Стили изменить, position/top/left, так можно все поменять.
24 Сентября 2014, 23:35:32
Ответ #9
  • Старожил
  • ****
  • Сообщений: 299
  • Репутация: +0/-0
  • Новичек
    • Просмотр профиля
Всем большое спасибо. Буду пробовать сделать.
25 Сентября 2014, 15:54:33
Ответ #10
  • Старожил
  • ****
  • Сообщений: 299
  • Репутация: +0/-0
  • Новичек
    • Просмотр профиля
Добрый день.

У меня возникла такая проблема: есть блок Brand's&Logos, в папке tpl этого модуля лежать 3 файла - product_list.tpl,product_page.prl и slider.tpl. Мне необходимо переместить этот блок в другое место на странице товара, я зашел в файл стилей для этого блока и сделал необходимые изменения, но после этого на странице 'Товары этого брэнда' (страница брэнда) у  меня все поползло.

Подскажите, как быть? Как изменить местоположение блока на странице товара, но без последствий на других страницах.
25 Сентября 2014, 16:42:52
Ответ #11
  • Ветеран
  • *****
  • Сообщений: 1010
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Обсуждали много раз. Нет вашего модуля у большинства пользователей prestashop. Ставить его, чтобы увидеть где и что менять, мало кто будет.
Что сделать написали, как сделать писали:
FireFox + FireBug + FirePicker
Firefox - все для веб-разработки
25 Сентября 2014, 16:48:28
Ответ #12
  • Старожил
  • ****
  • Сообщений: 299
  • Репутация: +0/-0
  • Новичек
    • Просмотр профиля
Я об этом не подумал. Спасибо. Fire-Fox уже пользуюсь.
29 Октября 2014, 13:59:13
Ответ #13
  • Старожил
  • ****
  • Сообщений: 299
  • Репутация: +0/-0
  • Новичек
    • Просмотр профиля
Добрый день,
Возникла такая сложность - не могу заменить строку на нужную на главной странице сайта. Эта строка лежит в блоке
<div class="cs_footertop_left grid_8 alpha">это я увидел через Firefox, но в шаблоне footer.tpl этой строки нет.
Сам блок,в котором лежит нужная мне строка имеет вид:
<div class="cs_footertop_left grid_8 alpha">{if isset($HOOK_FOOTER_TOP_LEFT) && $HOOK_FOOTER_TOP_LEFT}{$HOOK_FOOTER_TOP_LEFT}{/if}</div>Подскажите пожалуйста, где найти файлы хуков $HOOK_FOOTER_TOP_LEFT и $HOOK_FOOTER_TOP_RIGHT ?
29 Октября 2014, 14:08:36
Ответ #14
  • Ветеран
  • *****
  • Сообщений: 763
  • Репутация: +6/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Файлов хуков не существует. Есть файлы шаблонов, контроллеров, классов. Хук это переменная шаблона. Ищите у себя объявление переменных HOOK_FOOTER_TOP_LEFT и HOOK_FOOTER_TOP_RIGHT.  В стандарной теме таких нет. В footer есть переменные HOOK_RIGHT_COLUMN и HOOK_LEFT_COLUMN. Они определены в классе FrontController.php. Посмотрите какие модули выводяться в футере (Модули - Расположение блоков или Живой редактор) и ищите в этих модулях.