Срок работы пробной версии продукта истек. Через две недели этот сайт полностью прекратит свою работу. Вы можете купить полнофункциональную версию продукта на сайте www.1c-bitrix.ru. Как вывести элементы инфоблока с различными параметрами фильтрации и сортировкой

1С Битрикс Блог

Как вывести элементы инфоблока с различными параметрами фильтрации и сортировкой
1С Битрикс Блог
18.02.2018

Как вывести элементы инфоблока с различными параметрами фильтрации и сортировкой

Для того, чтобы вывести элементы инфоблока, будем использовать стандартный компонент 1С Битрикс bitrix.news.list:

<?$APPLICATION->IncludeComponent(
	"bitrix: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",
		"COMPOSITE_FRAME_MODE" => "A",
		"COMPOSITE_FRAME_TYPE" => "AUTO",
		"DETAIL_URL" => "",
		"DISPLAY_BOTTOM_PAGER" => "Y",
		"DISPLAY_DATE" => "Y",
		"DISPLAY_NAME" => "Y",
		"DISPLAY_PICTURE" => "Y",
		"DISPLAY_PREVIEW_TEXT" => "Y",
		"DISPLAY_TOP_PAGER" => "N",
		"FIELD_CODE" => array("", ""),
		"FILTER_NAME" => "",
		"HIDE_LINK_WHEN_NO_DETAIL" => "N",
		"IBLOCK_ID" => $_REQUEST["ID"],
		"IBLOCK_TYPE" => "-",
		"INCLUDE_IBLOCK_INTO_CHAIN" => "Y",
		"INCLUDE_SUBSECTIONS" => "Y",
		"MESSAGE_404" => "",
		"NEWS_COUNT" => "20",
		"PAGER_BASE_LINK_ENABLE" => "N",
		"PAGER_DESC_NUMBERING" => "N",
		"PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
		"PAGER_SHOW_ALL" => "N",
		"PAGER_SHOW_ALWAYS" => "N",
		"PAGER_TEMPLATE" => ".default",
		"PAGER_TITLE" => "Новости",
		"PARENT_SECTION" => "",
		"PARENT_SECTION_CODE" => "",
		"PREVIEW_TRUNCATE_LEN" => "",
		"PROPERTY_CODE" => array("", ""),
		"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"
	)
);?>

Для начала выведем самые просматриваемые элементы инфоблока. Это может использоваться для вывода популярных статей или, как сделано у меня, для вывода популярных постов. Добавим значение SHOW_COUNTER в параметр SORT_BY1 и изменим порядок сортировки в параметре SORT_ORDER1 на "по возрастанию" DESC.

"SORT_BY1" => "SHOW_COUNTER ",
		"SORT_BY2" => "SORT",
		"SORT_ORDER1" => "DESC",

Теперь элементы сортируются по количеству просмотров.

Если нам необходимо вывести самые просматриваемые элементы за определенный период, например за месяц, добавим фильтр по дате начала активности ACTIVE_FROM:

global $arrFilter;
        $currDate = new DateTime();
        $currDate->modify('-1 month');
        $arrFilterBestNew = [
            'ACTIVE_FROM' => $currDate->format('d.m.Y H:i:s')
        ];

Запишем название фильтра в параметр FILTER_NAME.

"FILTER_NAME" => "arrFilter",

Теперь элементы сортируются по количеству просмотров и фильтруются по дате начала активности за последний месяц. Если вам надо изменить интервал, просто измените значение в modify.

$currDate->modify('-2 month');

Для того, чтобы вывести элементы инфоблока из определенной категории, добавим ID категории в параметр PARENT_SECTION:

"PARENT_SECTION" => "2",

В этом посте вы узнали как вывести популярные элементы инфоблока за определенный период и из определенной статьи. Если у вас остались вопросы, пишите комментарии


Коммментарии

Возврат к списку