Налаштування блога на 1С-Bitrix
Модуль блога в Bitrix (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 секунд. При додаванні нового поста кеш списку скидається автоматично через теггований кеш — Bitrix додає тег iblock_id_{N} при виборі з інфоблока.
Composite cache — блог зазвичай не містить персоналізованих даних (крім коментарів), тому сторінки кешуються цілком. Блок коментарів виносимо в динамічну область через \Bitrix\Main\Page\Frame.
Частих доробки
Час читання — обчислюється при збереженні елемента. Обробник OnAfterIBlockElementUpdate лічить слова в DETAIL_TEXT й ділить на 200 (середня швидкість читання). Результат пишемо у властивість READ_TIME.
Пов'язані статті — властивість типу «Прив'язка до елементів» або автоматичний підбір за збігом тегів. Виводимо у шаблоні news.detail через додатковий news.list з фільтром за тегами поточної статті.
Підписка на нові статті — через поштові розсилання модуля sender або інтеграцію з зовнішнім сервісом розсилки.







