Апр 262015
 

Казалось бы, стандартная задача: вывести блок новостей с одного сайта на другой. А, как оказалось, толкового инструментария и нет. Приходится извращаться. План:

  1. модернизация rss-ленты.
  2. вывод на экран на другом сайте
  3. разборки с кешированием и пр.

Поехали… RSS-лента

Сайт-донор на joomla. RSS-лента получается добавлением “?format=feed&type=rss” к ссылке на категорию. Стандартно, в rss ленту попадает автор, дата, заголовок (title) и описание (intro_text[?] + full_text[?] – в зависимости от наличия и настроек). Симпатичное описание – Как сделать RSS ленту на сайте Joomla. А мне нужна “вступительная картинка”, Intro_image. Найти толкового модуля/расширения у меня не получилось – всё, что сколько-нибудь приличное, сразу платное. Долго мучался, пока не наткнулся вот на такое сообщение – change request for Joomla 3: show intro image in RSS feed. Оставлю себе суть:

Изменяем код joomla

Поскольку картинка человеком засовывается не в “правильное” место, а в description статьи, то неудивительно, что это не вошло в официальный релиз joomla . Я сам категорически против изменения кода, но, вот… Стыдно. 🙂

Вот так я сделал себе

Разница:

  • Исправлен код под мою версию joomla 🙂
  • размеры картинки выставлены в явном виде. Так мне надо на целевой сайте
  • В описании (description) нет ничего, кроме картинки. Последняя строка закомментирована.

Пусть будет здесь, описание работы со “вступительной” картинкой – How to Get Article’s Intro Image in Joomla using PHP

Вывод на экран на другом сайте

Переходим ко второй части. В качестве материала к размышлению я взял статью “Как вывести RSS другого сайта в вашем блоге“. Мне нужно выводить немного по-другому:

Код для вставки в шаблон или виджет

Ну и кеширование

Чтобы на целевом сайте показывались новые статьи неплохо бы поменять интервал кеширования. Он по умолчанию 12 часов.

fetch_feed caches results for 12 hours by default. You can modify this by modifying the time interval via the filter wp_feed_cache_transient_lifetime. Можно сделать hook, а можно поправить – wp_feed_cache_transient_lifetime is located in wp-includes/class-feed.php. Переменная $lifetime.

В качестве благодарности за “мелочи”, которые иногда важнее всего, оставлю ссылку на работу с выравниванием графики – “Работа с изображениями – тег img“.

Пока пусть будет так, потом дополню…

 

Share

  Один комментарий в “Выводим ленту новостей на другой сайт”

  1. […] вот результирующий код (см. Выводим ленту новостей на другой сайт), создающий табличку из двух лент. Дальше можно […]