Перейти к содержанию

Комментарии к статьям

Forum Pro может добавить блок комментариев на любую страницу Grav, а обсуждение будет храниться как настоящая тема форума. Поскольку форум работает в той же установке Grav, здесь нет iframe, стороннего JavaScript-виджета и второй системы учётных записей. Комментарий, который читатель оставляет под записью блога, — обычное сообщение форума: оно проходит проверку на спам, модерируется, индексируется поиском, вызывает уведомления и может продолжаться на форуме.

Настройка

1. Создайте категорию для веток статей

В Admin → Forum → Structure добавьте категорию (например, Blog или Article Comments) и запомните её id. Нужен именно числовой id, а не слаг.

2. Включите комментарии

comments:
  enabled: true
  category: 17          # категория форума, где хранятся ветки статей
  templates: [item]     # шаблоны страниц, принимающие комментарии
  author: ''            # участник, от которого создаются темы ('' = нейтральная учётная запись System)
  max_inline: 20        # комментариев под статьёй до ссылки «показать все»
  excerpt_length: 300   # символов фрагмента статьи в стартовом сообщении

templates — список шаблонов страниц Grav, которые принимают комментарии. Для стандартного блога это обычно [item]; проверьте, как в вашей теме называется шаблон записи.

author — имя пользователя на форуме, которое указывается автором стартовой темы. Оставьте поле пустым, и Forum Pro использует нейтральную учётную запись System; обычно это и нужно, чтобы стартовое сообщение не выглядело так, будто его написал реальный человек.

3. Выведите блок в шаблоне

Добавьте этот код туда, где в шаблоне статьи должны появляться комментарии:

{% if (config.plugins['forum-pro'].enabled ?? false) and (config.plugins['forum-pro'].comments.enabled ?? false) %}
  {{ forum_comments(page) }}
{% endif %}

Проверка условия означает, что шаблон продолжит работать, если плагин отключён или удалён, — это важно, если вы делитесь темой.

Как создаётся ветка

Первый комментарий автоматически открывает тему на форуме. Стартовое сообщение содержит фрагмент статьи (excerpt_length символов) и ссылку обратно на страницу, поэтому тот, кто найдёт ветку на форуме, поймёт контекст и сможет перейти к оригиналу.

Ничего не создаётся, пока кто-то действительно не прокомментирует, поэтому включение на блоге с 400 записями не создаст 400 пустых тем.

Управление для каждой страницы

templates задаёт значение по умолчанию. Отдельные страницы включают или отключают комментарии во frontmatter, и это переопределяет список шаблонов:

---
title: My Post
forum:
  comments: true    # или false, чтобы отключить комментарии на этой странице
---

Используйте false на странице вроде юридического уведомления или списка изменений, где обсуждение не нужно, и true на отдельной странице, шаблона которой нет в списке.

Счётчики комментариев в списках

forum_comments_count(page) возвращает число комментариев на странице — для ссылок вида «12 комментариев» в списке блога:

{% set count = forum_comments_count(page) %}
{% if count %}
  <a href="{{ page.url }}#forum-comments">{{ count }} comment{{ count == 1 ? '' : 's' }}</a>
{% endif %}

Что получается в итоге

Поскольку комментарии — это сообщения форума, к ним применяется всё, что действует на форуме:

  • Проверка на спам и предмодерация для выбранной категории
  • Очередь проверки на форуме и в админке
  • Поиск, поэтому комментарии находятся вместе с контентом форума
  • Уведомления, поэтому участник, оставивший комментарий, отслеживает ветку
  • Репутация и реакции
  • Действия модерации, включая скрытие, удаление, восстановление и блокировку

А поскольку ветка — настоящая тема, обсуждение может перерасти статью. Читатель, оставивший комментарий в две строки и получивший три ответа, оказывается в полноценной дискуссии — на вашем форуме и под вашей модерацией.

Одна учётная запись для всего

Участник, зарегистрированный на форуме, может комментировать сразу. Читатель, который регистрируется, чтобы оставить комментарий, получает полноценную учётную запись форума. Отдельной учётной записи для комментариев, которую потом придётся объединять, не существует.

Переход с плагина комментариев

Автоматического импортёра из других плагинов комментариев Grav сейчас нет. При переходе практичный подход — оставить старые комментарии отображаться на исторических записях и включить комментарии Forum Pro для новых, а старый плагин отключить, когда архив перестанет привлекать ответы.