У меня есть компонент news.list, в котором уже присутствует фильтрация новостей. Как сделать еще одну фильтрацию для этого же компонента?
У меня есть компонент news.list, в котором уже присутствует фильтрация новостей по свойству заданных тем. Как сделать еще одну фильтрацию для этого же компонента? Вот мой компонент news.list. В начале уже пытался вывести свойство.
При этом у меня создано свойство инфоблока Новости - "Показ новости" в котором два значения "Да" и "Нет". И если я в параметрах элемента поставлю Показ новости: Да, то тогда новость должна показываться только авторизованным пользователям и наооборот.<?php require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); $APPLICATION->SetTitle("Новости"); global $USER; $filter = Array( "IBLOCK_ID"=>$arParams["IBLOCK_ID"], "ACTIVE"=>"Y", "PROPERTY_SHOWLIST"=> $USER->GetID(), ); $res = CIBlockElement::GetList(Array("SORT"=>"ASC"), $filter, false, false, Array("ID", "IBLOCK_ID", "NAME", "DATE_ACTIVE_FROM", "DETAIL_PAGE_URL")); ?> <? $themeId = intval($_GET['sel_theme']); $themeFilter = array(); $themeCode = ''; $selectedThemeName = ''; if ($themeId > 0) { $themeFilter["PROPERTY_THEME"] = $themeId; } else if (isset($_GET['sel_theme'])) { $themeCode = $_GET['sel_theme']; $themeFilter = array('PROPERTY_THEME.CODE' => $themeCode); $selectedThemeName = getThemeNameByCode($themeCode); } function getThemeNameByCode($themeCode) { $theme = CIBlockElement::GetList( array(), array('CODE' => $themeCode), false, false, array('ID', 'NAME') )->Fetch(); if ($theme) { return $theme['NAME']; } return false; } ?> <?$APPLICATION->IncludeComponent( "bitrix:news.list", "news.list", array( "ACTIVE_DATE_FORMAT" => "d.m.Y", "ADD_SECTIONS_CHAIN" => "Y", "AJAX_MODE" => "N", "AJAX_OPTION_ADDITIONAL" => "", "AJAX_OPTION_HISTORY" => "N", "AJAX_OPTION_JUMP" => "N", "AJAX_OPTION_STYLE" => "Y", "CACHE_FILTER" => "N", "CACHE_GROUPS" => "Y", "CACHE_TIME" => "36000000", "CACHE_TYPE" => "A", "CHECK_DATES" => "Y", "DETAIL_URL" => "/news/detail/#ID#/", "DISPLAY_BOTTOM_PAGER" => "Y", "DISPLAY_DATE" => "Y", "DISPLAY_NAME" => "Y", "DISPLAY_PICTURE" => "Y", "DISPLAY_PREVIEW_TEXT" => "Y", "DISPLAY_TOP_PAGER" => "N", "FIELD_CODE" => array( 0 => "", 1 => "", ), "SELECTED_THEME_NAME" => $selectedThemeName, "FILTER_NAME" => "themeFilter", "HIDE_LINK_WHEN_NO_DETAIL" => "N", "IBLOCK_ID" => "2", "IBLOCK_TYPE" => "news", "INCLUDE_IBLOCK_INTO_CHAIN" => "Y", "INCLUDE_SUBSECTIONS" => "Y", "MESSAGE_404" => "", "NEWS_COUNT" => "4", "PAGER_BASE_LINK_ENABLE" => "N", "PAGER_DESC_NUMBERING" => "N", "PAGER_DESC_NUMBERING_CACHE_TIME" => "36000", "PAGER_SHOW_ALL" => "N", "PAGER_SHOW_ALWAYS" => "Y", "PAGER_TEMPLATE" => "pagination", "PAGER_TITLE" => "Новости", "PARENT_SECTION" => "", "PARENT_SECTION_CODE" => "", "PREVIEW_TRUNCATE_LEN" => "", "PROPERTY_CODE" => array( 0 => "", 1 => "THEME", 2 => "SHOWLIST", ), "SET_BROWSER_TITLE" => "Y", "SET_LAST_MODIFIED" => "N", "SET_META_DESCRIPTION" => "Y", "SET_META_KEYWORDS" => "Y", "SET_STATUS_404" => "N", "SET_TITLE" => "Y", "SHOW_404" => "N", "SORT_BY1" => "ACTIVE_FROM", "SORT_BY2" => "SORT", "SORT_ORDER1" => "DESC", "SORT_ORDER2" => "ASC", "STRICT_SECTION_CHECK" => "N", "COMPONENT_TEMPLATE" => "news.list" ), false );?> <?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
Источник: Stack Overflow на русском