Разделы
Последние статьи
- Алгоритм Минусинск или прощайте ссылки...
Новость о скором введении нового алгоритма - Минусинска
- Правильное seo. А было ли?
"Синдром отличника" заставляет многих сеошников мучаться извечным вопросом - а какое оно "правильное seo"? Спрашивается, зачем?
Комментарии cms MODx Evolution. Сниппет Jot
Как вы знаете, 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` ¬ifyAuthor=`1`!] А чанк размещаем на странице со статьей. Все комментарии у нас появились. Коротко о настройках сниппета. Мы сохраняем имя и e-mail посетителя при отправке им сообщения; включили модерацию; имя любого анонима – Гость; тема сообщения по умолчанию – Re: статья; включили каптчу; сортировка сообщений у нас – старые вверху, новые внизу. Я не стану разбирать все параметры сниппета, о них вы можете почитать на Викиучебнике. Однако про параметр ¬ifyAuthor поговорим подробно. При его использовании на e-mail автора статьи (по умолчанию это Administrator сайта) будут приходить письма с оповещением о появлении нового комментария. Аналогом этого параметра служат: ¬ify=`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` И еще одно улучшение для сниппета Jot. Это плагин JotAdminNotify (тоже под MODx Evolution). Он выводит на главную страницу MODx сайта количество неопубликованных комментариев, с указанием страниц, где эти сообщения были оставлены. Скачать плагин JotAdminNotify. Этот плагин корректно работает с CacheAccelerator. Их можно и нужно совмещать. Надеюсь, моя статья окажется для вас полезной. Посмотреть работу плагина можно ниже. Добавить комментарийПоля отмеченные * обязательны. HTML тэги отключены.
Дмитрий
Сообщения: 16 ![]() Ответ #2 дата : 24.12.2011 в 19:18:51
Гость
Сообщения: 16 ![]() Ответ #3 дата : 02.01.2012 в 18:37:45
Гость
Сообщения: 16 ![]() Ответ #4 дата : 13.04.2012 в 15:33:46
Изменено: 13.04.2012 в 17:26:36 admin
Роман
Сообщения: 16 ![]() Ответ #5 дата : 28.04.2012 в 12:45:19
armx
Сообщения: 16 ![]() Ответ #6 дата : 16.07.2012 в 12:34:37
Алексей
Сообщения: 16 ![]() Ответ #8 дата : 16.07.2012 в 18:11:49
Михаил
Сообщения: 16 ![]() Ответ #9 дата : 21.07.2012 в 01:46:27
Николай
Сообщения: 16 ![]() Ответ #10 дата : 20.11.2012 в 17:48:23
Анна
Сообщения: 16 ![]() Ответ #11 дата : 24.12.2012 в 23:14:42
Юрий
Сообщения: 16 ![]() Ответ #12 дата : 07.02.2013 в 20:02:56
необычный
Сообщения: 16 ![]() Ответ #13 дата : 29.10.2013 в 08:18:30
hmarke87
Сообщения: 16 ![]() Ответ #15 дата : 31.10.2013 в 20:04:25
Изменено: 31.10.2013 в 22:25:26 admin
Алексей
Сообщения: 16 ![]() Ответ #16 дата : 08.04.2014 в 12:17:27
Алексей
Сообщения: 16 ![]() Ответ #17 дата : 21.05.2014 в 14:22:06
Гость
Сообщения: 16 ![]() Ответ #18 дата : 05.12.2014 в 20:05:19
Гость
Сообщения: 16 ![]() Ответ #19 дата : 06.04.2015 в 11:34:05 |
Сообщения: 3
Ответ #1 дата : 04.12.2011 в 23:26:03