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


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

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