Для того, чтобы вывести элементы инфоблока, будем использовать стандартный компонент 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",
В этом посте вы узнали как вывести популярные элементы инфоблока за определенный период и из определенной статьи. Если у вас остались вопросы, пишите комментарии
Коммментарии