Автор Тема: Использование нескольких шаблонов фильтров (blocklayered, Prestashop_1.6.0.11)  (Прочитано 266 раз)

24 Марта 2015, 14:12:37
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Уважаемые форумчане, в настройках блока фильтров (blocklayered) Prestashop_1.6.0.11 есть возможность создать несколько шаблонов. Здравый смысл говорит, что раз их можно создавать, то их можно и использовать. Создать, скажем, два шаблона фильтров, в первый вставить характеристики товара типа веса, прочности и материала. А во втором шаблоне задать атрибуты, например, размер. (Что-то подобное пытались реализовать на этом сайте: http://perrino.ru/13-500-prujin-na-spalnoe-mesto. Правда у них, кажется, не работает и не всё на фильтрах, но зато смысл моего желания поясняет). Первый шаблон вывести на странице вывода товаров категории в хук displayLeftColumn, чтобы покупатель выбирал себе товары с нужными характеристиками. А второй шаблон вывести на той же странице, но уже в каждый товар, скажем в хук displayProductTab, чтобы покупатель уже в товаре размерами манипулировал.
Можно так сделать? Думаю, что да, если умудриться использовать все, созданные в настройках blocklayered шаблоны. Но проблема в том, что при нескольких шаблонах, blocklayered автоматом начинает использовать последний. И альтернативы не предлагает. Но ведь она же есть, можно же использовать и несколько шаблонов? Или, хотя бы, выбирать какой из шаблонов в каком случае использовать? А как это сделать?
24 Марта 2015, 14:29:02
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 33010
  • Репутация: +26761/-0
    • Просмотр профиля
На одной странице можно использовать один модуль только 1 раз. Нельзя использовать несколько вариантов шаблонов на одной странице.
Разработчики думали наверное так, нет смысла разбрасывать фильтры по всему сайту, пользователь должен видеть все параметры, по которым можно отфильтровать показ в одном месте. Поэтому и модуль сделали таким. Но есть другой модуль Advanced Search, в нем больше возможностей.
24 Марта 2015, 14:35:32
Ответ #2
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо. Ну а если не на одной странице? Скажем так, я создала несколько шаблонов и хочу выбирать где и какой использовать. Могу я это сделать? Скорее всего да, потому что иначе какой престе давать возможность их по нескольку создавать. Но каким образом вставить выбор шаблона, я понять не могу.
24 Марта 2015, 14:43:06
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 1255
  • Репутация: +32/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Теоритически все возможно, на практике придеться много чего переделать. В этом модуле 1 страница - 1 шаблон. Можете только копию модуля сделать на каждый отдельный шаблон.
02 Апреля 2015, 20:23:11
Ответ #4
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
У меня действительно получилось сделать и использовать копию модуля. Вроде всё нормально. Слева, в хук displayLeftColumn выводится модуль blocklayered, а в списке продуктов, через хук displayRightColumn выводится его копия, со своим шаблоном. Хук я вывела, прописав конструкцию {$HOOK_RIGHT_COLUMN} прямо в нужное место шаблона вывода продуктов списка, в product-list.tpl.
Но проблема в том. что правый хук в продукты выводится до выбора какого-либо значения фильтра. Как только выберешь какое-то значение фильтра (неважно в  blocklayered или в его копии), так контент, естественно, перезагружается и в этом перезагруженном контенте страница HOOK_RIGHT_COLUMN с модулем-копией blocklayered уже отсутствует! Кто-нибудь может подсказать в чём тут может быть дело, а главное, как из этой ситуации можно выйти?
Я пыталась позиционировать свою копию шаблона в другой хук, в productListReviews, ибо в этот хук выводятся комментарии, которые никуда не исчезают даже после перезагрузки контента. Я прописала в function install() класса моего модуля $this->registerHook('displayProductListReviews'), там где перечисляются все хуки, в итоге в админке, в списке модулей этого хука мой модуль действительно появился! Но, в списке-то он появился, а в реале в этом хуке он вообще не выводится.
Может быть есть ещё какие-то пути прописать этот модуль в списке продуктов, чтобы он не исчезал после ajax-перезагрузки контента?
02 Апреля 2015, 21:55:39
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 20853
  • Репутация: +25278/-0
  • Prestashop - просто и эффективно
    • Просмотр профиля
1. Модуль blocklayered самый тормозной. А у вас их два. Скорость открытмя стараницы не проверялм?
2. Если вам нужен новый хук на старанице товара, то создайте свой собственный HOOK_MY_HOOK.
Зачем переопределять существующий HOOK_RIGHT_COLUMN?
 
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
03 Апреля 2015, 11:08:33
Ответ #6
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо. Действительно, страница грузится медленно.