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

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

Если нужно вывести все разделы, со всей доступной информацией о них, внутри элемента инфоблока, например в карточке товара каталога- можно воспользоваться API методом  CIBlockElement::GetElementGroups
 
Привет.
Интересное решение описывается в вашей статье. Но у меня ЧПУ #catalog/#SECTION_CODE#/
Видимо, поэтому и не работает.
Не подскажете, какие правки в код внести, чтобы работало на SECTION_CODE ?
 
Цитата
Stanislav2636 пишет:
echo 'Все товары: ';
Попоробуйте в этой строчке

Код
 echo 'Все товары: <a href="/catalog/'. $ar_group["ID"] . '/">'; 

Поменять ID на SECTION_CODE, по идее он тоже сюда передается
Или, получить SECTION_CODE зная ID раздела


Код
$arResult["SECTION_INFO"] = array();
$obSection = CIBlockSection::GetList(array(), "ID"=>$arSectionID); // где $arSectionID собранный вами массив
while($arSection = $obSection->Fetch();)
   $arResult["SECTION_INFO"][$arSection["ID"]] = $arSection; 
 
Добрый день, Михаил! Отличное решение, Подскажите как вывести эти разделы в алфавитном порядке?
 
Цитата
Иван Чухрай написал:
Добрый день, Михаил! Отличное решение, Подскажите как вывести эти разделы в алфавитном порядке?
Наверное, самое просто и не монструозное решение:
Загнать названия, моим способом, в массив.
Потом этот массив отсортировать по алфавиту, способом
Код
sort($ВАШМАССИВ, SORT_STRING);
ну и вывести все foreach- ем
 
Отмена с массивом. Там можно конечно, на будет глупо не воспользоваться самим методом GetElementGroups
У него есть работа с сортировкой, соотвественно:
Код
$ElementId = $arResult['ID'];
    $db_groups = CIBlockElement::GetElementGroups($ElementId, SORT=>"NAME");
    while($ar_group = $db_groups->Fetch()) {
        echo 'Все товары: <a href="/catalog/'. $ar_group["ID"] . '/">';
        echo $ar_group["NAME"];
        echo "</a>";
}
 
Цитата
Михаил Базаров пишет:
Отмена с массивом. Там можно конечно, на будет глупо не воспользоваться самим методом GetElementGroups
У него есть работа с сортировкой, соотвественно:
Код
 $ElementId = $arResult['ID'];
    $db_groups = CIBlockElement::GetElementGroups($ElementId, SORT=>"NAME");
    while($ar_group = $db_groups->Fetch()) {
        echo 'Все товары: <a href="/catalog/'. $ar_group["ID"] . '/">';
        echo $ar_group["NAME"];
        echo "</a>";
} 
При выполнении скрипта возникла ошибка.


А так все равно по алфавиту не сортирует:
Код
$db_groups = CIBlockElement::GetElementGroups($ElementId, array (SORT=>"NAME"));
Читают тему (гостей: 1)

Кроме создания сайтов, я так же веду блог с заметками о вебразработке, записываю бесплатные видеоуроки и содержу форум, на котором можно задавать вопросы и просто общаться. Заметки, преимущественно - это короткие или подробные рецепты, по реализации часто требуемого функционала- в рамках разработки сайтов на 1С-Битрикс

Показать еще