Как самому сформировать RSS-поток в Textpattern или добавляем картинки в RSS?

Как самому сформировать RSS-поток в Textpattern?

Как-то я обратил внимание, что в RSS-потоке, который сформирован Textpattern`ом, не выводятся изображения к статьям. Такое положение дел показалось для меня не совсем достойным для одного из самых лучших блоговых движков. Немного погуглив я понял, что стандартного решения в виде плагинов, нет. Но так как Textpattern является одной из самых гибких CMS, то решение было найдено. Благодаря этому решению появилось возможность самостоятельно формировать RSS-поток на свое усмотрение, а также возможность создания нескольких RSS-потоков на одном сайте.

Любой адекватный вебмастер постоянно задается вопросом: "Как улучшить сайт?". Это правильный вопрос, который заставляет его хоть как-то шевелиться.

Данное решение - это не моя личная находка, а подсмотренная отличная идея на забугорном сайте. Сама идея заключается в том, что формировать свой RSS-поток мы будем в отдельной секции, которая будет специально для этого создана.

Чтобы самому сформировать RSS-поток в Textpattern`е:

  1. Создаем новую страницу.

    Переходим в админ-панели Оформление→Страницы и создаем новую станицу с именем newrss, в которую вставляем html-код:

    <?xml version="1.0" encoding="utf-8"?>
    <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
    <generator>http://textpattern.com/</generator>
    <title><txp:site_name /></title>
    <link><txp:link_to_home /></link>
    <pubDate><txp:php>echo strftime( "%a, %d %b %G %T %Z" );</txp:php></pubDate>
    <txp:article_custom allowoverride="0" form="newrss" limit="5" pgonly="0" section="articles" sort="Posted desc" status="4" time="past" />
    </channel>
    </rss>

    Этот код формирует саму html-структуру RSS-потока, который принимается всеми современными браузерами как обычный RSS-поток. Ключевым моментом здесь является конструкция <txp:article_custom ... />, которая и выводит статьи в RSS.

  2. Создаем новую форму.

    Переходим в админ-панели Оформление→Формы, где создаем новую форму с именем newrss (тип формы articles), в которую вставляем код:

    <item>
    <title><txp:title /></title>
    <description>
    <![CDATA[
    <txp:article_image />
    <txp:body />
    ]]>
    </description>
    <link><txp:permlink /></link>
    <pubDate><txp:posted format="%a, %d %b %G %T %Z" /></pubDate>
    <dc:creator><txp:author /></dc:creator>
    <guid><txp:permlink /></guid>
    </item>

    Здесь самое главное содержится в конструкции <![CDATA[ ... ]]>, в которую нужно включить то, что Вы хотите видеть в RSS-потоке.

  3. Создаем новую секцию.

    Переходим Оформление→Секции и создаем новую секцию с именем newrss

    • Использовать страницу: newrss
    • Выбрано по умолчанию: нет
    • На главной странице: нет
    • Публиковать в RSS: нет
    • Включить в поиск по сайту: нет

    Теперь можно перейти по ссылке http://ваш_сайт/newrss и увидеть получившийся результат.

  4. Изменяем адрес RSS значка в адресной строке.

    Я уже писал об этом в статье "Как изменить адрес RSS значка в адресной строке?" и теперь эта информация пришлась как нельзя кстати. Новый RSS-поток, который был сформирован выше нужно как-то поместить в адресную строку, чтобы сделать как было до нашего вмешательства. Для этого нужно разместить одну строчку между <head> ... </head> на станице default (Оформление→Страницы)

    <head>
    . . .
    <link rel="alternate" type="application/rss+xml" href="http://ваш_сайт/newrss" />
    </head>

Вроде бы все, ничего не забыл. Благодаря этому теперь можно сделать сколько угодно RSS-потоков и к тому же выводить в них ту информацию, на которую хватит смелости и фантазии.

Комментарии:

  1. Руслан опубликовал комментарий 6 Июль 2011, 19:42 #

    А в этой строке так и оставить? Или вписать свой сайт?
    <generator>http://textpattern.com/</generator>

    | Ответить
    • Admin опубликовал комментарий 13 Июль 2011, 06:31 #

      У меня так и осталось

      | Ответить
  2. Руслан опубликовал комментарий 6 Июль 2011, 20:14 #

    <txp:sitename /> надо заменить на <txp:site_name />

    | Ответить
    • Admin опубликовал комментарий 13 Июль 2011, 06:32 #

      Точно, спасибо. Поправил

      | Ответить
  3. Руслан опубликовал комментарий 12 Май 2012, 04:01 #

    Обновил textpattern до версии 4.4.1 и в ленте, сделанной по этому примеру перестала отображаться дата. Что ей может не нравиться?

    | Ответить
    • Mut@NT опубликовал комментарий 17 Май 2012, 14:00 #

      Руслан: Обновил textpattern до версии 4.4.1 и в ленте, сделанной по этому примеру перестала отображаться дата. Что ей может не нравиться?

      Вроде не должно быть такого, так как с выходом новой версии нет изменений в использовании этого тега.

      | Ответить
    • Mut@NT опубликовал комментарий 11 Июль 2012, 13:48 #

      Только что проделал все что тут описано на сайте с TXP 4.4.1. Все встало как надо )))

      | Ответить
Имя
e-mail
Сайт
Текст комментария: