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

Работа с каталогом

00 голосов
4
Господа дорогие!
Подскажите ссылку, где есть описание - как создать каталог в форме таблицы?

Более простой и конкретный вопрос:
Как программно определить ID элементов в разделе? ID раздела известен :))

Спасибо заранее. ;)
спросил 28 Янв, 14 от ZeroZ (100 баллов)

4 Ответы

00 голосов
Код
<?
if(CModule::IncludeModule("iblock"))
{
   // выберем 10 элементов из папки $ID информационного блока $BID
   $items = GetIBlockElementList($_GET['BID'], $_GET['ID'], Array("SORT"=>"ASC"), 10);
   $items->NavPrint("Товары");
   while($arItem = $items->GetNext())
   {
      echo $arItem["NAME"]."<br>";
      echo $arItem["PREVIEW_TEXT"]."<br>";
   }
   $items->NavPrint("Товары");
}
?>
ответил 30 Май, 14 от Incubus (580 баллов)
00 голосов
Цитата
Alexey Erokhin пишет:
Как программно определить ID элементов в разделе? ID раздела известен smile:))


Предыдущий вариант (с GetIBlockElementList) возвращает только глобально активные элементы инфоблока (т.е. "ACTIVE"="Y" у самих элементов, у их родительского раздела, у родительского раздела этого раздела и т.д. до вплоть до активности инфоблока). Если нужна более гибкая выборка, лучше использоваться CIBlockElement::GetList. Ниже пример, подробнее поищите в документации для разработчиков.

Код
<?
if(CModule::IncludeModule("iblock")) // подключаем модуль Инфоблоки
{
   $arSort = array(); // порядок сортировки
   $arFilter = array( // критерии выборки элементов
      "SECTION_ID" => $ID, // ID раздела - здесь укажите известный ID раздела
      "IBLOCK_ID" => $IBL_ID, // ID инфоблока
      "ACTIVE" => "Y",
      "INCLUDE_SUBSECTIONS" => "N", // не выводить элементы подразделов данного раздела
      // доп. условия фильтрации элементов, если нужны
      );
   
   $arSelect = array ( // какие данные понадобятся на выходе
         "ID",
         // "NAME",
         // "DETAIL_TEXT",
         // "DETAIL_PICTURE",
         // ....
      );
   $db_el = CIBlockElement::GetList($arSort, $arFilter, false, false, $arSelect);
   while( $el = $db_el->GetNext() )
   {
      $arElementIDs[] = $el["ID"];
   }
   
   // $arElementIDs массив содержит ID всех элементов указанного раздела
}
?>
ответил 27 Сен, 14 от kyklaa (100 баллов)
00 голосов
Описание API гляньте че Битрикс умеет.
ответил 30 Янв, 15 от Tetis (500 баллов)
00 голосов
Спасибо всем!
А Дмитрию огромное спасибо. Код работает, ID элекментов определяет :)

Да, коллеги, надо разбираться с битриксом, он много чего умеет. Но порой не грех и спросить, если задачка и время припрут к стенке.

Еще раз спасибо.
ответил 14 Май, 15 от ZeroZ (100 баллов)

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

0 голосов
2 ответов
спросил 16 Апр, 14 от Ayros (100 баллов)
0 голосов
3 ответов
спросил 03 Апр, 14 от Grimmi (2,560 баллов)
0 голосов
3 ответов
спросил 30 Март, 14 от Jugolo (180 баллов)
0 голосов
4 ответов
спросил 01 Окт, 13 от Babai (260 баллов)
0 голосов
1 ответ
спросил 12 Авг, 16 от fomix (120 баллов)