Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Выборка товаров определённого раздела

00 голосов
6
Подробнее

Нужно выводить все записи которые находятся на 2м и 3м уровне (например 1.x, 1.x.x или 2.x, 2.x.x) при этом исключить первый уровень.


1. Товары

1.1 Автоматическая останстка
1.1.1 Серия I

1.1.1.1 Лалалаллаа 21331
1.1.2 Серия II
1.1.2.1 Ваававав 3434

2. Услуги
2.1 Приватизация
2.1.1 На дому
2.1.2 Выезд
2.2 Уничтожение

(выбирать все то что выделено зеленым, красный - не выбирать)

в параметрах компонента (catalog.section.list) имеется возможность указать Максимальная отображаемая глубина разделов, но это не совсем то что мне нужно.
спросил 15 Окт, 13 от VaNesa (180 баллов)

6 Ответы

00 голосов
Используйте фильтр по DEPTH_LEVEL (уровень вложенности).
CIBlockSection::GetList()
ответил 05 Ноя, 13 от smileplz (8,020 баллов)
00 голосов
del
ответил 11 Фев, 14 от VaNesa (180 баллов)
00 голосов
Не могу понять как применить этот фильтр (CIBlockSection::GetList()).

Код который подключает структуру разделов:
Код
<?$APPLICATION->IncludeComponent("bitrix:catalog.section.list", ".default", array(
   "IBLOCK_TYPE" => "xmlcatalog",
   "IBLOCK_ID" => "3",
   "SECTION_ID" => "",
   "SECTION_CODE" => "",
   "COUNT_ELEMENTS" => "Y",
   "TOP_DEPTH" => "3",
   "SECTION_URL" => "/e-store/xml_catalog/#SECTION_ID#/",
   "CACHE_TYPE" => "A",
   "CACHE_TIME" => "3600",
   "CACHE_GROUPS" => "Y",
   "DISPLAY_PANEL" => "N",
   "ADD_SECTIONS_CHAIN" => "N"
   ), false
);?>


Подскажите пожалуйста как дальше?
ответил 01 Июнь, 14 от VaNesa (180 баллов)
00 голосов
Вам нужно не выбирать разделы определенного уровня или не выводить?

Если не выводить, то нужно скопировать шаблон компонента в свой шаблон сайта и перед выводом делать проверку значения $arSection["DEPTH_LEVEL"]. Выводить только те, у которых это значение равно 2 или 3.

Если не выбирать, то необходимо либо кастомизировать стандартный компонент catalog.section.list, либо сделать свою выборку CIBlockSection::GetList(), добавив в фильтр поле DEPTH_LEVEL.
ответил 28 Сен, 14 от smileplz (8,020 баллов)
00 голосов
Господа, я вот столкнулся со следующим: так же есть многоуровневый инфо-блок:

1. Родитель1
1.1 Подкаталог1
1.1.1 Подкаталог11
1.1.2 Подкаталог12
- Товар1 ("свойство1", "свойствоN
Код
[/CODE]")
         - Товар2 ("свойство1", "свойствоN")

 1.2 Подкаталог2
  1.2.1 Подкаталог21
  1.2.2 Подкаталог22

итд...

Необходимо сделать сортировку по такому принципу: есть 3 выпадающих списка - 1й по записям 2го уровня (подкаталог1, подкаталог2 итд), 2й по записям 3го уровня (подкаталог11 и другие), 3й по конкретному свойству товара. 
 В Битриксе я начинающий, получилось выполнить поиск в каталоге только по свойствам, путем выборки свойства из БД:
[CODE]
$strsql = "SELECT VALUE AS prop, IBLOCK_ELEMENT_ID AS ident
FROM b_iblock_element_property AS prop
WHERE IBLOCK_PROPERTY_ID =75
GROUP BY VALUE";


ну и далее, зная ID и значение, составил ассоциативный массив, и выполнил поиск:

Код
$res = $DB->Query($strsql, false, $err_mess.__LINE__);

while($tmp=$res->NavNext()){

        $assoc[$tmp['ident']] = $tmp['prop'];

}

<form action="catalogue.php?ELEMENT_ID=$key">
<table>

   <?if(isset($assoc)):?>
   <tr>
      <td>Поиск по размеру :   </td></tr>
      <tr><td>
         <select  style="width: 150px" name="ELEMENT_ID" type="submit">
            <option value="">Выберите размер</option>            
            <?foreach ($assoc as $key => $elem):?>
            <option <?=(isset($_REQUEST['elem'])&& ($_REQUEST['elem']==$elem) )? 'selected="selected"' : '';?> value="<?=$key?>"><?=$elem?></option>            
            <?endforeach;?>

         </select>



Аналогичным способом пытался сделать выборку из базы для подкатегорий 2го и 3го уровней, однако столкнулся с тем, что не могу определить, в какому родительскому блоку принадлежит каждая подкатегория.

Подскажите пожалуста, возможно решить эту задачу как то более простым, рациональным способом? Может я иду совсем не по тому пути?

Спасибо всем за ответ заранее!
ответил 01 Фев, 15 от Heila (100 баллов)
00 голосов
Мой вопрос снят, путем добавления дополнительных условий в шаблоне компонента.

спасибо!
ответил 15 Май, 15 от VaNesa (180 баллов)

Похожие вопросы

0 голосов
2 ответов
0 голосов
1 ответ
спросил 11 Июль, 14 от pulse (120 баллов)
0 голосов
2 ответов
спросил 04 Май, 14 от Snezhka (2,240 баллов)