Files
ave-cms/help/modules/ratings.md
T
2026-07-27 12:58:44 +03:00

2.7 KiB

Рейтинги

Назад к разделу «Модули»

Модуль ratings выводит шкалу оценок для документов и других объектов. Голоса хранит обязательный модуль Взаимодействия.

Вставка виджета

Для текущего документа:

[mod_rating]

Для явно указанного объекта:

[mod_rating:document:145]
[mod_rating:article:news-2026-07]

Формат: [mod_rating:ТИП:КЛЮЧ]. Тип должен присутствовать в настройке Типы объектов. Для обычных документов используется document, ключом служит ID. Без явных аргументов ID берётся из контекста текущего документа.

Теги шаблона

Тег Значение
[tag:label] Настраиваемое название рейтинга.
[tag:average] Средняя оценка с одним знаком после точки.
[tag:count] Число пользователей, поставивших оценку.
[tag:scale] Максимум шкалы, от 2 до 10.
[tag:own] Оценка текущего посетителя или пустая строка.
[tag:buttons] Готовые доступные кнопки шкалы с ARIA-атрибутами.

Внешний контейнер, endpoint, CSRF и служебное сообщение добавляет renderer. Не удаляйте [tag:buttons], если виджет должен принимать оценки.

API и поведение

Виджет отправляет оценку в общий endpoint:

POST /api/v1/interactions/document/145/rating

Полезная нагрузка: operation=set, action=rating, value=1..scale. Повторная оценка того же actor обновляет старое значение, а не создаёт второй голос.

Гостевые оценки включаются отдельно. Rate limit задаёт число изменений в минуту. Если тип объекта не разрешён, renderer не должен использоваться для него, а API отклонит запись правилами канала.

Фильтр ratings.rendering получает target_type, target_key, average, count, own, scale и готовый html. Обработчик может вернуть изменённый HTML, не вмешиваясь в подсчёт.