• Вконтакте
  • YouTube
Тольятти, ул. Фрунзе 14Б, офис 253
+7 (927) 893-12-93
Заказать звонок
Веб-студия КоЛайн
Услуги
  • Создание сайта
  • Поддержка сайта
  • Обучение
Продукты
  • 1С-Битрикс: Управление сайтом
  • Готовые решения
  • Модули для сайта
Портфолио
Компания
  • О компании
  • Отзывы
  • Реквизиты
  • Лицензии
  • Вопрос ответ
  • Блог программиста
Контакты
Ещё
    Веб-студия КоЛайн
    Услуги
    • Создание сайта
    • Поддержка сайта
    • Обучение
    Продукты
    • 1С-Битрикс: Управление сайтом
    • Готовые решения
    • Модули для сайта
    Портфолио
    Компания
    • О компании
    • Отзывы
    • Реквизиты
    • Лицензии
    • Вопрос ответ
    • Блог программиста
    Контакты
    Ещё
      Веб-студия КоЛайн
      • Услуги
        • Назад
        • Услуги
        • Создание сайта
        • Поддержка сайта
        • Обучение
      • Продукты
        • Назад
        • Продукты
        • 1С-Битрикс: Управление сайтом
        • Готовые решения
        • Модули для сайта
      • Портфолио
      • Компания
        • Назад
        • Компания
        • О компании
        • Отзывы
        • Реквизиты
        • Лицензии
        • Вопрос ответ
        • Блог программиста
      • Контакты
      • +7 (927) 893-12-93
      Будьте на связи
      Тольятти, ул. Фрунзе 14Б, офис 253
      info@colain.ru
      • Вконтакте
      • YouTube

      Фильтрация по параметрам

      • Главная
      • Блог
      • Фильтрация по параметрам

      Подключаем глобальный фильтр, он нужен, для вывода определенных элементов, из общего массива, инфоблока. Спектр применяемости очень широкий. Используется чаще всего с компонентами: Список новостей, Новости, Элементы раздела, Каталог, Топ элементов каталога и Каталог

      2 февраля 2021 17:00
      Для включения фильтр достаточно проделать следующее: Перед вызовом компонента вставить код вида
      $GLOBALS['Название_Фильтра'] = array(Массив с данными для фильтрации);
      В параметрах компонента передать параметры включения фильтра и его название
      $APPLICATION->IncludeComponent(
      .....
      "USE_FILTER" => "Y",
      "FILTER_NAME" => "Название_Фильтра",
      .....
      Примеры:
      Наличие не пустого свойства. Если у инфоблока есть свойство с заданным кодом (DISCOUNTS) оно не пустое и активно:
      $GLOBALS['arrFilter'] = array('ACTIVE' => 'Y', '!PROPERTY_DISCOUNTS' => false);
      Выборка элементов по их ID, если нужен один конкретный:
      $GLOBALS['arrFilter'] = array('ID' => 12);
      Или несколько:
      $GLOBALS['arrFilter'] = array('ID' => array(10,11,12,13));
      Элементы созданные за текущий день
      $curdate = date('d.m.Y');
      $arrFilter = Array(">=DATE_ACTIVE_FROM" => $curdate)
      Элементы созданные последние два дня, где 86000 это количество секунд. Умножая этот параметр на количество дней, получим элементы за последние n (86000 * n) дней
      $from = date('d.m.Y', time() - 86400);
      $to = date("d.m.Y");
      $arrFilter = Array(">=DATE_ACTIVE_FROM" => $from, "<=DATE_ACTIVE_FROM" => $to)
      Отфильтровываем элементы у которых в свойстве "HIT" установлено "Yes". При этом HIT это список с несколькими значениями.
      $GLOBALS['arrFilter'] = array("=PROPERTY_HIT_VALUE"=> "Yes");
      Отфильтровываем элементы у которых в свойстве "HIT" установлено "Yes". При этом HIT это список с несколькими значениями. И э этого свойсва ID - 15
      $GLOBALS['arrFilter'] = array("PROPERTY_15_VALUE"=>"Yes");
      Отфильтровываем элементы у которых в свойстве "HIT" установлено "Yes". При этом HIT это список с несколькими значениями. И э этого свойсва ID - 15
      $GLOBALS['arrFilter'] = array("PROPERTY_15_VALUE"=>"Yes");
      Все элементы из раздела инфоблока, зная ID этого раздела. Например из 90-го
      $GLOBALS['arrFilter']=array("SECTION_ID" => 90);

      Чтоб фильтрация заработала в bitrix:news отключаем в шаблоне:

      <?if($arParams["USE_FILTER"]=="Y"):?>
      <?
         $APPLICATION->IncludeComponent(
            "bitrix:catalog.filter",
            "",
            Array(
               "IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],
               "IBLOCK_ID" => $arParams["IBLOCK_ID"],
               "FILTER_NAME" => $arParams["FILTER_NAME"],
               "FIELD_CODE" => $arParams["FILTER_FIELD_CODE"],
               "PROPERTY_CODE" => $arParams["FILTER_PROPERTY_CODE"],
               "CACHE_TYPE" => $arParams["CACHE_TYPE"],
               "CACHE_TIME" => $arParams["CACHE_TIME"],
               "CACHE_GROUPS" => $arParams["CACHE_GROUPS"],
               "PAGER_PARAMS_NAME" => $arParams["PAGER_PARAMS_NAME"],
            ),
            $component
         );
      ?>
      
      
      

      Дополнительный параметр для фильтрации.
      Например, нужно не показывать товары без цены


      global $mySmartFilter;
      $mySmartFilter = ['>PRICE' => 0];

      в bitrix:catalog.smart.filter добавим параметр PREFILTER_NAME
      "PREFILTER_NAME" => "mySmartFilter",
      "FILTER_NAME" => $arParams["FILTER_NAME"],
       

      Вернуться к списку
      Компания
      О компании
      Отзывы
      Реквизиты
      Лицензии
      Вопрос ответ
      Блог программиста
      Продукты
      1С-Битрикс: Управление сайтом
      Готовые сайты
      Модули для сайта
      Услуги
      Создание сайта
      Разработка сайтов
      Продвигаем
      Поддерживаем
      Повышаем эффективность
      Наши контакты


      +7 (927) 893-12-93
      info@colain.ru
      Тольятти, ул. Фрунзе 14Б, офис 253
      © 2007 - 2023 Веб-студия КоЛайн создание и продвижение сайтов

      Яндекс.Метрика
      Версия для печати
      • Вконтакте
      • YouTube