• Главная
  • Создание сайта
    • Хостинг сайтов
    • Простой интернет сайт
    • Тестируем PHP форум
    • Размещение сайта
    • Динамический сайт
    • Статьи о cms MODx
    • Студии вебдизайна
  • Раскрутка
    • Продвижение сайта
    • Белые каталоги
    • Проверка тИЦ и PR
  • Заработок
    • Партнерские программы
    • Платные разделы сайта
    • Продажа ссылок
    • Баннерная реклама
    • Контекстная реклама
    • Другие способы
  • HTML и CSS
    • История HTML, PHP и ...
    • Основы HTML и CSS
    • Возможности CSS3
    • Верстаем сайт
  • Контакты
Главная страница Карта сайта Обратная связь
Greenlight5.com

Разделы

  • Хостинг сайтов
  • Простой интернет сайт
  • Тестируем PHP форум
  • Размещение сайта
  • Динамический сайт
  • Статьи о cms MODx
  • Студии вебдизайна

Последние статьи

  • Алгоритм Минусинск или прощайте ссылки...
    статья Новость о скором введении нового алгоритма - Минусинска
    подробнее
  • Правильное seo. А было ли?
    статья "Синдром отличника" заставляет многих сеошников мучаться извечным вопросом - а какое оно "правильное seo"? Спрашивается, зачем?
    подробнее

Комментарии cms MODx Evolution. Сниппет Jot

cms MODxВ этой статье я разберу интересную тему – как предоставить посетителям сайта возможность оставлять комментарии к вашим статьям и постам.

Как вы знаете, CMS MODx разделилась на две ветки: Evolution и Revolution. Эта статья ориентирована на движок MODx Evolution версии 1.0.5. С другой веткой я знаком плохо, и по ней, к сожалению, не смогу вам помочь.

Для создания комментариев на сайте MODx используется сниппет Jot. Он включен в базовую сборку движка. Однако этот сниппет имеет ряд известных проблем.

Во-первых, Jot версии 1.1.4 не русифицирован. Но я эту проблему решил, сделав любительский перевод.

Во-вторых, в настройках сниппета не указана кодировка для писем, отправляемых по почте (например, e-mail оповещения модератора о появлении нового комментария на сайте). В чем это выражается? Вы заменили в шаблоне Jot английские слова на русские. При появлении нового комментария на сайте, вам придет письмо с оповещением об этом событии. А в письме вместо русских слов каракули.

Но я нашел решение и этой проблемы. Идем assets\snippets\jot и открываем файл jot.class.inc.php программой Notepad++. Windows блокнот не используем (он испортит код).

Перед строкой №700 (новую строчку создаем) вставляем:

mb_internal_encoding("UTF-8");

А в строке №701 (раньше была №700) заменяем код:

mail($user["email"], $this->config["subject"]["moderate"], $message, "From: ".$modx->config['emailsender']."\r\n"."X-Mailer: Content Manager - PHP/".phpversion());

на

mail($user["email"], mb_encode_mimeheader($this->config["subject"]["moderate"], "UTF-8", "Q"), $message, "From: ".$modx->config['emailsender']."\r\n"."X-Mailer: Content Manager - PHP/".phpversion()."\r\n"."MIME-Version: 1.0"."\r\n"."Content-type: text/plain; charset=".$modx->config['modx_charset']."\r\n");

Это мы добавили кодировку к шаблону e-mail письма для модератора. По похожей схеме в файле jot.class.inc.php стоит изменить также строки №674 и №733. Но там есть определенные нюансы.

Я предлагаю вариант проще. Просто скачайте уже готовый и полностью русифицированный сниппет Jot 1.1.4. Русские фразы в шаблонах вы можете заменить на свои.

Пойдем дальше и разберем простой пример работы с Jot. Создаем новый чанк, например, Comments и вставляем в него код:

[!Jot? &customfields=`name,email` &moderated=`1` &guestname=`Гость` &title=`статья` &captcha=`1` &sortby=`createdon:a` &numdir=`0` &notifyAuthor=`1`!]

А чанк размещаем на странице со статьей. Все комментарии у нас появились.

