Зная ID раздела, в битриксе очень просто вывести его имя, а также узнать, по какой ссылке он доступен.
Ссылка формируется из настроек инфоблока. Чтобы все ваши ссылки отображались корректно, настройки внутри инфоблока и вашего компонента должны совпадать.
Для того чтобы вывести имя раздела будем использовать API Битрикса.
<? $res = CIBlockSection::GetByID($arItem['IBLOCK_SECTION_ID']); $ar_res = $res->GetNext(); ?> <a href="<? echo $ar_res['SECTION_PAGE_URL']; ?>"><? echo $ar_res['NAME']; ?></a>
$arItem[‘IBLOCK_SECTION_ID’] — ID раздела, имя которого мы хотим вывести
$ar_res[‘SECTION_PAGE_URL’] — ссылка на раздел
$ar_res[‘NAME’] — имя раздела
Хочу сделать возможной вывод списка новостей принадлежащих только конкретному разделу. Как это сделать?
Вам нужно воспользоваться методом CIblockElement::GetList
https://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockelement/getlist.php
Я вкратце писал об этом, посмотрите http://forwww.com/bitrix-how-to-get-element-and-section-list/
Во втором массиве, он же arFilter, вам нужно указать как минимум 3 параметра Array(«IBLOCK_ID» => $iblock_id, «ACTIVE» => «Y», «SECTION_ID» => $SECTION_ID), — где нужно указать id инфоблока и секции, а также указать что будем выбирать только активные элементы.
ПС извиняюсь что ответил с задержкой, спам фильтр жёстко работает 🙂
Ну вот сижу зациклился на разделах инфоблока и упорно пишу туда код раздела инфоблока, а не самого инфоблока. Поставил свой, толку мало, вижу на странице только название страницы содержание раздела инфоблока теперь не выводится.
Попробуйте перед кодом добавить CModule::IncludeModule("iblock"); ?>
Битрикс нагенерировал дубликаты страниц разделов
http://sibl.ru/catalog/lcd-panel-nec.html
http://sibl.ru/catalog/LCD-panel-NEC.html
подскажите как это исправить.
в более новых версиях битрикса есть выбор основного раздела, по которому и строится урл, плюс в настройках компонента вам нужно обязательно включить показ 404 страницы, чтобы при введении разных символов сервер отдавал 404. В настройках инфоблока, если я не путаю, можно найти выбор основного раздела
не работает
попробуйте перед подключить модуль инфоблока
Добрый день! Это не работает, если элемент относится сразу к двум разделам. Нашел решение:
Fetch()) {
$temp++; // Проверим, к какому количеству разделов принадлежит элемент
}
if ($temp == 1) { // Если элемент принадлежит только к одному разделу
$db_old_groups = CIBlockElement::GetElementGroups($arItem[‘ID’], false);
while($ar_group = $db_old_groups->Fetch()) {
echo ‘Раздел: ‘ . $ar_group[«NAME»];
}
}
else { // Если элемент принадлежит более чем к одному разделу
echo ‘Разделы: ‘;
$db_old_groups = CIBlockElement::GetElementGroups($arItem[‘ID’], false);
while($ar_group = $db_old_groups->Fetch()) {
echo $ar_group[«NAME»] . ‘ ‘;
}
}
?>
… но не могу понять как сделать ссылками эти разделы.
$ar_group[«SECTION_PAGE_URL»], он тут есть, судя по документации
https://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockelement/getelementgroups.php