Настройка блога на 1С-Битрикс
Модуль блога в Битрикс (blog) — одна из старейших подсистем, существующая с ранних версий. Он хранит посты в таблице b_blog_post, комментарии в b_blog_comment, а сами блоги — в b_blog. Модуль рабочий, но в типовых проектах блог чаще реализуют на инфоблоках: это проще в настройке, гибче в кастомизации и привычнее разработчикам. Разберём оба варианта и типичные задачи при настройке.
Модуль blog vs. инфоблок
Модуль blog предоставляет готовые компоненты: blog.post.list, blog.post.view, blog.post.edit, blog.post.comment. Из коробки — авторство, теги, комментарии с модерацией, RSS. Минусы: устаревший интерфейс редактирования, жёсткая структура, сложность кастомизации шаблонов.
Инфоблок — создаём информационный блок «Блог» с типом content. Свойства: PREVIEW_PICTURE, DETAIL_PICTURE, PREVIEW_TEXT, DETAIL_TEXT, TAGS (строка или привязка к справочнику), AUTHOR (привязка к пользователю), READ_TIME (число, минуты на чтение). Разделы инфоблока — рубрики блога.
Вывод — через стандартные news.list и news.detail с кастомными шаблонами. Комментарии — через отдельный модуль (Forum, сторонний сервис типа Disqus) или кастомную реализацию на инфоблоке.
Для большинства корпоративных сайтов инфоблок — правильный выбор. Модуль blog оправдан, если нужны мультиавторские блоги с самостоятельной публикацией (каждый пользователь ведёт свой блог).
Настройка на инфоблоке
Создаём инфоблок в разделе Контент → Инфоблоки. Тип — content (или отдельный тип blog). API-код — blog. Привязка к сайту обязательна.
В URL-шаблонах задаём ЧПУ:
- Список:
/blog/ - Раздел (рубрика):
/blog/#SECTION_CODE#/ - Детальная страница:
/blog/#SECTION_CODE#/#ELEMENT_CODE#/
Код раздела и элемента задаётся при создании. Для SEO используем транслитерацию: включаем в настройках инфоблока Транслитерировать символьный код из названия при добавлении элемента.
Компоненты для публичной части:
-
bitrix:news— комплексный компонент, объединяющий список и детальную страницу. Или раздельно:news.list+news.detail— удобнее при сложных шаблонах. - Постраничная навигация — параметр
NAV_TEMPLATEкомпонента. - Фильтрация по тегам — через
FILTER_NAMEс передачей GET-параметра.
SEO-настройки
Для каждого элемента блога важны: title, description, канонический URL. В настройках инфоблока задаём шаблоны SEO-полей:
- Шаблон META TITLE:
{=this.Name} | Блог компании - Шаблон META DESCRIPTION:
{=this.PreviewText}
Для OpenGraph-тегов (og:title, og:image, og:description) используем $APPLICATION->SetPageProperty() в шаблоне news.detail или через свойства элемента.
Sitemap — добавляем раздел блога в настройки модуля SEO (Маркетинг → SEO → Карта сайта). Указываем инфоблок и периодичность обновления.
Кэширование
Компоненты news.list и news.detail кэшируются штатно через параметр CACHE_TIME. Для блога с редкими публикациями ставим 3600 секунд. При добавлении нового поста кэш списка сбрасывается автоматически через тегированный кэш — Битрикс добавляет тег iblock_id_{N} при выборке из инфоблока.
Composite cache — блог обычно не содержит персонализированных данных (кроме комментариев), поэтому страницы кэшируются целиком. Блок комментариев выносим в динамическую область через \Bitrix\Main\Page\Frame.
Частые доработки
Время чтения — вычисляется при сохранении элемента. Обработчик OnAfterIBlockElementUpdate считает слова в DETAIL_TEXT и делит на 200 (средняя скорость чтения). Результат пишем в свойство READ_TIME.
Связанные статьи — свойство типа «Привязка к элементам» или автоматический подбор по совпадению тегов. Выводим в шаблоне news.detail через дополнительный news.list с фильтром по тегам текущей статьи.
Подписка на новые статьи — через почтовые рассылки модуля sender или интеграцию с внешним сервисом рассылок.







