Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
фильтр товаров с условием OR и поиск по нескольким (не всем) разделам каталога

Автор bosyaРаздел Custom макросы

Ответов: 3
Просмотров: 3440
Последний ответ 18 Май 2012, 11:08:37
от web-industry
Фильтр по полю типа выпадающий список с множественным выбором

Автор sergeronРаздел Шаблоны XSLT

Ответов: 5
Просмотров: 4477
Последний ответ 20 Май 2013, 09:20:22
от admin
Не показывать объекты каталога, пока не сработает фильтр

Автор CubesРаздел Макросы UMI.CMS

Ответов: 4
Просмотров: 845
Последний ответ 25 Апрель 2015, 09:46:26
от e.ioffe
Фильтр для товаров выбранных с помощью usel

Автор webtrendРаздел Шаблоны XSLT

Ответов: 3
Просмотров: 323
Последний ответ 01 Июнь 2016, 22:05:16
от aghigay
Динамический фильтр по объектам каталога

Автор AlexeyРаздел Настройка системы и модулей

Ответов: 3
Просмотров: 2583
Последний ответ 07 Январь 2012, 07:27:36
от admin

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

*

reekor

  • *
  • 9
  • +0/-0
    • Просмотр профиля
    • Серебрина ру
Фильтр по товарам
« : 28 Август 2015, 13:24:13 »
Всем Привет.
В ообщем задача такая:
1 Нужен фильтр в котором участвует 2 типа товаров(т.е. 2 разных @type-id)
типы в структуре располагаются следующим образом:
      1.Товар  (@type-id 1)
         1.1. Опция товара (@type-id 2) со своими полями, например размер и имеет свой справочник relation. @type-id 2 Связано через symlink с @type-id 1.
         1.1. Опция товара (@type-id 2) -//-
Кастомно @type-id 2 не отображается в категории.

Как сделать так чтобы вывести этот фильтр по полю "размер" товара @type-id2.
2. чтоб он произвел поиск, и если в результат попадает  товар @type-шв2, то выводил родителя(@type-id1).   
вот.         

Еще не могу разобраться с макросом catalog/search, он что только выводит поля которые участвуют в фильтре?
А где взять файл который непосредственно выполняет процесс фильтрации?



*

reekor

  • *
  • 9
  • +0/-0
    • Просмотр профиля
    • Серебрина ру
Re: Фильтр по товарам
« Ответ #1 : 28 Август 2015, 13:27:55 »
Если я правильно понял getObjectsList отвечает за результат, если нет поправьте меня.

*

reekor

  • *
  • 9
  • +0/-0
    • Просмотр профиля
    • Серебрина ру
Re: Фильтр по товарам
« Ответ #2 : 22 Сентябрь 2015, 10:29:35 »
Получилось e меня как-то так. это стандартный макрос getObjectsList.


   if($type_id) {
            $this->autoDetectOrders($sel, $type_id);
            $this->autoDetectFilters($sel, $type_id);
           
            if($this->isSelectionFiltered) {
               $template_block_empty = $template_block_search_empty;
               $this->isSelectionFiltered = false;
            }
            } else {
            $sel->setOrderFilter();
            $sel->setOrderByName();
         }
         
         
         
      /* ******************************************************************** */
         $data = getRequest('fields_filter');
         
         /* Определяет по какому type-id выводыить */
          if ($data) {
               if ($sel->addPropertyFilterIsNull('price')){
                 
                  $sel->addObjectType(164);
                  }
               
             }
            else {
               $sel->addObjectType(83);
            }
          /* ******************************************************************** */
         
         if($curr_page !== "all") {
            $curr_page = (int) $curr_page;
            $sel->setLimitFilter();
            $sel->addLimit($per_page, $curr_page);
         }

P.S. код в принципе выполняется как мне надо. Но если честно не совсем понимаю:"$sel->addPropertyFilterIsNull('price'))", но и без нее не работает. Если кому не сложно поясните.

*

Aisamiery

  • **
  • 83
  • +7/-4
    • Просмотр профиля
Re: Фильтр по товарам
« Ответ #3 : 01 Октябрь 2015, 15:46:02 »
P.S. код в принципе выполняется как мне надо. Но если честно не совсем понимаю:"$sel->addPropertyFilterIsNull('price'))", но и без нее не работает. Если кому не сложно поясните.

Думаю по названию метода, он проверяет чтоб поле Цена было пустое

*

Aisamiery

  • **
  • 83
  • +7/-4
    • Просмотр профиля
Re: Фильтр по товарам
« Ответ #4 : 01 Октябрь 2015, 15:48:06 »
Мне чтоб решить такую же задачу, пришлось переписать кучу системных макросов ))
Так как мне нужно работать с товаром типа type-id2, а выводить везде type-id1 ))

*

crazygeorgio

  • ***
  • 140
  • +7/-0
    • Просмотр профиля
Re: Фильтр по товарам
« Ответ #5 : 03 Октябрь 2015, 01:46:37 »
catalog/search выводит фильтр по полям для которых стоит галочка "Фильтруемо" в настройках шаблонов данных, сами поля берутся из типа данных наиболее часто встречающегося в данном разделе, типа если в категории 2 товара с типа1 и 3 товара типа2, то берутся данные полей типа2, это по-молчанию, так-же можно и явно задать тип данных в самом макросе catalog/search см. http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/katalog/catalog_search/

2. берешь, получаешь все страница которые попали в воронку фильтра, проходишься по всем и составляешь массив из родительских id, потом просеиваешь массив на уникальность и выводишь то что тебе нужно, по каждому родителю