Список новостей bitrix:news — это комплексный компонент входящий в состав дистрибутива bitrix. Почему комплексный, потому что, он включает несколько компонентов входящих в его состав и отвечают за вывод как самого списка новостей (bitrix:news list), так и отображения детальной информации, т.е. страницы самой новости (news.detail), но речь пойдет о компоненте который может работать отдельно от комплексного, такой как bitrix:news list, дело в том, что данный компонент может отображать элементы инфоблока, новости которые содержатся в структуре сайта в виде элементов, на главной страницы сайта. Помимо этого данным компонентом можно вывести к примеру слайдер на главной, или список баннеров. Данный компонент весьма интересен тем, что его можно настраивать так, как вам необходимо для решения ваших задач. К примеру можно вывести все новости (элементы) с определенным свойством, для этого вам необходим фильтр:
1 2 3 4 5 6 7 8 9 |
$arrFilter=Array("ACTIVE" => "Y","PROPERTY_SALE" => "1"); $APPLICATION->IncludeComponent( "bitrix:news.list", "", Array( "DISPLAY_DATE" => "Y", ... "FILTER_NAME" => "arrFilter", ) ); |
Где, PROPERTY_SALE — это свойство инфоблока, по которому происходит фильтрация, а 1 — является ID значения этого свойства, но также фильтровать новости в компоненте bitrix:news.list можно и по самому значению свойства, а не по его ID, для этого необходимо просто проверять (в данном случае) по PROPERTY_SALE_VALUE, вида:
1 2 3 4 5 6 7 8 9 |
<strong>$arrFilter</strong>=Array("ACTIVE" => "Y","PROPERTY_SALE_VALUE" => "YES"); $APPLICATION->IncludeComponent( "bitrix:news.list", "", Array( "DISPLAY_DATE" => "Y", ... "FILTER_NAME" => "<strong>arrFilter</strong>", ) ); |
Также, стоит отметить при использовании фильтрации по свойствам, компоненту bitrix:news.list необходимо передать название фильтра, в данном случае, название фильтра будет $arrFilter.
Статья будет постепенно наполняться, различными кастомизациями используя компонент bitrix:news.list
К примеру, вам необходимо на странице вывести все элементы из множественного свойства «Привязка к элементу» и сформировать массив для фильтра, который потом работал бы с компонентом bitrix:news.list.
Для того чтобы решить данную задачу, нам понадобится метод GetProperty класса CIBlockElement для получения ID инфоблока, с которым связаны элементы. Пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?CModule::IncludeModule("iblock"); $VALUES = array(); $result = CIBlockElement::GetProperty(2, $_REQUEST["ID"], "sort", "asc", array("CODE"=>"PRIV")); while ($arList = $result->GetNext()) { $VALUES[] = $arList['VALUE']; } ?> <?$GLOBALS['arrpriv'] = array('ACTIVE' => 'Y', 'ID' => $VALUES);?> <?$APPLICATION->IncludeComponent("bitrix:news.list", "sale", array( "IBLOCK_TYPE" => "news", "IBLOCK_ID" => "2", "NEWS_COUNT" => "5", "FILTER_NAME" => "arrpriv", . . . ), false );?> |