Показ новостей по разделам в компоненте bitrix:news

Комплексный компонент Битрикс выводит все элементы инфоблока. Что для просто новостей на сайте визитке не критично . Но если если нужно вывести статьи по разделам, то я применил почти стандартный хак- $arrFilter.

На странице раздела размещаем комплексный компонент bitrix:news ,указав сразу имя шаблона компоненты или в режиме правки скопировав шаблон компонента в свой шаблон. /bitrix/templates/my_templates/components/bitrix/news/my_templates/ .

Открываем файл news.php для редактирования и перед вызовом компоненты bitrix:news.list, размещаем фильтр, по которому будут отбираться раздел

<? global $arrFilter;
$arrFilter= Array("SECTION_ID" => $_REQUEST["ELEMENT_ID"]);
$APPLICATION->IncludeComponent(
"bitrix:news.list",
"",
Array(

Если нужно вывести описание , картинку раздела, то новый хак уже для шаблона bitrix:news.list . Создаем файл result_modifier.php, уже в папке шаблона bitrix:news.list в котором добавляется в массив $arResult['ITEMS'], нужные данные.

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
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'],
'PICTURE' => $arSection['PICTURE'],
'DESCRIPTION' => $arSection['DESCRIPTION'],
);
}
$arItem['SECTION_LIST'] = $arSectionList;
$arResult['ITEMS'][$key] = $arItem;
}
?>

Добавить комментарий


Защитный код
Обновить