JotX

    JotX - улучшенный и дополненный Jot

    Конфигурация из файла.

    Все параметры и шаблоны можно прописывать в одном файле.

        [[JotX? &config=`faq` ]] - Вопрос-Ответ
        [[JotX? &config=`tree` ]] - Древовидные комментарии
        [[JotX? &config=`tree-ajax` ]] - Древовидные комментарии с аякс

    Режимы вынесены в файлы.

        [[JotX? &action=`lastcomments` ]] - Последние комментарии

    Новые параметры.

    • notifyEmails - подписка на определенные адреса

    • subjectEmails - заголовок писем для этой рассылки

    • subscriber - имя получателя для этой рассылки, если не указано (по умолчанию "подписчик")

    • tplNotifyEmails - шаблон для этой рассылки

      
      [[JotX? &notifyEmails=`user1@site.ru:Подписчик 1,user2@site.ru:Подписчик 2,user3@site.ru` ]]
    • docids - список docid, можно указывать диапазоны

    • tagids - список tagid, через запятую

    • userids - список id пользователей, через запятую. Для веб-пользователей - отрицательные.

    • limit - ограничение количества комментариев

      
      [[JotX? &action=`lastcomments` &limit=`10` ]] - 10 последних комментариев со всего сайта
      [[JotX? &docids=`*` &sortby=`rand()` &limit=`1` ]] - случайный комментарий со всего сайта
      [[JotX? &docids=`1,2,5-10,20*,30-35,40**,` ]] - так тоже можно :)

    Параметры docids и tagids используются для вывода данных, docid и tagid - для ввода текущих, поэтому они разделены

    • depth - глубина древовидных комментариев (по умолчанию 10)

    • upc - как считать userpostcount (0 - не считать, 1(по умолчанию) - считать для всего сайта , 2 - считать для текущей страницы)

    • js и jsFile - аналоги css и cssFile

    Постраничная навигация

    • tplNavPage - шаблон для оформления номера страницы
    • tplNavPageCur - шаблон для оформления номера текущей страницы
    • tplNavPageSpl - разделитель номеров страниц
    • tplNavPageDots - разрыв пагинации (по умолчанию многоточие)
    • pageAdjacents - количество страниц до и после текущей (по умолчанию 2)

    События.

    В каждом из двух классов свои.

    onBeforeConfiguration,onBeforeRunActions,onRunActions,onConfiguration,onBeforeFirstRun, onFirstRun,onSubscriptionCheck,onDeleteComment,onGetCommentFields,onBeforeSaveComment, onSaveComment,onGetSubscriptions,onBeforeGetSubscriptions,onBeforeGetUserInfo, onBeforeNotify,onBeforeSubscribe,onBeforeUnsubscribe,onBeforeValidateFormField, onValidateFormFieldFail,onBeforePOSTProcess,onProcessForm,onBeforeProcessPassiveActions, onProcessPassiveActions,onBeforeGetCommentCount,onBeforeGetComments,onGetComments, onReturnOutput,onSetDefaultOutput,onBeforeGetUserPostCount,onSetFormOutput,onSetCommentsOutput

    Плагины на события.

    Их можно подгружать как из сниппетов, так и из файлов. Можно прописывать через запятую.

        [[JotX? &onBeforeValidateFormField=`nolink,onlyrus` ]]

    В состав входят плагины:

    • subscribe (события: onBeforeFirstRun,onSaveComment,onBeforeRunActions,onBeforeProcessPassiveActions,onGetSubscriptions,onBeforeGetUserInfo,onBeforeNotify) - подписка гостей сайта на уведомления о новых комментариях. Также необходимы 2 исправления в шаблонах: чекбокс и текст об отписке, см. пример в tree.config.php
    • ajax (события: onSetCommentsOutput,onSetFormOutput,onReturnOutput) - загрузка всего через аякс
    • antispam (события: onBeforePOSTProcess,onSetFormOutput) - борьба с ботами путём добавления скрытого поля-ловушки
    • nolink (событие: onBeforeValidateFormField) - запретить ссылки в комментариях
    • onlyrus (событие: onBeforeValidateFormField) - запретить нерусский спам
    • notifyfaq (события: onProcessForm,onBeforeNotify) - уведомление пользователю об ответе на вопрос в FAQ
    • rss (события: onBeforeProcessPassiveActions,onSetCommentsOutput) - добавляет ссылку на RSS-ленту
    • rating (события: onFirstRun,onReturnOutput) - добавляет голосование за комментарий

    Будут и другие.

    Прочие исправления.

    • Система уведомлений объединена и переделана под PHPMailer
    • Оптимизированы запросы в базу, в том числе и для userpostcount. Поля пользователей объединены с полями комментариев.
    • Исправлены старые баги с удалением/добавлением полей
    • Постраничная пагинация, в древовидных комментариях она тоже работает, если включить
    • Всякие мелочи, типа граватаров

    Полезные ссылки

    основной репозиторий обсуждение JotX на сообщесве страничка в репозитории