Главная » Разработка Битрикс » Компоненты » bitrix:news.list и news.detail: настройка вывода

bitrix:news.list и news.detail: настройка вывода

Схема связки компонентов news.list и news.detail в Битрикс через DETAIL_URL и символьный код

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 на детальной странице избавляет от мусора в поисковом индексе при удалении элементов.

    Нужна помощь с Битрикс?

    Исправим ошибку, доработаем сайт, ускорим Битрикс или поможем разобраться с проблемой.

    Услуги
    Инструменты
    База знаний