Фильтрация товаров 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
    Как купить билеты на поезд

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

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

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

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

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

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

    Авіаквитки купити
    В наше время все больше людей путешествуют с помощью самолета. Ведь авиаперевозки пассажирские стали намного доступнее. И приобрести билеты становится с каждым днём все легче и легче. К примеру, на данном

    Повербанк оптом
    В данной группе представлены переносные зарядные устройства Power Banks. Power Banks - Повер банк, Пауер банк, Павер банк, как только не переводят на русский язык. Единого мнения на счет перевода не будет.

    Cbd vape pen buy online
    Представители просвещенной части прогрессивного человечества сегодня являются активными приверженцами здорового образа жизни и предпочитают лечится только с помощью средств натурального происхождения.

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

rss