Фильтрация товаров UMI.CMS. Работа с методом detectFilters

Опубликовано: 01.09.2018

видео Фильтрация товаров UMI.CMS. Работа с методом detectFilters

Уроки UMI.CMS Быстрое редактирование каталога товаров.



Продолжаю экскурс по UMI.CMS. В последний раз я упомянул про  класс предоставляющий заказ, либо корзину заказов пользователя . В этой статье хочу упомянуть про класс selectorHelper, и отличный методы detectFilters

К большому сожалению я нигде не нашел упоминаю про этот великолепный метод... Мною он был обнаружен тогда, когда я изучал работу админ панели сайта.


Движок UMI.CMS | Урок #8 - Макросы для работы с разделами, фильтрация по характеристикам

Расположение classes/system/subsystems/selector/helper.php

В по сути работать с методом очень просто.

Для начала в URL страницы нужно передать параметры . Могут быть следующие параметры:

?search-all-text — параметр который сообщает, что нужно искать текст. Передавать можно только строку. ?fields_filter — параметр сообщает, типы фильтруемых полей и значения. Возможна передача массива, для множественного поиска ?order_filter — параметр для сортировки товаров. Возможна передача массива для сортировки по нескольким полям

Пример URL :


Вебинар от umihelp.ru: углубленный курс по XSLT-шаблонизатору (UMI.CMS)

?search-all-text=текст для поиска ?fields_filter[price][0]=8&fields_filter[price][1]=500&fields_filter[nalichie_kamnej][eq][]=6513 ?order_filter[price]=desc

Пояснение к URL fields_filter .

Если вам нужно искать по диапазону от-до (может быть цена или например вес), то нужно передать в параметр название поля и id 0 и 1 , которые обозначают диапазон:

От fields_filter[price][0]=8 До fields_filter[price][1]=500

Если нужно искать точное соответствие:

fields_filter[nalichie_kamnej][eq][]=6513

Есть еще несколько параметров (с ними мне еще ну удалось поработать):

'ne' => 'notequals', 'like' => 'like', 'gt' => 'more', 'lt' => 'less'

Пояснение к URL order_filter:

Тут все очень просто:

order_filter[price]=asc — по возрастанию order_filter[price]=desc — по убыванию

Теперь, чтобы выборка сработала, вам нужно запустить метод selectorHelper::detectOrderFilters ($sel) . Напоминаю, UMI.CMS уже самостоятельно делает выборку и фильтрацию, вам нужно только вызвать метод.

public function getAllFiltredObjects() { $hierarchy = umiHierarchy::getInstance(); $sel = new selector('pages'); $sel->types('hierarchy-type')->name('catalog', 'object'); selectorHelper::detectOrderFilters($sel); // Отрисовать элементы $lines = Array(); foreach ($sel->result as $item){ $element = $hierarchy->getElement($item->id); $arr['attribute:id'] = $item->id; $arr['attribute:link'] = $item->link; $arr['name'] = $element->name; $lines['nodes:item'][] = $arr; } return array( "items" => $lines, ); }

Не могу не упомянуть про производительность. 

Связка UMI Selector + detectFilters это что-то. Мною было протестировано порядка 15 тыс. товаров с различными фильтрами. Все работает очень и очень быстро.

Если честно, на месте разработчиков UMI я бы отказался от всех устаревших getObjectList и переписал бы все методы, которые используются на fron-end. Пользователи должны сразу получать отличный функционал, а не только быстро работающую админку!!! Я сразу скажу, что понимаю, что все это трудозатратно...

В одной из следующих статей постараюсь подробнее расписать работу с методами — это тоже трудозатратно.

Ну и хочу напомнить службе заботы о том, что они так и не сделали описание данного метода.

3D стерео фильмы для 5D
    Как купить билеты на поезд

    Я всегда в последнее время пользуюсь услугами настоящего интернет сайта. Он у меня внушает доверие. И здесь придбати квитки возможно в любое

    Begin.com.ua/
    Подбором персонала занимается HR-менеджер, но часто такая должность отсутствует в компании, и его обязанности берут на себя или директор, или его заместитель. Если выбор сотрудников окажется неправильным 

    Бесплатная раскрутка сайтов ucoz
    Необходимо для себя выяснить, какая цель преследуется при раскрутке Интернет проекта. Здесь всё просто, так как чаще всего это возможность при помощи различных способов и средств увеличить поток посетителей.

    Шкафы купе
    Не смотря на то, что такой вид мебели как шкаф-купе появился относительно недавно, он уже успел завоевать сердца многочисленных поклонников. Несомненно, шкаф-купе очень вместительный и прекрасно вписывается

    Где купить качественные ссылки
    Большинство информации предлагаемой для изучения информации по продвижению ресурсов, непременно во главу угла ставят использование в интернет ресурсах качественного, уникального контента. Также для продвижения

    Товаров для дома
    Исходя из этих критериев, можно легко преподнести себя в том или ином деле. Хороший доход может быть на любой работе. Но хороших друзей на рабочем месте выбрать сложно. В такой ситуации больше побеждает

    Поступления в университет
    Перед всеми выпускниками школ и их родителями сейчас стоит задача – выбор предметов единого государственного экзамена (ЕГЭ). От того, какие ЕГЭ будут выбраны, зависит, поступит ребенок в ВУЗ или нет.

    Видеонаблюдение Novicam в Екатеринбурге
    По своей сути подключение видеорегистратора к локальной сети совершенно не отличается от подключения обычного компьютера к локальной сети.  Для того что бы система видеонаблюдения начала функционировать

    Кредит онлайн на картку
    Каждый из нас может оказаться в такой ситуации, когда срочно нужны деньги. И что же делать, если деньги понадобились прямо здесь и сейчас. В различных кредитных организациях оформление кредита может занять

    Комплект инсталляции Grohe 6в1
    Вместо обычного унитаза многие люди предпочитают, чтобы было сочетание инсталлированной конструкции унитаза с определенным видом отделки. Особенно такая инсталляция включают в себя раму, которая покрыта

rss