Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

0 Пользователей и 1 Гость просматривают эту тему.

*

muldy

  • ***
  • 222
  • +9/-1
    • Просмотр профиля
Здравствуйте!
Как вывести один фильтр на всех страницах категорий, те сейчас фильтр работает в таком режиме выбирает в определенной категории параметры и фильтрует их!
А мне надо чтобы при фильтрации товаров отфильтрованные товары выводились на одной странице, те фильтровались все подкатегории!

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Вывод одного фильтра на всех страницах?
« Ответ #1 : 16 Сентября 2013, 12:49:22 »
в вашем вопросе есть неточность, вы хотите вывести везде один фильтр (в данном случае разговор идет о форме для фильтрации), а затем вы говорите что хотите фильтровать все товары, а не только те которые в конкретном разделе.

Раскрывайте ваш вопрос.

*

muldy

  • ***
  • 222
  • +9/-1
    • Просмотр профиля
Re:Вывод одного фильтра на всех страницах?
« Ответ #2 : 16 Сентября 2013, 15:01:55 »
Да тут я немного накрутил вопрос)
Требуется вывести форму фильтрации везде одну и туже и соотвественно при применении фильтра он должен фильтровать именно весь каталог!

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Вывод одного фильтра на всех страницах?
« Ответ #3 : 16 Сентября 2013, 16:48:11 »
Тогда для вывода фильтра вы можете использовать 4 параметр (type_id), в макросе catalog search(). Тем самым, вы укажите тип данных, который содержит поля для фильтра, которые вы хотели бы видеть (то есть, система при выводе фильтра будет отталкиваться не от товаров которые лежат в текущем каталоге, а от типа данных).

Для вывода всех товаров, неважно на какой странице, при помощи макроса %catalog getObjectsList()% вы:
-  либо пользуетесь параметром category_id равным mode=all,
-  либо пользуетесь параметром  i_need_deep,



*

muldy

  • ***
  • 222
  • +9/-1
    • Просмотр профиля
Re:Вывод одного фильтра на всех страницах?
« Ответ #4 : 22 Сентября 2013, 21:48:41 »
В итоге я так и не понял как мне реализовать!
При использовании type_id, да все ок выводится нужные параметры!
А как мне например фильтровать в отдельно взятой категории различные параметры так и не понял!?
Ведь вывод осуществляется при помощи макроса - catalog getObjectsList(), и если я изменю параметры вывода то и товары будут выводится по другому разве нет?

В моем случае мне кажется лучше сделать редирект с параметрами, те пользователь выбирает нужный ему параметр и эти параметры берутся и происходит редирект в основную категорию!
Мне кажется это более интересный вариант, но как его осуществить, не совсем понимаю)
« Последнее редактирование: 22 Сентября 2013, 21:50:40 от muldy »

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Вывод одного фильтра на всех страницах?
« Ответ #5 : 23 Сентября 2013, 11:42:40 »
судя по вашим словам вам нужна такая логика:

1. есть страница (пусть странца основного раздела) на котторой выводятся все товары и выводить фильтр для определенного type_id (то есть самый общий фильтр) и вывести на этой тсранице все товары используя спец вызов getObjectsList
2. во всех подразделах вы выводите фильтр без указания type_id. В результате чего система всегда будет сама определять нужный тип данных и выводить фильтр согласно полученному типу данных. Для этого, вам достаточно выставить галочки "фильтровать" в соответствующих типах данных у соответствующих полей.

в итоге у вас получиться шаблон для всех разделов и особый шаблон для корневого раздела со всеми товарами

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Вывод одного фильтра на всех страницах?
« Ответ #6 : 09 Февраля 2014, 11:33:43 »
Тогда для вывода фильтра вы можете использовать 4 параметр (type_id), в макросе catalog search(). Тем самым, вы укажите тип данных, который содержит поля для фильтра, которые вы хотели бы видеть (то есть, система при выводе фильтра будет отталкиваться не от товаров которые лежат в текущем каталоге, а от типа данных).

То есть если у меня type_id (раздел каталога) равен значению 82 или 132 (объекта каталога), то вызов фильтра по товарам должен быть таки:
<xsl:apply-templates select="document('udata://catalog/search///(82)')/udata" />
<xsl:apply-templates select="document('udata://catalog/search///(132)')/udata" />
?
Однако на главной странице и в разделах каталога, кроме последнего где товары лежат, ни чего не выходит.
Опять я напутал что-то?
« Последнее редактирование: 09 Февраля 2014, 11:43:57 от Axiomateria »

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Тогда для вывода фильтра вы можете использовать 4 параметр (type_id), в макросе catalog search(). Тем самым, вы укажите тип данных, который содержит поля для фильтра, которые вы хотели бы видеть (то есть, система при выводе фильтра будет отталкиваться не от товаров которые лежат в текущем каталоге, а от типа данных).

То есть если у меня type_id (раздел каталога) равен значению 82 или 132 (объекта каталога), то вызов фильтра по товарам должен быть таки:
<xsl:apply-templates select="document('udata://catalog/search///(82)')/udata" />
<xsl:apply-templates select="document('udata://catalog/search///(132)')/udata" />
?
Однако на главной странице и в разделах каталога, кроме последнего где товары лежат, ни чего не выходит.
Опять я напутал что-то?

если вопрос еще актуален... вы type-id вставляете 3-им  параметром, а нужно 4-ым.
<xsl:apply-templates select="document('udata://catalog/search////82')/udata" />
<xsl:apply-templates select="document('udata://catalog/search////132')/udata" />