Коротко о настройках сниппета. Мы сохраняем имя и e-mail посетителя при отправке им сообщения; включили модерацию; имя любого анонима – Гость; тема сообщения по умолчанию – Re: статья; включили каптчу; сортировка сообщений у нас – старые вверху, новые внизу.

Я не стану разбирать все параметры сниппета, о них вы можете почитать на Викиучебнике.

Однако про параметр &notifyAuthor поговорим подробно. При его использовании на e-mail автора статьи (по умолчанию это Administrator сайта) будут приходить письма с оповещением о появлении нового комментария.

Аналогом этого параметра служат:

&notify=`1` &canmoderate=`модератор`

Чтобы сообщения приходили при таких настройках, потребуется в панели администратора MODx в разделе «Пользователи» создать группу веб-пользователей (вкладка «Права веб-пользователей»). Я назвал эту группу – модератор.

Далее на вкладке «Управление веб-пользователями» создаем нового пользователя. При этом не забываем указать его e-mail. И привязываем этого пользователя к группе «модератор».

После всех проделанных действий MODx начнет оповещать по почте пользователя из группы «модератор» при появлении новых комментариев.

Советую также ознакомиться с моей статьей Jot MODx, разрешить html теги и подключить TinyMCE.

Теперь поговорим про полезные плагины, которые улучшают работу Jot.

Во-первых, это CacheAccelerator 0.4b (только для MODx Evolution). Это решение включает в себя сниппет CacheAccelerator и плагин CacheAcceleratorClear.

Для чего это нужно? Если страница у нас кэшируемая, то приходится использовать некэшируемый сниппет Jot (для корректной работы последнего). А это приводит к росту нагрузки на сервер и снижает скорость загрузки веб-страниц.

CacheAccelerator полностью решает эту проблему, кэшируя результаты работы сниппета Jot индивидуально для каждой страницы сайта.

Результаты работы страницы с некэшируемым Jot:

MySQL: 0.0341 s, 10 request(s), PHP: 0.1078 s, total: 0.1419 s, Memory: 4.5 MB, document retrieved from cache

При использовании CacheAccelerator:

MySQL: 0.0163 s, 0 request(s), PHP: 0.0475 s, total: 0.0638 s, Memory: 3.5 MB, document retrieved from cache

Как видите, скорость работы повысилась, а число обращений к базе данных снизилось до нуля. Мы существенно снизили нагрузку на хостинг.

Скачать CacheAccelerator 0.4b. Эта версия имеет автоматический инсталлятор.

Вызов Jot будет иметь вид:

[!CacheAccelerator? &snippetToCache=`Jot`
&cacheId=`[*id*]group_comm:CommentsBottom`
&dropCacheField=`JotForm||post;true;2||;publish;2||;unpublish;2||;delete;2||;edit;2`
&dropCacheGroups=`[*id*]group_comm`
&noCacheGroups=`модератор`
&noCacheRoles=`Administrator||Editor`
&customfields=`name,email`
&moderated=`1` &guestname=`Гость` &title=`статья`
&notifyAuthor=`1` &sortby=`createdon:a` &numdir=`0` &captcha=`1`!]

И еще одно улучшение для сниппета Jot. Это плагин JotAdminNotify (тоже под MODx Evolution). Он выводит на главную страницу MODx сайта количество неопубликованных комментариев, с указанием страниц, где эти сообщения были оставлены.

Скачать плагин JotAdminNotify.

Этот плагин корректно работает с CacheAccelerator. Их можно и нужно совмещать.

Надеюсь, моя статья окажется для вас полезной. Посмотреть работу плагина можно ниже.

Добавить комментарий

Поля отмеченные * обязательны. HTML тэги отключены.

Если не можете разобрать код, нажмите на него. Картинка будет заменена.
 
