• Авторизация


Комментарии Disqus в MODx Внедрение 07-02-2012 17:20 к комментариям - к полной версии - понравилось!


Комментарии Disqus в MODx Внедрение

Система DISQUS, позволяющую подключить комментарии на абсолютно любую страницу сайта в Интернете посредством простого JavaScript одним из лучших начинаний в вебе за последние несколько лет. Это реально работающая штука. Чтобы пользоваться комментариями DISQUS нужно сначала зарегистрироваться в системе и добавить туда свой домен. Затем идем в Tools->install и выбираем код для Other or Custom - Universal code. Система дает два куска кода:

<div id="disqus_thread"></div>
<script type="text/javascript">
  /**
    * var disqus_identifier; [Optional but recommended: Define a unique identifier (e.g. post id or slug) for this thread]
    */
  (function() {
   var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
   dsq.src = 'http://....disqus.com/embed.js';
   (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
  })();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript=...">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">blog comments powered by <span class="logo-disqus">Disqus</span></a>

<script type="text/javascript">
//<! [ CDATA [
(function() {
    var links = document.getElementsByTagName('a');
    var query = '?';
    for(var i = 0; i < links.length; i++) {
    if(links[i].href.indexOf('#disqus_thread') >= 0) {
        query += 'url' + i + '=' + encodeURIComponent(links[i].href) + '&';
    }
    }
    document.write('<script charset="utf-8" type="text/javascript" src="http://disqus.com/forums/.../get_num_replies.js' + query + '"></' + 'script>');
})();
// ] ] >
</script>

Помещаем все это в один чанк, коорый подключил внутри контента. И тут начались грабли - MODX считает экранирование CDATA каким-то вызовом сниппета(тут я специально воткнул пробелы, чтобы не распарсился) и на этом загрузка страницы останавливается. Я просто унес эти два скрипта в JS-файлы, вот и всё.

Теперь просто вызываем чанк { { disqus } } в конце контента внутри шаблона страницы. У меня есть небольшая доработка для включения/выключения комментариев. Я сделал новый TV с именем comments и типом drop down list, в качестве значений указав "0||1" по умолчанию 0.

В итоге вызов чанка с помощью Phx преобразился так:

[ + phx:if=`[ * comments * ]`:is=`1`:then=`{ { disqus } }`+ ]

Подразумевается, что Phx уже установлен. Вот и всё.

источник http://webdev.vdzr.ru/articles/disqus-modx

вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник Комментарии Disqus в MODx Внедрение | spacesite - Дневник Хатуль мадан | Лента друзей spacesite / Полная версия Добавить в друзья Страницы: раньше»