Создание RSS ленты в MODX Revolution. Rss лента modx
Урок 17. Создание RSS-ленты сайта MODX
RSS-фид - это xml файл, который описывает последние новости, анонсы, посты блога и другую информацию для различных агрегаторов (сборщиков).
RSS-лента создаётся приблизительно так же как и вывод записей блога, только вместо хтмл-кода будем использовать формат вывода данных rss-ленты.
Хотя сами рсс-фиды и их читалки стали реже использоваться обычными пользователями, они могут влиять на положение сайта в поисковой выдаче.
Установите getResources, если он не установлен.
Создайте ресурс с произвольным именем, в моём случае - это "Новости и уроки MODX Revolution Webschool". Назначьте псевдоним (apas) ресурса feed. Скройте вывод данного ресурса от главного меню выставив галочку в Hide from menus чекбоксе. Назначьте пустой шаблон для данного ресурса и перейдите на вторую вкладку Настройки (Settings) ресурса.
Выставите там тип содержимого RSS и снимите галочку в чекбоксе Использовать текстовый редактор (Richtext) и сохраните ресурс.
Вставьте в поле Содержимое (Content) ресурса следующий код и сохраните:
Итак данный код выводит нашу ленту последних постов. Осталось шаблонирующий чанк вывода отдельного элемента - rssItem Код чанка rssItem
как видно в чанке я задал время +0400 (Московское время GMT +0400, для Украины GMT +0300). Валидируем наш рсс-фид по ссылке W3 feed валидатор. RSS-лента сайта готова!Вставьте в head сайта следующий кусок кода:
где id - идентификатор вашего ресурса - рсс-ленты
Для чего можно использовать RSS ленту?
RSS-ленту, можно использовать для создания Яндекс-виджетов, для оформления подписки через feedburner.google.com и для быстрой подписки через, например, такое расширением - RSS Subscription Extension (от Google) Если вы установите данное расширение и зайдёте на сайт, содержащий rss-ленту, то увидите следующую картину:
При создании статьи использовался материал rtfm.modx.com
modx.ws
Создание RSS на MODX Revo
Создать RSS-ленту на MODX Revo достаточно просто, вам для этого потребуется компонент pdoResources. И ещё, если вы хотите выкидывать текст контента, понадобится компонент JEVIX
Создания шаблона для RSS
Приступим, для начала создадим шаблон, к примеру «RSS»
Добавим в него следующий код и подставим свои значения:
<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0"> <channel> <title>RUБЕЖ</title> <link>[[++site_url]]news</link> <description>Лента новостей Daruse.ru</description> <language>ru</language> [[!pdoResources? &tpl=`tpl_rss` &limit=`20` &depth=`1` &parents=`6,7,8,9` &includeContent=`1` ]] </channel> </rss>Создания чанка для RSS
Шаблон создали, теперь создадим чанк «шаблон-одного элемента rss», назовём его «tpl_rss».
<title>[[+pagetitle]]</title> <link>[[++site_url]][[~[[+id]]]]</link> <description>[[!Jevix? &input=`[[+content:limit=`1000`]]` &cfgAllowTags=`` &cfgSetAutoReplace=`[["<br>"],[""]]` ]]</description> <pubDate>[[+publishedon:date=`%a, %d %b %Y %H:%M:%S +0300`]]</pubDate>В «title» выкидываем заголовок статьи, в «link» полный адрес ссылки на ресурс.
Поле «description» не обязательно, но если вы хотите вывести часть контента, то вам потребуется компонент JEVIX, который удалит html-теги.
Мы ему передаём в «&input», тот текст, который мы обрабатываем. «&cfgAllowTags=``» - допустимые html-теги, нам они не нужны, поэтому оставляем пустоту. Но это не срабатывает с одиночном тегом «<br>», который пишут иногда не правильно на сайте (вместо «<br/>»), поэтому используем «&cfgSetAutoReplace», который позволяет избавиться от этой проблемы. Мы заменяем все «<br>» на пустоту, тем самым эти «неправильные» теги пропадают.
В «pubDate» мы ставим дату публикации в правильном формате для rss, обратите внимание на часовой пояс «+0300».
Создание ресурса для RSS
И так, шаблон и чанк есть, теперь привяжем все это к нужному ресурсу.
Создаём ресурс, даём ему имя RSS, заходим во вкладку «Настройки» и меняем тип содержимого на XML.
После этого ваша лента будет по адресу http://вашсайт.ru/rss.xml.
daruse.ru
Создание RSS ленты в MODX Revolution
RSS-фид - это xml файл, который описывает последние новости, анонсы, посты блога и другую информацию для различных агрегаторов (сборщиков).
RSS-лента создаётся приблизительно так же как и вывод записей блога, только вместо хтмл-кода будем использовать формат вывода данных rss-ленты.
Хотя сами рсс-фиды и их читалки стали реже использоваться обычными пользователями, они могут влиять на положение сайта в поисковой выдаче.
Установите getResources, если он не установлен.
Создайте ресурс с произвольным именем, в моём случае - это "Новости и уроки MODX Revolution Webschool". Назначьте псевдоним (apas) ресурса feed. Скройте вывод данного ресурса от главного меню выставив галочку в Hide from menus чекбоксе. Назначьте пустой шаблон для данного ресурса и перейдите на вторую вкладку Настройки (Settings) ресурса.
Выставите там тип содержимого RSS и снимите галочку в чекбоксе Использовать текстовый редактор (Richtext) и сохраните ресурс.
Вставьте в поле Содержимое (Content) ресурса следующий код и сохраните:
<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel> <title>[[*longtitle]]</title> <link>[[~[[*id]]? &scheme=`full`]]</link> <description>[[*introtext:cdata]]</description> <language>[[++cultureKey]]</language> <ttl>120</ttl> <atom:link href="[[~[[*id]]? &scheme=`full`]]" rel="self" type="application/rss+xml" /> [[!getResources? &tpl=`rssItem` &parents=`8,9` &depth=`5` &limit=`4` &includeContent=`1` &includeTVs=`1` &showHidden=`1` &hideContainers=`1` ]] </channel> </rss>Kак видно в чанке я задал время +0400 (Московское время GMT +0400, для Украины GMT +0300). Валидируем наш рсс-фид по ссылке W3 feed валидатор. RSS-лента сайта готова!
Вставьте в head сайта следующий кусок кода:
где id - идентификатор вашего ресурса - рсс-ленты
Для чего можно использовать RSS ленту?
RSS-ленту, можно использовать для создания Яндекс-виджетов, для оформления подписки через feedburner.google.com и для быстрой подписки через, например, такое расширением - RSS Subscription Extension (от Google) Если вы установите данное расширение и зайдёте на сайт, содержащий rss-ленту, то увидите следующую картину:
uscms.ru
MODX Лента RSS | СЛАВСАЙТ
Одна из необходимых вещей на регулярно обновляемом сайте — это RSS лента. Помимо стандартной подписки по RSS каналу, пользователям можно дать возможность подписываться на обновления по e-mail, пустив эту ленту через сервис Feedburner. Странно, что на такую актуальную тему нет адекватных статей. Поправим ситуацию. Ленту, которую мы создадим, можно прикручивать к любому вызову getResources, причем на сайте может быть несколько независимых RSS.
Приступим. Создаем ресурс для RSS с именем, например, «Новости RSS». Назначаем для него пустой шаблон (blank), тип содержимого — RSS. Отмечаем галочкой пункт «не показывать в меню» и отключаем визуальный редактор. Далее, размещаем этот код в теле ресурса:
<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel>
<title></title><link>http://anat-slavsite.com/articles/news-modx/modx-rss.html</link><description></description><language>ru</language><ttl>120</ttl><atom:link href="http://anat-slavsite.com/articles/news-modx/modx-rss.html" rel="self" type="application/rss+xml" />
</channel></rss>
Видно, что после ввода собственно RSS-команд, размещен блок с заголовком и описанием ленты. Сами записи выводятся с помощью сниппета getResources, настройки которого вы можете выставить на свое усмотрение. Теперь займемся шаблоном для вывода записи — у меня это «rssListing». Создаем новый чанк и помещаем в него этот код:
<item><title></title><link>http://anat-slavsite.com/</link><description></description><pubDate></pubDate><guid isPermaLink="false">http://anat-slavsite.com/</guid></item>
Думаю, значение строк понятно и разъяснять тут ничего не нужно. Теперь вставляем между тегами <head></head> вот этот код:
<link rel="alternate" type="application/rss+xml" title="СЛАВСАЙТ" href="" />
В атрибуте href ставим id ресурса с RSS-лентой, который мы создали пару шагов назад. Код для кнопки «подписаться» будет выглядеть следующим образом:
<a href="" target="_blank" rel="alternate" type="application/rss+xml" title="СЛАВСАЙТ"><img src="/images/rss.png"/></a>
Как я уже писал выше, на сайте может быть несколько независимых лент. Например, подписка на обновления блога и новостей сайта. Или лента может объединить несколько веток сайта — все зависит от вызова getResources. Удачи вам в творчестве!
На этом создание подписки по RSS каналу завершено. Кстати, ресурс с RSS-лентой желательно исключить из карты сайта. И напоследок — моя небольшая коллекция RSS-иконок.
anat-slavsite.com
Создание RSS ленты на MODX Revo
В данном уроке мы рассмотрим как при помощи pdoResources создать RSS ленту (канал) для вашего сайта на MODX. Так же, если мы хотим добавить контент, то нам понадобиться компонент (пакет) JEVIX. Оба этих пакета можно установить из репозитория modstore. Перед тем как начать, давайте в кратции рассмотрим для чего все это.
Для чего создавать RSS?
- Некоторые пользователи пользуются rss читалками.
- При помощи RSS лент можно продвигать сайт и нагонять посетителей с агрегаторов — не очень хорошо работает в 2018, но еще работает.
- Возможность сделать подписку к примеру на емаил на обновления, акции вашего сайта и т.д.Автопостинг RSS в соц сети
- Ну и многое другое — на что хватит фантазии, знаний и умений.
Создание RSS-ленты сайта
1. Создаем документ с именем feed, пишем описание, выставляем пустой шаблон, ставим галки напротив Опубликован и не показывать в меню
Далее идем во вкладку Настройки. В поле Тип содержимого выбираем RSS и Отключаем HTML-редактор, сохраняем документ
и в поле с содержимым вписываем следующий код
<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <channel> <title>[[*pagetitle]] / [[++site_name]]</title> <link>[[~[[*id]]?scheme=`full`]]</link> <description>[[*description:cdata]]</description> <language>ru</language> <copyright></copyright> <ttl>120</ttl> <atom:link href="[[~[[*id]]?scheme=`full`]]" rel="self" type="application/rss+xml" /> [[!pdoResources? &tpl=`tpl-rss` &parents=`13` &depth=`3` &limit=`10` &showHidden=`1` &sortby=`createdon` &includeContent=`1` ]] </channel> </rss>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <channel> <title>[[*pagetitle]] / [[++site_name]]</title> <link>[[~[[*id]]?scheme=`full`]]</link> <description>[[*description:cdata]]</description> <language>ru</language> <copyright></copyright> <ttl>120</ttl> <atom:link href="[[~[[*id]]?scheme=`full`]]" rel="self" type="application/rss+xml" /> [[!pdoResources? &tpl=`tpl-rss` &parents=`13` &depth=`3` &limit=`10` &showHidden=`1` &sortby=`createdon` &includeContent=`1` ]] </channel> </rss> |
Здесь вам нужно изменить
— указать id родителей, через запятую, документы которых должны попадать в rss. Далее нам нужно создать чанк tpl-rss со следующим содержимым
<item> <title>[[+pagetitle]]</title> <link>[[++site_url]][[~[[+id]]]]</link> <description>[[!Jevix? &input=`[[+content:limit=`300`]]` &cfgAllowTags=`` &cfgSetAutoReplace=`[["<br>"],[""]]` ]]</description> <pubDate>[[!ShowDate_en? &val=`[[+publishedon]]`]] +0300</pubDate> <guid>[[++site_url]][[~[[+id]]]]</guid> </item>
<item> <title>[[+pagetitle]]</title> <link>[[++site_url]][[~[[+id]]]]</link> <description>[[!Jevix? &input=`[[+content:limit=`300`]]` &cfgAllowTags=`` &cfgSetAutoReplace=`[["<br>"],[""]]` ]]</description> <pubDate>[[!ShowDate_en? &val=`[[+publishedon]]`]] +0300</pubDate> <guid>[[++site_url]][[~[[+id]]]]</guid> </item> |
Примечание: не забудьте установить пакет Jevix.
Сохраняем все. И теперь можно проверить валидность нашего РСС на сайте validator.w3.org/feed/
Так же можете посмотреть как это все отображается в ридере, установив к примеру дополнение RSS Subscription Extension (это для гугл хром).
web-revenue.ru
Ditto MODx Evo – реализуем rss ленту
В прошлом уроке мы создали вспомогательное меню для нашего сайта. В этом уроке мы создадим rss-ленту для сайта. Данный инструмент также можно отнести к внутренней оптимизации, поскольку rss-лента отлично справляется с ускорением индексации сайта поисковыми машинами. Тем не менее, давайте рассмотрим создание инструмента в рамках серии уроков создания сайта на MODx Evo.
Данный урок не будет слишком длинным, поскольку мы фактически будем использовать материалы предыдущих уроков. Давайте приступим к созданию нашей rss-ленты новостей. Нашу rss-ленту мы будем реализововать с помощью уже известного вам ранее сниппета MODx Evo Ditto.
Создайте новый ресурс в корне нашего сайта с пустым шаблоном blank и снимите галочку показывать в меню (я покажу скрин как это сделано на моем сайте), можете назвать его как угодно это не имеет значения:
Также дополнительно на вкладке «Настройка страницы» снимите галочки «Использовать HTML редактор», и «Кэшируемый», а также измените тип содержимого на «application/rss-xml»:
Сохраните вновь созданный ресурс и откройте его для редактирования еще раз, впишите в поле содержимое страницы следующую строку:
[ !Ditto? &parents=`2,15` &format=`rss` &total=`all` &tpl=`rss_tpl` &display=`10`]]
В параметре parents укажите идентификаторы ресурсов, которые должны будут выступать в качестве контейнеров для статей или новостей в rss-ленте. Сохраните ресурс еще раз.
Вы уже догадались, что нам необходимо создать чанк rss_tpl, который будет использоваться в качестве шаблона для вывода одного элемента нашей rss-ленты.
Создаем новый чанк, называем его rss_tpl, в описание чанка впишите – Шаблон для элемента rss-ленты, категорию чанка можете выбрать любую, я выбираю свою, в которой хранятся мои изменения, но это не столь важно.
В код чанка прописываем следующий код:
Сохраняем наш чанк, открываем ресурс для ленты новостей и нажимаем на кнопку «Просмотр». Если вы все сделали верно, то у вас должна отображаться ваша rss-лента, если что-то не получилось, пишите в комментарии, будем разбираться вместе.
В данном уроке мы очень просто создали rss ленту новостей с помощью сниппета MODx Evo Ditto.
modx-evo.ru
Делаем RSS ленту
Делаем RSS ленту на MODx
RSS Лента - это, грубо говоря, сводка сайта, то есть краткий обзор событий, произошедших на сайте. Информация предоставляется пользователю в удобной форме с анонсами статей, подписаться на нее сможет любой желающий.
Начнём.
Создаем новый документ и заполняем его следующим образом:На вкладке "Общее"
Заголовок: rssРасширенный заголовок: Оставить пустым.Описание: Оставить пустым.Псевдоним: rss (или оставить пустым, если у вас настроен плагин TransAlias)Атрибуты ссылки: Оставить пустым.Аннотация (введение): Оставить пустым.Шаблон: (blank) .Показывать в меню: по желанию
На вкладке "Настройка страницы"
Публиковать: – да.Тип содержимого – «text/xml».Контейнер (содержит дочерние документы): – нет.Использовать HTML-редактор: – нет. (проверьте перед сохранением содержимое страницы и уберите все теги <p>,<div> и другие. Из-за этого может возникнуть синтаксическая ошибка в rss MODx)Регистрировать посещения: – нет.Доступен для поиска: – нет.Кешируемый: – да.Очистить кэш: - да
В содержимое ресурса вставляем:
[[Ditto? &parents=`10, 23, 25` &format=`rss` &display=`all` &total=`all` &depth=`1`&showInMenuOnly=`1` &sortDir=`DESC` ]]
Жмем "сохранить"
Где:
&parents=`10, 23, 25` - Разделы, из страниц которых будет формироваться RSS-лента.&showInMenuOnly=`1` - Показывает только документы, видимые в меню&sortDir=`DESC` - Сортировка документов&format=`rss`- Используемый формат для вывода.&display=`all` - Количество выводимых обзоров.&total=`all` - Число выводимых документов.&depth=`2` - Глубина просмотра. В данном случае 2.
Готова добрая часть ленты, вернее, она в принципе работает, но вывод происходит полной статьи. Если вас это устраивает, то можете остановиться здесь. А мы идем дальше.
Создаем чанк rss_tpl.
Помещаем в него следующую конструкцию:
<item> <title>[+rss_pagetitle+]</title> <link>[(site_url)][~[+id+]~]</link> <description><![CDATA[ [+introtext+] ]]></description> <pubDate>[+rss_date+]</pubDate> <guid isPermaLink="false">[(site_url)][~[+id+]~]</guid></item>
Жмем "сохранить"
Теперь последнее, что нужно сделать - это зайти в основные шаблоны и вставить следующую конструкцию в область <head>:
<link rel="alternate" type="application/rss+xml" title="[(site_name)] RSS feed" href="[~XX-RSS~]">
В место XX-RSS - id - страницы RSS.
Жмем "сохранить"
Вот, в принципе, и все. Теперь на вашу ленту смогут подписываться все желающие.
www.imho.74pro.ru