Модуль Комментарии.

Функционал:

  • Возможность создавать комментарии как зарегистрированным Пользователям, так и Анонимам
    • Разрешения задаются в Админ панели
  • Аватар Пользователя
    • если есть в системе - выведет его изображение, если нет выведет аватар с первой буквой имени пользователя или анонима
  • Авторская оценка
    • При создании комментария, Автор может поставить оценку материалу (документу) - звезды 1...5 баллов
    • Права для Анонимов (разрешено/нет), настраиваются в Админ панели
    • Разрешать Авторскую оценку в ответах настраивается в Админ панели
    • Редактирование Авторской оценки Администратором в публичной заблокировано. Однако, если в порыве гнева, вы все таки решили изменить Авторскую оценку, несмотря на возможную потерю после такого вашего действия желания у Авторов в дальнейшем ставить хоть какие то оценки вашим супер интересным статьям, то сделать это возможно из Админ панели, но при условии, что ваше самолюбие заставит вас открыть файл /class/comment.php и сменить значение в переменной $_edit_avtor_rating = 0; на $_edit_avtor_rating = 1; (находится в самом начале файла).
  • Рейтинг комментариев
    • Пользователи и Анонимы могут ставить оценки комментариям других Авторов
    • На выбор два варианта или пять звезд или лайк (сердечко)
    • Права для Анонимов (разрешено участвовать/нет), настраиваются в Админ панели
  • Таймер времени, при котором доступно редактирование или удаление комментария Автором
    • Время задается в Админ панели, после истечении времени редактирование или удаление комментария будет сделать невозможно, за исключением Администратора
  • Время жизни куки для Анонимов
    • Задается в Админ панели, в течении этого времени Аноним будет считаться Автором своих комментариев
  • Файлы
    • Авторы могут загружать в свои комментарии разрешенные в Админ панели файлы.
    • Размер и тип файла задаются в Админ панели. Отдельные права для Анонимов. Для изображений выводятся их превью, для остальных превью с именем расширения этого файла.
    • Важно! Разрешив загрузку файлов, особенно Анонимам - вы подвергаете свой сайт дополнительным рискам! Относитесь к этой функции с максимальной острожностью.
  • Дополнительные поля
    • Два дополнительных поля, их названия и обязательные или нет, настраиваются в Админ панели
  • Валидация обязательных полей на заполненность + проверка на разрешения для файлов
  • Комментарий - родитель (ветка комментариев)
    • Если на комментарий Автора другие Пользователи сделали ответ, то удалить такой комментарий Автору или Администратору в публичной части сайта будет невозможно, вместо этого будет произведено мягкое удаление, - удалится все, что относится к данному комментарию (Рейтинги, файлы, текст) и вместо этого будет выводится специальный аватар и текст: Комментарий удален автором либо Комментарий удален администратором. Восстановить данные такого комментария невозможно.
  • Удаление комментариев в Админке
    • Одиночные комментарии (не имеющие ответов) удаляются сразу и навсегда.
    • Комментарии родители (имеющие ответы/ветку ответов) получают два варианта одиночного удаления:
      • Мягкое удаление (удалится все, что относится к данному комментарию (Рейтинги, файлы, текст) и вместо этого будет выводится специальный аватар и текст: Комментарий удален администратором. Восстановить данные такого комментария невозможно,
      • Жесткое удаление самого комментария и всей ветки ответов на этот комментарий. Администратор выбирает сам какой вариант ему необходим.
    • Массовое удаление - одиночные комментарии удаляются сразу, комментарии-родители удаляются Мягким вариантом (с подстановкой текста Комментарий удален Администратором).
  • Статус Скрыт/Опубликован (иконка глаз)
    • Если комментарий родитель и на него есть ответы:
      • При клике по иконке Скрыть, как в публичной части сайта, так и в Админке, - автоматически будет скрыт как сам комментарий так и все ответы на него (ветка комментариев), при этом у ответов возможность скрытия/публикации будет заблокирована до тех пор, пока родительский комментарий не будет разблокирован (опубликован). Восстановление в ветке статусов - опубликован, происходит персонально кликом - Опубликовать по каждому комментарию в ветке.
    • Если комментарий одиночный (на него нет ответов):
      • При клике по иконке Скрыть - комментарий будет скрыт. При клике опубликовать - будет опубликован.
  • Видимость скрытых комментариев:
    • Если комментарий родитель, и на него есть ответы, но Администратор решит его скрыть - будут также скрыты все ответы на него, включая ответы на ответы (все потомки). Такой комментарий (скрытые комментарии в ветке) будут видеть только Администратор и Автор комментария с пометкой "На модерации", однако если этот комментарий будет в свою очередь потомком вышестоящего в иерархии комментария-родителя другого Автора и тот в свою очередь будет скрыт - такой комментарий будет виден только Администратору.
    • Если комментарий одиночный и на него нет ответов и он, в свою очередь, сам не является ответом: если статус Скрыт - то его видит только Администратор и сам Автор с пометкой "На модерации". Другие посетители его не видят.
    • Порядок разблокировки скрытых комментариев в ветке (для Администратора). В публичной части у всех потомков будут отключены кнопки "Показать комментарий" до тех пор, пока не будет разблокирован родительский комментарий, т.е. сначала нужно разблокировать (клик по иконке "перечеркнутый красный глаз - Показать комментарий") главного родителя (если в ветке есть ответы на ответы), после этого станут доступными иконки ("перечеркнутый красный глаз - Показать комментарий") у следующих родителей (если они есть) и так по иерархии - спускаться нужно сверху вниз и до последнего потомка. В админ панели проще работать с скрытыми ветками. В ней есть два типа иконок-замочков - родительские и для потомков. При наведении мыши на иконку потомков - будет выведена подсказка - Id комментария, который является родителям для данного комментария. Действия аналогичны публичной части - разблокируйте сначала родителей, затем потомков. Используйте фильтр в Админке - вывести скрытые комментарии и далее работайте с ними, так будет удобнее.
  • Контроль Имен Анонима
    • Если Анонимный пользователь, в течении жизни куки, сменит имя, под которым он опубликовал свой первый комментарий, рядом с именем появится плашка с тултипом в котором будут перечислены все его имена.
  • Пагинация
    • Пагинация работает только для родительских комментариев, количество ответов (дети и внуки) на родительский комментарий - задается в Админ панели отдельно. Если общее количество ответов превышает лимит ответов, установленный в Админке, будет выведена кнопка Показать еще N ответов, при клике по которой AJAX подгрузит и выведет оставшиеся комментарии на страницу.
  • Сортировка
    • В админ панели доступен поиск комментария по следующим параметрам: по Имени, IP адресу, по тексту комментария. Сортировка: сначала новые, сначала старые, популярные (согласно Рейтингу пользователей), обсуждаемые - по количеству ответов на комментарий-родитель, оценки Автора (у кого больше всех звезд). Фильтрация: выводить все сообщения, только с файлами, только скрытые. Вывод комментариев по умолчанию - плоский список, но для удобства есть и древовидный список, что позволяет видеть сразу всю ветку. Количество на странице: выводит желаемое количество комментариев на страницу. Период: вам доступен календарь, в котором вы сами выбираете нужный вам период для просмотра - от и до.
    • В публичной части также можно менять вывод комментариев (выбирается в Настройках модуля):
      • Сначала старые (новые внизу)
      • Сначала новые (старые внизу)
      • По общему рейтингу (лучшие вверху)
      • По оценке Автора (кол-ву звезд)
    • Важно! В ветках потомки выводятся по принципу сначала старые (новые внизу), что-бы не рушить визуальную иерархию ответов.
  • Эмодзи
    • Модуль использует кодировку utf8mb4, что позволяет использовать в тексте комментариев эмодзи, например такие: 😀 😁 😂 🤣 😃 😄 😅 😆 😉 😊 😋 😎 😍 😘 😗 😙 😚 🙂 🤗 🤩
  • Шаблоны (файлы .tpl) отвечающие за вывод в публичную часть:
    • comments_tree.tpl - выводит на страницу форму "Написать комментарий"
    • comments_tree_sub.tpl - выводит на страницу кооментарий (ветку комментариев)
    • last_comments.tpl - выводит на страницу виджет "Последние комментарии"
  • Большинство стилей модуля вынесены в отдельный CSS-файл, который расположен по следующему пути: comment/css/mod_comment_styles.css. Это позволяет адаптировать внешний вид виджета под дизайн вашего сайта.
  • Подключение css файла в основной шаблон:
    • При использовании модуля в основной шаблон в секцию <head>...</head> программно будет прописан путь до css файла модуля <link rel="stylesheet" href="/modules/comment/css/mod_comment_styles.css" type="text/css" />, с вашей стороны никаких действий по подключению файла стилей не требуется.
  • Лог загрузки опасных файлов:
    • Вы можете вкл/выкл запись лога загрузки опасных файлов. При включенном режиме в Админ панели в списке комментариев появится ссылка "Просмотреть логи безопасности", при новых записях будет включен оранжевый индикатор и текст ссылки будет изменен на "Есть новые записи в логах!". Основные типы записи в лог:
      • Обнаружена подмена (Fake Image)
      • Вредоносный тип контента (MIME)
      • Опасный формат файла
      • Файл слишком большой: Превышение лимита
      • Пустой файл: Попытка загрузки файла нулевого размера.
      • Запрещенное расширение: Файл не прошел по списку разрешенных расширений.
  • Система тегов:
    • Тег [mod_comment] (Без параметров), - Это основной системный тег для вывода полноценного функционала на странице документа, выводит форму создания нового комментария + сами комментарии.
    • Тег [mod_comment:X] (Один параметр) - Выводит виджет последних комментариев, где X - количество выводимых комментариев, количество символов текста комментария равно 150 по умолчанию.
    • Тег [mod_comment:X:Y] (Два параметра) - Выводит виджет последних комментариев, где X - количество выводимых комментариев, а Y - количество символов в тексте комментария.

Сводная таблица параметров по умолчанию

Тег Лимит (X) Обрезка текста (Y) Режим вывода
[mod_comment] 1000 Полный список + Форма
[mod_comment:10] 10 150 Виджет (last_comments.tpl)
[mod_comment:5:200] 5 200 Виджет (last_comments.tpl)

Для AJAX работы модуля не забудьте подключить:

JS:

https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js
https://cdnjs.cloudflare.com/ajax/libs/jquery.form/4.3.0/jquery.form.min.js
https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js

Стили:

https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css
https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css
Description
Модуль Комментарии v3.35 Только для AVE.CMS ALT
Readme 346 KiB
Languages
Smarty 42.9%
PHP 37.8%
JavaScript 16.4%
CSS 2.9%