Контактная информация

По всем интересующим вас вопросам связывайтесь при помощи контактной информации приведенной на этой странице!

skype: metsof
email: accusser@gmail.com

В социальных сетях...

Форма обратной связи

Авторизация

MODX статьи, уроки и готовые решения для MODX Revo

Сайдбар

Комментарии MODX Revolution. Создание комментариев в MODX Revolution

14 нояб. 2012

 Продолжу беседу о создании и развитии блога при помощи системы управления контентом MODxRevolution. На сей раз расскажем о системе публикации комментариев к записям в блоге. Без сомнения, автору блога исключительно принципиально располагать возможностью обратной связи с собственными читателями, одним из наиболее известных вариантов которой считается комментирование записей.
В случае если создается блог на MODx у нас имеется 2 (даже 3) варианта: применять готовый компонент, составить систему самостоятельно, применять еще какое то решение. Версию написания собственной реализации системы комментариев я отвергаю вследствие несостоятельной трудозатратности. Не напрасно же мы применяем систему управления контентом. Из имеющихся компонентов для MODxRevolution имеется лишь Quip. Из других решений подойдут все, которые интегрируются путем применения JavaScript. К ним могут быть отнесены такие известные системы как Disqus и IntenseDebate.
Вначале я воспользовался для собственного сайта компонентом Quip(http://rtfm.modx.com/display/ADDON/Quip), настроил его под собственные надобности, модифицировал наружный облик, для того чтобы он коррелировал с дизайном веб-сайта и приготовился торжествовать. Однако не тут-то было. Когда начали появляться комментарии к статьям, я с изумлением открыл, что спустя определенное время они пропадают. Ни с того ни с сего. Попросту раз — и нет комментария. Ужаснувшись, что они потеряны на всегда, я открыл табличку с комментариями в базу данных и с радостью обнаружил, что они не удалены абсолютно и навсегда, а только помечены, как удаленные. Поменяв значение поля «deleted» с «1» на «0», я возвратил комментарии к жизни. Однако через пару дней обстановка повторилась. Я снова исправил комментарии, однако затем они опять пропали, и так длилось до тех пор, покуда мне это все не надоело. На форуме MODx у одного человечка была подобная неувязка как и у меня, однако действующих вариантов решения не было. Копаться в исходном коде Quip я не стал, и тут мой взгляд упал на систему комментирования Disqus.
Меня мгновенно же заинтересовал достаточно милый дизайн, а так же право авторизации как внутри системы Disqus (которая применяется на многих сайтов, в том числе такие большие как CNN, TechCrunch, FoxNews и прочие), так и при помощи Twitter, Facebook, Yahoo, применяя OpenID или обыкновенную для всех веб-сайтов форму «Имя — Почта — Сайт — Комментарий». При этом организовано все исключительно комфортно с точки зрения пользователя.
Вооббщем решил использовать Disqus.
Зарегистрировался на сайте disqus.com предполагается ряд инструкций по установке кода в известные системы ведения блогов на подобие WordPress, Blogger, Joomla и остальные. MODx в их числе не было, однако мы не лыком шиты, в следствии этого переходим в раздел UniversalCode. После знакомства с разделом делается понятно, что система складывается из 2-ух модулей: сам же модуль комментирования, который надлежит применять на страничке с блогозаписью, и модуль, который выводит количество комментариев в определенном посте, который можно применять на самой страничке блога в ленте статей.
Осмыслим сначала с главным модулем для просмотра объяснений к статье и в сущности комментирования. Сделаем чанк, в который пристроим код, написанный на страничке установки Disqus, и дадим ему имя DisqusComments. В нем необходимо  поменять переменную disqus_shortname, в коей определить краткое имя, избранное вами при регистрации, и лучше скорректировать переменные disqus_identifierи
disqus_url для более легкой работы системы. Как идентификатор статьи можно применять ее id в MODx, к примеру так:

<code>       vardisqus_shortname = 'shortname_вашего_сайта';
       vardisqus_identifier = '[[+id]]';
       vardisqus_url = '[[+url]]';</code>

Дальше, в шаблоне для отображения страниц постов из блога в необходимое место добавляем вызов этого чанка:

      … отображение содержания статьи ..
<code>
  [[$DisqusComments? &id=`bounz_net_[[*id]]` &url=`[[++site_url]][[~[[*id]]]]` ]]</code>
      … что-то еще .. 
В этом случае я применяю как  disqus_identifier конструкцию типа bounz_net_articleID, а переменной disqus_url присваиваю абсолютный адрес странички. Применение полного URL сопряжено с тем, что вначале, стараясь интегрировать Disqus с собственным сайтом, и располагая относительной адресацией страничек (в чанке заголовка прописан тег ), появлялась ошибка под час формировании постоянных ссылок на комментарии. А так как до сего мне уже довелось полностью отказаться от относительных ссылок в разделе Галерея (так как они криво функционировали с хеш-тегами), то было решено вообще всюду перейти на полную адресацию.
Однако это было лирическое отступление. Сейчас система комментариев включена в блог, их имеется возможность писать, читать, а так же и модерировать. Сейчас было бы хорошо выводить численность комментариев в главной ленте записей блога. Это исключительно легко сделать. Организуем в чанке, отвечающем за краткий вывод блого записи на основной страничке блога, последующую ссылку:
<a href="http://seogenerator.ru/url_%D1%81%D1%82%D0%B0%D1%82%D1%8C%D0%B8#disqus_thread"><a href="/url_статьи#disqus_thread" class="leavecomment" data-disqus-identifier="bounz_net_[[+id]]">Комментарии</a></a>

Мистика этой ссылки содержится в прибавлении хеш-тега #disqus_thread к ссылке на статью и прибавлении маленького javascript-кода в конец странички. В дополнение к хеш-тегу можно задать у ссылки аттрибутdata-disqus-identifier, который несомненно поможет Disqus отождествить статью. Вообщем говоря, имеется возможность обойтись и без него, тогда система будет определять статьи, базируясь на их URL. Однако в случае если адреса страничек со статьями переменятся (предположим, вы начнете применять ЧПУ), то все будет сломано. Чтобы подобного не приключилось, я прибавил данный атрибут. Подметьте, что он основывается точно так же, как и значение характеристики disqus_identifier в вызове скрипта комментирования. Фактически все готово.

В завершении маленько оформительских работ. Текст ссылок для численности комментариев можно установить в опциях на веб-сайте Disqus (раздел Admin, вкладка Settings, раздел Appearance, группа опций CommentCountLink). На данной же станице опций можно прибавить собственных правил CSS. Так я избавился от ссылки «blog comments powered by Disqus». Впрочем, убрать эту ссылку можно еще проще: удалив строчку

<a href="http://disqus.com"><a href="http://disqus.com" class="dsq-brlink">blog comments powered by <span class="logo-disqus">Disqus</span></a> </a>


из того кода, который они дают.






Подпишитесь на рассылку! Никакого спама, только обновления!!!

Комментарии (3)

  1. Алексей 15 июня 2014, 12:11 # 0
    1. андрей 04 марта 2015, 10:42 # 0
      Автору спасибо.
      1. Вадим 11 сентября 2015, 20:01 # 0
        Спасибо за статью. Проверяю как работает :D

        Услуги по MODX Revolution

        Посмотреть все услуги

        Техническая оптимизация сайта

        Подробнее & Заказать

        Создание сайта на MODX Revolution

        Подробнее & Заказать

        Перенос сайта на MODX Revolution

        Подробнее & Заказать

        Продвижение сайта на MODX

        Подробнее & Заказать