1. Геннадий Кляченков
  2. eComment

Overview

HTTPS SSH

logo.png

eComment - экологически чистая система комментирования.

Данный скрипт позволяет быстро подключить систему комментирования к любому проекту. Скрипт не привязывается к движку и состоит всего из трех файлов: ecomment.php, ecomment.js и ecomment.css

Последняя версия: 1.8.1

Возможности

Основные возможности скрипта:

  • модерирование прямо на странице с комментариями;
  • уведомление о новых комментариях по почте на несколько адресов;
  • своя анти-бот защита;
  • автоматическое определение страницы комментариев с возможностью тонкой настройки;
  • оценка комментариев с ограничением накрутки рейтинга;
  • методы по работе со счетчиками комментариев;
  • ответы на комментарии с древовидным построением сообщений;
  • редактирование имени автора, даты и текста комментария;
  • выделение админских комментариев среди остальных;
  • подписка пользователей на обновления со страницы;
  • индексирования статиски по всем комментариям;
  • опциональное сохранение IP-адреса автора комментария с возможностью последующей блокировки;
  • можественный запуск на одной странице с применением разных настроек;
  • более двух дюжин вспомогательных настроек.

Установка

Размещение файлов

Обязательной для работы скрипта является библиотека jQuery (в дистрибутив не входит).

Все файлы необходимо разместить в одной папке и настроить в самих скриптах корректные пути. Лучше всего использовать абсолютные пути - от корня сайта, начинаяются со слеша "/".

Все дальнейшие примеры приводятся с условием размещения файлов в корне сайта.

В файле ecomment.js указываем путь до размещения ecomment.php:

    settings = $.extend({
        'ref'       : location.href,
        'http_ref'  : location.href,
        'path'      : '/ecomment.php'
    }, options),

Параметр path можно передать позднее, при инициализации скрипта на конкретном блоке. Это может быть полезным, когда у вас установлено несколько версий eComment с разными настройками.

Так же на хосте необходимо создать папку для хранения файлов данных с комментариями. Корректный путь до нее необходимо указать в серверной части скрипта ecomment.php:

class ecomment {
    //основные настройки
    private $store = "/store/";
    ...

Подключение стилей и плагина

Для корректного отображения комментариев необходимо подключить в заголовке страницы (между <HEAD> и </HEAD> ) файл стилей ecomment.css и сам плагин ecomment.js.

    <link rel="stylesheet" href="/ecomment.css" type="text/css" media="all">
    <script type="text/javascript" src="/ecomment.js"></script>

Содержимое файла ecomment.css можно перенести в ваш основной файл стилей. В таком случае, отдельно подключать этот файл уже не нужно, что благоприятно скажется на производительности.

Все правки внешнего вида комментариев удобнее будет вносить в отдельный css-Файл (или ваш основной стиль), не затрагивая сам ecomment.css. В будущем, это позволит вам легко обновлять версию скрипта целиком, без повторного внесения правок в ecomment.css.

Инициализация комментариев

Для инициализации комментариев необходимо в нужном месте разметки вашей страницы разместить пустой контейнер и навесить на него сам плагин. После загрузки скрипт самостоятельно создает необходимые HTML-контейнеры, обвешивает их JS-скриптами и делает первый AJAX-запрос к серверной части ecomment.php для получения списка комментариев, принадлежащих текущей странице. Плагин может принимать объект с параметрами инициализации. Например, можно передать ref параметр для вывода комментариев определенной страницы, не пренадлежащих той, с которой запускается скрипт. Такой пример включен в тестовую страницу дистрибутива.

<div class="ecomment_wrapper"></div>
<script>
    // одиночное подключение скрипта на странице
    $('.ecomment_wrapper').ecomment()
</script>
<div class="ecomment_wrapper" rel="some_ref_one"></div>
<div class="ecomment_wrapper" rel="some_ref_two"></div>
<script>
    // многократное подключение скрипта на странице
    $('.ecomment_wrapper').each(function(){
        $(this).ecomment({
            ref: $(this).attr('rel')
        });
    });
</script>