Плагин Reviews v3.0.1 for Cotonti 0.9.26
Описание
Плагин Reviews позволяет пользователям оставлять отзывы о других пользователях на сайте, работающем на Cotonti CMF (https://github.com/Cotonti/Cotonti). Поддерживает оценки в виде звёзд, редактирование и удаление отзывов, а также интеграцию с профилем пользователя. Отзывы можно привязывать к конкретным областям (например, users), а также отображать на главной странице или в профиле.
Важно: Интеграция с модулем Projects (для привязки отзывов к проектам) реализована, но не тестировалась.
Основные возможности
- Добавление, редактирование и удаление отзывов.
- Оценка в виде звёзд (от 1 до 5). от крайне плохо до превосходительно
- Отображение последних отзывов на главной странице index.tpl через условие функции:
<!-- IF {PHP|cot_plugin_active('reviews')} -->
{PHP|cot_reviews_last(4)}
<!-- ENDIF -->
- Подсчёт количества отзывов и средней оценки для пользователя.
- Интеграция с профилем пользователя через вкладку отзывов (
users.details.tpl). - Проверка прав доступа: только авторизованные пользователи могут оставлять отзывы, администраторы могут редактировать все отзывы.
- Поля при создании отзыва: заголовок (тема), текст отзыва и оценка
- Администратор имеет больше полей для правки, в том числе редактировать дату отзыва
- Уведомление администраторов сайта и пользователя, которому оставили отзывы сообщением по электронной почте
Требования
- Cotonti Siena 0.9.26 (актуальная версия на момент разработки).
- PHP 8.4.
- Bootstrap 5.3.3 (встроен в Cotonti, подключается через
Resources::addFile в файле загрузки темы). - Font Awesome Free 6.7.2 (https://fontawesome.com/) для отображения иконок звёзд.
Установка
- Скопируйте папку
reviews в директорию /plugins/ вашего сайта. - Перейдите в админ-панель Cotonti:
Администрирование → Расширения → Плагины. - Найдите плагин Reviews и нажмите
Установить. - Настройте параметры плагина в разделе
Администрирование → Расширения → Плагины → Reviews → Настройки:checkprojects: Включить проверку совместных проектов для отзывов (не тестировалось).userall: Показывать все отзывы пользователя.
- Добавьте тег
{PHP|cot_reviews_last(5)} в шаблон index.tpl для отображения последних 5 отзывов на главной странице. - Убедитесь, что в шаблоне
users.details.tpl есть теги {USERS_DETAILS_REVIEWS_COUNT} и {USERS_DETAILS_REVIEWS_URL} для отображения отзывов в профиле. Подключите Font Awesome 6.7.2 в header.tpl, если он не встроен в вашу тему:
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css">
а лучше скачайте и подключите локально.
Убедитесь, что Bootstrap 5.3.3 подключен в файле загрузки темы (обычно в themes/yourtheme/yourtheme.php):
Resources::addFile('lib/bootstrap/css/bootstrap.min.css');
if (Cot::$cfg['headrc_consolidate']) {
Resources::addFile('lib/bootstrap/js/bootstrap.bundle.min.js');
} else {
Resources::linkFileFooter('lib/bootstrap/js/bootstrap.bundle.min.js');
}
полный пример смотреть тут: https://github.com/webitproff/cot-CleanCot/blob/main/cleancot/cleancot.rc.php
Структура файлов
/plugins/reviews/
├── inc/
│ └── reviews.functions.php # Основные функции для обработки отзывов и генерации звёзд
├── lang/
│ ├── reviews.ru.lang.php # Переводы на русский
│ └── reviews.en.lang.php # Переводы на английский
├── настройка/
│ ├── reviews.install.sql # Настройка базы данных для таблицы cot_reviews
│ └── reviews.uninstall.sql # Очистка базы данных
├── tpl/
│ ├── reviews.tpl # Шаблон для отзывов о профиле пользователя
│ └── reviews.last.tpl # Шаблон для размещения последних отзывов на главной странице
├── reviews.global.php # Глобальный хук для локализации
├── reviews.input.php # Входной хук для инициализации
├── reviews.php # Основная логика плагина для добавления, обновления и удаления отзывов
├── reviews.setup.php # Конфигурация плагина
├── reviews.users.details.php # Интеграция со страницей профиля пользователя (хуки users.details.tags)
└── reviews.usertags.main.php # Ссылка для тегов пользователей (оценки звёздами и количество отзывов)
Использование
- Добавление отзыва: Пользователи могут оставить отзыв на странице профиля другого пользователя (вкладка
reviews). - Редактирование/удаление: Автор отзыва или администратор может отредактировать или удалить отзыв.
- Отображение на главной: Используйте тег
{PHP|cot_reviews_last(N)} в index.tpl, где N — количество отзывов. - В профиле пользователя: Вкладка отзывов доступна по ссылке
{USERS_DETAILS_REVIEWS_URL} и показывает количество отзывов {USERS_DETAILS_REVIEWS_COUNT}.
Настройка шаблонов
Примечания
- Если пользователь, оставивший отзыв, удалён из базы, в шаблонах будет отображаться "Неизвестный" вместо имени.
- Интеграция с модулем Projects не тестировалась, используйте на свой риск.
Разработка
- Плагин поддерживает хуки для кастомизации:
reviews.list.tags, reviews.edit.tags, reviews.add.tags, reviews.list.loop.
Лицензия
Свободное распространение и модификация BSD License. Copyright (c) 2025 CMSWorks Team. Допилил "под себя" webitproff https://github.com/webitproff