Как я говорил, я увлекся MODx и стараюсь изучить его и освоить на полную катушку, чтобы иметь под рукой удобный инструмент для быстрого разворачивания сайта.
Так как я люблю всякие грабберы-парсеры, я не мог не написать простенький граббер RSS для MODX. Реализовал я его, вестимо, в виде сниппета. При реализации я старался придерживаться идеалогии MODx и использовать библиотеки, которые присутствуют и используются в стандартной сборке. Ну и стандартные функции API MODx я тоже старался использовать.
Собственно, сам сниппет:
Устанавливается как все сниппеты. Идем в "Элементы — Управление элементами — Сниппеты — Новый сниппет". Пишем название сниппета (я назвал его RSS), его категорию и вставляем код сниппета. Сохраняем.
Вызов его выглядит так:
[[RSS? &url=`http://bash.org.ru/rss/`]]
или так:
[[RSS? &url=`http://bash.org.ru/rss/,,http://www.factroom.ru/feed` &tpl=`rss-output` &more=`ололо, набашорг!` &num=`50` &dateFormat=`%d.%m.%Y` &cacheAge=`60`]]
url — обязательный параметр. Должен содержать адрес rss-потока, который мы хотим себе. Должен быть валидным URL, то есть, начинаться с http:// и вести в на реально существующий rss-поток. Если url не передан — выводится сообщение об ошибке.
Возможно задавать несколько адресов, разделяя их при помощи ",," (как указано в примере). В этом случае, фиды мерджатся и сортируются по датам.
cacheAge - время жизни кэша в секундах. Если не задано - кэш не используется.
tpl — имя чанка шаблона. Если шаблон не передан — будет использоваться шаблон по-умолчанию.
Шаблон по-умолчанию:
<div class="rss_item">
<div class="rss_header"><span class="rss_date">[+date+]</span>[+title+]</div>
<div class="rss_text">[+text+]</div>
<a href="[+link+]">[+more+]</a>
</div>
В случае использования своего шаблона, нужно создать чанк. В нем можно использовать плейсхолдеры:
При создании своего шаблона, нужно использовать эти плейсхолдеры.
more — текст ссылки "далее" либо любой кусочек текста, который вы хотите использовать в шаблоне. По-умолчанию текст "more".
num — количество выводимых записей. По-умолчанию установлено в 10.
dateFormat — формат вывода даты. Принимает формат даты как strftime(). Если не передан — дата будет выводиться так, как она указана в RSS, то есть в формате GNU. Это выглядит примерно так: Mon, 4 Apr 2011 10:51:40 +0400.
Собственно, это все. Скачать сниппет с инструкцией по установке. Страничка сниппета на modx.com.
Если вам нужен грабер RSS не для MODx или другой сниппет для MODx — вы можете обратиться ко мне и мы поговорим об условиях работы.