• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела wpt лично.

Помощь Умный фильтр на отдельной странице

nikola_piter

Гуру форума
Регистрация
27 Июн 2007
Сообщения
221
Реакции
95
Добрый день! Подскажите может уже кто-то делал. Мне нужно разместить умный фильтр на отдельной странице. Как это можно сделать?

---
Автор ТС хочет использовать не готовое решение, а разобраться в теме фильтрации и реализовать свою задачу.
 
Последнее редактирование модератором:
Не то чтобы отдельно, просто подбор оборудования по характеристикам вынести на отдельную страницу. В самом каталоге фильтр отображаться не должен.

Смотря на какой странице... Вам на какую надо?
Создать отдельную страницу и на неё вывести
 
Последнее редактирование модератором:
Добрый день! Подскажите может уже кто-то делал. Мне нужно разместить умный фильтр на отдельной странице. Как это можно сделать?

Можно, это ведь компонент их все можно использовать независимо. Настроить только нужно будет, так как в комплексном компоненте фильтр берет настройки из него. Ну и чуть танцев с бубном.
 
Настроить только нужно будет, так как в комплексном компоненте фильтр берет настройки из него. Ну и чуть танцев с бубном.
Правильно, если есть "ресурсы" на это, то можно сделать всё.

Есть более простой вариант фильтра с более простой настройкой


Просто нужно понять, по чему Вам нужно фильтровать, изложите более подробно Вашу задачу.
 
Последнее редактирование модератором:
Смотрите, есть много товаров со своими хар-ки. Товары разложены по категориям и в каждой категории фильтр отрабатывает отлично, но мне нужно фильтровать весь товар. Я сделал ещё одну категорию в каталоге и назвал её "подбор оборудования", а у каждого товара помимо своей категории указал эту общую категорию. В принципе сейчас задача решена этим фильтром, но хотелось бы чтобы фильтр не отображался во всех категориях кроме общей.

Нужно нечто такого
Скрытое содержимое доступно для зарегистрированных пользователей!
 
Последнее редактирование модератором:
Можно, это ведь компонент их все можно использовать независимо. Настроить только нужно будет, так как в комплексном компоненте фильтр берет настройки из него. Ну и чуть танцев с бубном.
Создал страницу новую и поместил на него компонент умного фильтра, вроде все выбрал (из какого инфоблока брать данные), но почему то он не выводит нужные позиции. Не подскажите как это сделать?
 
Смотрите, есть много товаров со своими хар-ки. Товары разложены по категориям и в каждой категории фильтр отрабатывает отлично, но мне нужно фильтровать весь товар. Я сделал ещё одну категорию в каталоге и назвал её "подбор оборудования", а у каждого товара помимо своей категории указал эту общую категорию. В принципе сейчас задача решена этим фильтром, но хотелось бы чтобы фильтр не отображался во всех категориях кроме общей.

Нужно нечто такого

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

Создал страницу новую и поместил на него компонент умного фильтра, вроде все выбрал (из какого инфоблока брать данные), но почему то он не выводит нужные позиции. Не подскажите как это сделать?
На странице должно быть подгружено, то что фильтруем. Скрыто или явно, но должно быть подгружено.

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

Зачем? Компоненты не обмениваются данными! Только будут лишние тяжелые запросы на главной странице. Умный фильтр сам все берет из базы. И даже в комплексном компоненте catalog сначала идет фильтр потом уже section.

Создал страницу новую и поместил на него компонент умного фильтра, вроде все выбрал (из какого инфоблока брать данные), но почему то он не выводит нужные позиции. Не подскажите как это сделать?

Фильтр не показывает товары, он только формирует сложный гет запрос из которого формируется фильтр для компонента catalog.section. То есть или вы должны указать в путях ссылку на ваш комплексный компонент или на вашей отдельной странице добавить catalog.section, только не забудьте что названия фильтра и там и там должны быть одинаковые.
 
Последнее редактирование модератором:
может поможет.
выводил таким путем на отдельной странице, дальше рядом лежал вызов каталога
PHP:
<?
if (CModule::IncludeModule("iblock") && COption::GetOptionString("eshop", "catalogSmartFilter", "Y", SITE_ID)=="Y")
{
  $arFilter = array(
  "ACTIVE" => "Y",
  "GLOBAL_ACTIVE" => "Y",
  "IBLOCK_ID" => 2,//$arParams["IBLOCK_ID"],
  );
   $ii=explode("/", $APPLICATION->getCurPage());
  $arFilter["=CODE"] = $ii[2];
 
 $obCache = new CPHPCache;
 if($obCache->InitCache(36000, serialize($arFilter), "/iblock/catalog"))
 {
  $arCurSection = $obCache->GetVars();
 }
 else
 {
  $arCurSection = array();
  $dbRes = CIBlockSection::GetList(array(), $arFilter, false, array("ID"));
  $dbRes = new CIBlockResult($dbRes);

  if(defined("BX_COMP_MANAGED_CACHE"))
  {
  global $CACHE_MANAGER;
  $CACHE_MANAGER->StartTagCache("/iblock/catalog");

  if ($arCurSection = $dbRes->GetNext())
  {
  $CACHE_MANAGER->RegisterTag("iblock_id_".$arParams["IBLOCK_ID"]);
  }
  $CACHE_MANAGER->EndTagCache();
  }
  else
  {
  if(!$arCurSection = $dbRes->GetNext())
  $arCurSection = array();
  }

  $obCache->EndDataCache($arCurSection);
 }
?>
<?$APPLICATION->IncludeComponent(
   "b1team:catalog.smart.filter",
   "",
   Array(
     "IBLOCK_TYPE" => "tcatalog",//$arParams["IBLOCK_TYPE"],
     "IBLOCK_ID" => "2",//$arParams["IBLOCK_ID"],
     "SECTION_ID" => $arCurSection["ID"],
     "FILTER_NAME" => "arrFilter",//$arParams["FILTER_NAME"],
     "PRICE_CODE" => array("rub"),//$arParams["PRICE_CODE"],
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "3600",
     "CACHE_GROUPS" => "Y",
     "SAVE_IN_SESSION" => "N",
     "OFFERS_PROPERTY_CODE" => array("CML2_LINK"),
     "IS_SEF" => "N"
   ),
false
); ?>
<? Global $arrFilter; ?>
<?}?>
 
Назад
Сверху