Меню
Вывести все разделы в которых находится элемент инфоблока

Если нужно вывести все разделы, со всей доступной информацией о них, внутри элемента инфоблока, например в карточке товара каталога- можно воспользоваться API методом  CIBlockElement::GetElementGroups
Привет.
Интересное решение описывается в вашей статье. Но у меня ЧПУ #catalog/#SECTION_CODE#/
Видимо, поэтому и не работает.
Не подскажете, какие правки в код внести, чтобы работало на SECTION_CODE ?
Добрый день.
Михаил не могли бы помочь.
В result.modifier.php получаю все разделы элемента, но так как с GetElementGroups я не могу получить UF_ свойства, надо дальше прогнать GetList

Код
foreach ($arResult['ITEMS'] as $key => $arItem)
{
    $arSectionList = array();
    $rsSections = CIBlockElement::GetElementGroups($arItem['ID']);
    while ($arSection = $rsSections->GetNext())
    {
        $arSectionList[] = array(
            'ID' => $arSection['ID'],
            'NAME' => $arSection['NAME'],
            'SECTION_PAGE_URL' => $arSection['SECTION_PAGE_URL'],
        );
    }
    $arItem['SECTION_LIST'] = $arSectionList;
    $arResult['ITEMS'][$key] = $arItem;
}



$arSection = CIBlockSection::GetList(
    Array(  ),
    Array(
        "ACTIVE" => "Y",
        "IBLOCK_ID" => 2,
        "ID" => $arSection['ID'],     
    ),
    false,
    Array(
        "ID",
        "UF_*"
    )
)->fetch();


Не получаю то, что мне нужно. Понимаю что не так сделал , не силен в этом.
Как мне добавить в полученный массив SECTION_LIST к каждому элементу дополнительно все свойства UF_
не могли бы помочь? Спасибо
Если уж, все равно используете CIBlockSection::GetList - может только его и оставить? Смысл проделывать двойной прогон?
И GetNext вместо Fetch
Удалось реализовать связкой GetElementGroups  и CIBlockSectionGetList, я так и не допер как можно решить вопрос только лиш с CIBlockSection::GetList, я не могу получить список всех разделов к которым привязан элемент.
Можете показать пример решения пожалуйста или направить в нужную сторону?

Хочется понять как можно было только с CIBlockSectionGetList
Дай бог тебе здоровья. Выручил в очередной раз)))
Михаил, а добавить к этому решению вывод разделов в алфавитном порядке не планируется? Подскажите как правильно применить.
Вот так, работоспособность проверена.
Только учтите, что будет сортировка именно по названию раздела, а не по его SECTION_META_TITLE
Код
$ElementId = $arResult['ID'];
$db_groups = CIBlockElement::GetElementGroups($arResult['ID'], true);
while ($ar_group = $db_groups->Fetch()) {
    $arGroups[] = $ar_group["ID"]; // Создаем массив с группами
}
$dbRes = CIBlockSection::GetList(
    array(
        'NAME' => 'ASC', // И прочие виды сортировок
    ),
    array(
        'IBLOCK_ID' => $arResult['IBLOCK_ID'], // Для скорости, что бы не перебирало все инфоблоки
    ),
    false,
    array (
        'ID',
        'NAME',
        'SECTION_PAGE_URL'
    )
);
while ($arDbRes = $dbRes->GetNext()) {
    if (!in_array($arDbRes['ID'], $arGroups)) {
        continue; // Если группы нет в массиве продолжаем, иначе выводим
    }
    $ipropValues = new \Bitrix\Iblock\InheritedProperty\SectionValues(
        $arResult['IBLOCK_ID'],
        $arDbRes["ID"]
    );?>
    <a href="<?echo $arDbRes['SECTION_PAGE_URL'];?>">
        <?echo $ipropValues->getValues()['SECTION_META_TITLE']?>
    </a>
    <?
}
Спасибо, на вашем сайте всегда нахожу подходящие решения!
Видеоуроки по
1С-Битрикс
на моем Boosty канале Видео
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 

Блог-note: заметки разработчика

Сравнение двух типов цен для иммитации системы скидок, в Битрикс

Встала задачка, иммититровать систему скидок в интернет магазине на Битрикс. Из 1С-УТ, на сайт, выгружается два типа цен...

Связанные элементы в карточке товара, с помощью catalog.section

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

Отключить поиск по описаниям товаров в Битрикс

Иногда, нужно отключить поиск по описаниям анонсов и детальному описанию товаров, при разработке сайтов на Битрикс. Сдел...

Старые шаблоны битрикс для простой верстки

Новые версии типового интернет-магазина, который идет в комплекте с Битрикс (от 12 версии и выше), достаточно технологич...

Установить цену товара из свойства инфоблока

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

Как выводить пользовательские поля и названия разделов инфоблока в Битриксе

Если вам необходимо вывести дополнительное пользовательское поле типа "Привязка к разделам инфоблока", эта записка может...

Удалить всех пользователей которые не делали заказов в магазине 1С-Битрикс

Задача: сайт проработал 7 лет и все время на нем была открытая регистрация, создано много мертвых учетных записей (б...

Сортировка элементов по индексу сортировки значений типа список

Внутри любого компонента есть заранее заложенные поля для сортировки элементов. Можно сортировать элементы в разных напр...

Вывести множественное свойство типа файл с названием и весом файла в Битрикс

В этой заметке расскажу как красиво вывести множественное свойство типа файл в инфоблоке 1С-Битрикс. С показом оригиналь...