Плагин 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.2.
- 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}.
Настройка шаблонов
- В
reviews.tpl настройте отображение списка отзывов (поля {REVIEW_ROW_STARS}, {REVIEW_ROW_TEXT}, {REVIEW_ROW_OWNER_FULL_NAME} и т.д.).
- В
reviews.last.tpl настройте отображение последних отзывов (например, {REVIEW_ROW_STARS}, {REVIEW_ROW_TITLE}).
- В
users.details.tpl добавьте:
<a href="{USERS_DETAILS_REVIEWS_URL}">{PHP.L.reviews_reviews} ({USERS_DETAILS_REVIEWS_COUNT})</a>
- для отображения ссылки на вкладку отзывов с локализованным текстом.
Примечания
- Если пользователь, оставивший отзыв, удалён из базы, в шаблонах будет отображаться "Неизвестный" вместо имени.
- Интеграция с модулем 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
Смотрите также:
-
Тема CleanCot для Cotonti
Тема CleanCot для CMF Cotonti. Современная тема на Bootstrap 5.3.3 для Cotonti Siena 0.9.26 без устаревшего (legacy) режима. Только актуальные теги!
-
Userarticles для CMF Cotonti
Плагин для CMF Cotonti отображает список пользователей с количеством их статей и подробный список статей для каждого пользователя.
-
Экспорт в Excel через PhpSpreadsheet для CMF Cotonti
Экспорт статей в Excel из базы данных Cotonti с использованием PhpSpreadsheet. Для установки не требуется Composer.
-
Импорт из Excel через PhpSpreadsheet для CMF Cotonti
Плагин для импорта статей из Excel для всех сайтов на базе Cotonti. Для установки не требуется Composer.
-
Плагин SeoArticle для Cotonti
Плагин SeoArticle расширяет SEO-возможности модуля Pages в Cotonti CMF, добавляя мета-теги, Open Graph, Twitter Card, структурированные данные Schema.org, извлечение ключевых слов, оценку времени чтения и функционал связанных статей.
-
Плагин PHPMailer для CMF Cotonti
Плагин PHPMailer улучшает возможности отправки email в Cotonti Siena 0.9.26 за счёт интеграции библиотеки PHPMailer (версия 6.10.0). Заменяет стандартную функцию cot_mail на надёжное SMTP-решение, добавляя продвинутые функции, такие как изоляция плагина и предотвращение дублирования.
4 minutes read Sodium Carbonate