admin
Сообщения: 3
Comment
Re: статья
Ответ #1 дата : 04.12.2011 в 23:26:03
Пробное сообщение, демонстрирующее в работе сниппет Jot.
Дмитрий
Сообщения: 16
Comment
Спасибо
Ответ #2 дата : 24.12.2011 в 19:18:51
Спасибо, товарищ!
ппц, чуть не помер пока нашел толковое описание. Нашелся человек, который нормально описал.
Будь здоров и живи богато.
Гость
Сообщения: 16
Comment
Re: статья
Ответ #3 дата : 02.01.2012 в 18:37:45
Спасибо. Да статья оказалась полезной и применимой.
Гость
Сообщения: 16
Comment
Re: статья
Ответ #4 дата : 13.04.2012 в 15:33:46
Работает, спасибо
Изменено: 13.04.2012 в 17:26:36 admin  
Роман
Сообщения: 16
Comment
Re: статья
Ответ #5 дата : 28.04.2012 в 12:45:19
Спасибо! Сейчас попробую всё поставить и настроить по Вашей статье.
armx
Сообщения: 16
Comment
Re: статья
Ответ #6 дата : 16.07.2012 в 12:34:37
Полезная информация. Сам намереваюсь использовать Jot для комментариев, благо он родной и встроенный, а я не люблю прицеплять к MODx сторонние приложения без особой нужды. Так что Jot надо допиливать и доводить до ума, это возможно.
Вот с форумом в Ево плохо. Что-то неродное так или иначе надо интегрировать.
admin
Сообщения: 3
Comment
Re: armx
Ответ #7 дата : 16.07.2012 в 13:53:51
Да лучше Jot докрутить. Он самый родной для MODx.
Но меня практически все устраивает. Думаю только как фото попроще прикрутить. Но пока не горит.
Алексей
Сообщения: 16
Comment
Re: статья
Ответ #8 дата : 16.07.2012 в 18:11:49
Спасибо, комментарии уже работают на некоторых страницах моего сайта www.cetour.ru
Михаил
Сообщения: 16
Comment
Кто ищет, тот найдет
Ответ #9 дата : 21.07.2012 в 01:46:27
Спасибо за информацию. С модексом познакомился недавно. создание сайта, заняло чуть более суток.
Попробую прикрутить комментарии
Николай
Сообщения: 16
Comment
Re: статья
Ответ #10 дата : 20.11.2012 в 17:48:23
Автор, большое тебе человеческое спасибо!
Много времени людям сэкономил.
Анна
Сообщения: 16
Comment
Спасибо большое!
Ответ #11 дата : 24.12.2012 в 23:14:42
Твой шаблон третий, который я пробую - http://www.pomogi-sebe-sam.org/index.php?id=5 Наконец-то ПОЛУЧИЛОСЬ! Спасибо огроменное!
Юрий
Сообщения: 16
Comment
Спасибо!
Ответ #12 дата : 07.02.2013 в 20:02:56
Хороший пост, реально помогло. А то глюки с кодировкой в письмах замучали)
Ещё раз спасибо, чувак!
необычный
Сообщения: 16
Comment
podar23podar
Ответ #13 дата : 29.10.2013 в 08:18:30
а вот вопросик можно? У вас время после поста указано?
admin
Сообщения: 3
Comment
to необычный
Ответ #14 дата : 29.10.2013 в 21:19:44
автоматически не указывается, сам указываю иногда
Изменено: 29.10.2013 в 21:20:43 admin  
hmarke87
Сообщения: 16
Comment
hmarke87
Ответ #15 дата : 31.10.2013 в 20:04:25
Да, такой блог однозначно надо раскручивать сильнее - что б как можно больше людей о нем узнали
Изменено: 31.10.2013 в 22:25:26 admin  
Алексей
Сообщения: 16
Comment
Русификация
Ответ #16 дата : 08.04.2014 в 12:17:27
Который шаблон для русификации пробую... Всё равно в тексте над полями иероглифы. Помогите разобраться. может что то не так делаю.
Алексей
Сообщения: 16
Comment
Та же беда с русификацией
Ответ #17 дата : 21.05.2014 в 14:22:06
Ни как не получается русифицировать сколько не пытался, что только не пробовал всё равно иероглифы. В чём беда? Где зарыто это животное?
Гость
Сообщения: 16
Comment
Re: статья
Ответ #18 дата : 05.12.2014 в 20:05:19
Скажите пожалуйста почему у меня не выводятся поля имя и эмэйл?? вот такой вызов
Гость
Сообщения: 16
Comment
Re: статья
Ответ #19 дата : 06.04.2015 в 11:34:05
попробую и я

Greenlight5.com
  Рейтинг@Mail.ru