bitrix:news.list и bitrix:news.detail — базовая
пара компонентов для вывода списка и детальной карточки элементов
инфоблока. Название «news» не означает, что они годятся только для
новостей — это универсальные компоненты вывода, применимые к любому
контентному инфоблоку: статьям, портфолио, вакансиям.
news.list: параметры вывода
<$APPLICATION->IncludeComponent(
'bitrix:news.list',
'main',
[
'IBLOCK_TYPE' => 'content',
'IBLOCK_ID' => 5,
'NEWS_COUNT' => 12,
'SORT_BY1' => 'ACTIVE_FROM',
'SORT_ORDER1' => 'DESC',
'FILTER_NAME' => '',
'FIELD_CODE' => ['PREVIEW_PICTURE', 'PREVIEW_TEXT'],
'PROPERTY_CODE' => ['AUTHOR', 'TAGS'],
'DISPLAY_DATE' => 'Y',
'DISPLAY_PICTURE' => 'Y',
'DISPLAY_PREVIEW_TEXT' => 'Y',
'AJAX_MODE' => 'N',
'PAGER_TEMPLATE' => '.default',
'CACHE_TYPE' => 'A',
'CACHE_TIME' => 3600,
]
);?>
Ключевые параметры, которые чаще всего настраивают под конкретную задачу:
| Параметр | Назначение |
|---|---|
FIELD_CODE | Какие стандартные поля инфоблока выводить |
PROPERTY_CODE | Какие пользовательские свойства выводить |
NEWS_COUNT | Количество элементов на странице списка |
SORT_BY1, SORT_BY2 | Поля сортировки, первого и второго уровня |
FILTER_NAME | Имя переменной с внешним фильтром — та же логика, что связывает умный фильтр со списком товаров |
Явное перечисление FIELD_CODE и PROPERTY_CODE
важно не только для порядка — компонент выбирает из базы только
перечисленные поля. Если оставить параметры пустыми, компонент
постарается получить всё, включая тяжёлые текстовые поля, которые
на странице списка обычно не нужны.
news.detail: карточка одного элемента
<$APPLICATION->IncludeComponent(
'bitrix:news.detail',
'main',
[
'IBLOCK_TYPE' => 'content',
'IBLOCK_ID' => 5,
'ELEMENT_ID' => '',
'ELEMENT_CODE' => $arResult['VARIABLES']['ELEMENT_CODE'],
'FIELD_CODE' => ['PREVIEW_PICTURE', 'DETAIL_PICTURE', 'DETAIL_TEXT'],
'PROPERTY_CODE' => ['AUTHOR', 'TAGS'],
'SET_STATUS_404' => 'Y',
'SHOW_404' => 'Y',
'MESSAGE_404' => 'Материал не найден',
'CACHE_TYPE' => 'A',
'CACHE_TIME' => 3600,
]
);?>
Параметр SET_STATUS_404 здесь принципиален: без него
удалённый или деактивированный элемент отдаст пустую страницу
с кодом 200 вместо корректной ошибки 404, и такие страницы начнут
накапливаться в поисковом индексе как мусор.
Нужна помощь с Битрикс?
Связка списка и детальной страницы
Оба компонента обычно ставятся на разные файлы шаблона, а переход
между ними обеспечивается адресацией ЧПУ. У news.list
задаётся шаблон адреса детальной страницы:
'DETAIL_URL' => '#SITE_DIR#news/#ELEMENT_CODE#/',
Такая настройка формирует ссылку с сайта на конкретный элемент, подставляя символьный код в шаблон адреса — без ручного построения URL в вёрстке.
Постраничная навигация
Параметр PAGER_TEMPLATE задаёт шаблон постраничной
навигации отдельно от основного шаблона компонента. Это удобно:
можно кастомизировать сам список товаров или новостей, оставив
оформление пагинации стандартным, или наоборот.
Что стоит вынести в свой шаблон
Стандартные шаблоны обоих компонентов редко подходят без переработки.
Правило то же, что и для остальных компонентов: копирование в свою
структуру шаблона, а не правка оригинала. Общий механизм такой
кастомизации разобран в статье про перенос шаблонов компонентов —
для news.list и news.detail он не отличается
от остальных стандартных компонентов Битрикс.
Частые ошибки
-
Не указан
SET_STATUS_404. Удалённые элементы продолжают отвечать кодом 200. -
Пустой
FIELD_CODEна странице списка. Выбираются все поля, включая ненужный детальный текст. -
Свойство не добавлено в
PROPERTY_CODE. Значение заполнено в базе, но не приходит в шаблон. -
DETAIL_URLне соответствует реальной структуре ЧПУ. Ссылки со списка ведут на несуществующие адреса.
Итог
news.list и news.detail — универсальная пара
для вывода списка и карточки элементов любого контентного инфоблока.
Явное указание нужных полей и свойств в FIELD_CODE
и PROPERTY_CODE экономит производительность на списке,
а SET_STATUS_404 на детальной странице избавляет
от мусора в поисковом индексе при удалении элементов.
