Что такое RSS-канал?Really Simple Syndication(RSS) – технология распространения информационного контента, которая позволяет не заходя на интересный сайт, получать новости и обновления периодически появляющиеся на сайте, по каналу RSS. В свою очередь RSS-лента, предоставляет возможности для вебмастеров и владельцев сайтов, настроить ее по своему усмотрению и в зависимости от величины полезности и интересности информации, привлечь подписчиков RSS-ленты, в лице постоянных посетителей и читателей.
RSS помогает очень легко, удобно и оперативно получать информацию с любого сайта/блога где он присутствует. Так что, вам необходимо понять, как пользоваться ей ради вашего удобства и легкости работы. Если вы разберётесь в этом вопросе использовать RSS станет очень удобно с ним работать.
Многие официальные ленты не показывают картинок, например «Яндекс.Новости», а некоторые, показывают. Вот здесь и возникают некоторые осложнения, с которыми я вам и помогу, надеюсь, разобраться. Некоторые сервисы транслируют свои RSS-каналы с картинками имеющих относительные ссылки (относительно корня сайта-источника), и, когда такая лента попадает вам на страничку (RSS- импорт) - вместо изображений мы наблюдаем рамки отсутствующих картинок.
Создать RSS-импорт на сайте в системе юКоз элементарно. Заходите в ПУ » Главная » RSS импорт, кликаете на клавишу [Создать RSS-транслятор], вставляете в предложенное окно полную ссылку (http://news.yandex.ru/index.rss) на RSS-ленту (поток), выбираете настройки (количество новостей, колонок и пр.), и кликаете [Создать] ....
Все. Следует упомянуть, что после создания RSS-транслятора у вас система создаёт шаблон, то есть оформление вашей RSS-ленты. Который можно отредактировать на своё усмотрение. RSS-импорт создан. Теперь можно его вставлять на любую страницу сайта кодом $RSSIT_4$, где «4» - номер вашего импорта.
Как же бороться с относительными (относительно домена) ссылками в созданных трансляторах? Как, зачастую бывает - всё достаточно просто. Во-первых - запаковываем RSS-канал в див с индивидуальным ID - уникальным идентификатором - например:
Code (HTML) <div id="rssit_4">$RSSIT_4$</div>
id="rssit_4" - здесь просто имя ID = № канала (коду для вставки, в нижнем регистре). Просто и элементарно.
Во-вторых - пишем (копируем и изменяем) небольшой скрипт (JavaScript), который будет «проходится» по всем картинкам данного блока (id='rssit_4') и менять/править «кривые» ссылки на «прямые» - правильные.
Самое важное - узнать, где же лежат изначально картинки. Для этого необходимо смотреть исходный код канала (или куда ссылается отсутствующая картинка) и знать адрес сайта, с которого импортируется лента.
Например. У нас есть отсутствующая картинка с вот таким кодом:
Code (HTML) <p style="margin-bottom: 0cm;"> <img style="margin: 5px; float: right;" src="/sites/default/files/IMG_3985%20%281%29.jpg" border="0" height="150" width="200" />Как научить детей правилам дорожной безопасности? Только на практике показав им основные нормы поведения на проезжей части. Делать это в условиях города небезопасно, а учиться по книжкам – не всегда понятно и не очень эффективно.</p>
Красным - отмечена ссылка на отсутствующее изображение. То есть оно существует, но не на вашем домене/хосте, а на родном, откуда импортирована лента (http://86.gibdd.ru).
Понятное дело, что у вас на сайте такой картинки и по этому адресу быть не может, а если и может то вероятность очень мала..... ))) Следовательно - нам, точнее вам, нужно выявить все такие ссылки и переписать адреса с относительных (относительно корня сайта) на абсолютные. И делается это скриптом.
И, если мы знаем адрес сайта, с которого был произведён импорт, а узнать это можно в ПУ » Главная » RSS импорт - под строкой с именем канала, пишется адрес, откуда он импортируется.
Нам от него нужен только домен - то есть:
ссылка на канал = «http://86.gibdd.ru/taxonomy/term/5/0/feed» домен = «http://86.gibdd.ru»
Пишем скрипт:
Помним, что этот канал должен быть запакован в блок с ID Code (JavaScript) <script type="text/javascript"> $(document).ready(function(){ $('#rssit_4 img[src^="/"]').each(function(){ this.src='http://86.gibdd.ru'+$(this).attr('src'); }); }); </script>
Где: $(document).ready(function() - Ожидаем когда объектная модель документа (DOM) будет готова к использованию. $('#rssit_4 img[src^="/"]').each(function() - Находим все картинки в блоке с ID=rssit_4 с атрибутом src начинающиеся со слеша («/») - то есть с относительными ссылками, и проходимся по ним (перебираем). this.src='http://86.gibdd.ru'+$(this).attr('src'); - Заменяем текущую ссылку на картинку (атрибут src) на тоже самое + домен с которого импортируем канал - 'http://86.gibdd.ru'+$(this).attr('src')...
Здесь, в данном случае домен = http://86.gibdd.ru - у вас же - свой.
В результете ... исправляем небольшой «баг»....
Напомню, все операции - вставка скрипта в страницу/шаблон - должны производится только в режиме HTML или или HTML + BB-коды.
Как обычно - пару примеров ..... ヅ ☑ Информер без корректирующего скрипта ..... ☑ Информер со скриптом ....
P.S. ... Обычно, когда не указано конкретное место вставки скрипта, его можно втавлять, в принципе, в любое место на странице. В данном варианте, я предпочитаю прописывать его (скрипт) сразу после блока. То есть, в сумме, ваш код - импорта и скрипта примерно должен выглядеть вот так:
Code (HTML) <div id="rssit_4">$RSSIT_4$</div> <script type="text/javascript"> $(document).ready(function(){ $('#rssit_4 img[src^="/"]').each(function(){ this.src='http://86.gibdd.ru'+$(this).attr('src'); }); }); </script>
Данный скрипт работает в ИЕ только с корректным доктайпом, если дойтайп не проставлен, используйте скрипт что ниже.
Code <script type="text/javascript"> $(document).ready(function(){ $('#rssit_19 img').each(function(){ var a=$(this).attr('src')||false; if(a&&a.substring(0,1)=='/'){this.src='http://www.tymoshenko.ua'+a;} }); }); </script>
P.S.Всем удачи... в Новом году ... и вообще - по жизни .... Flesh.
Источник: RSS-импорт. Как изменить, откорректировать ссылки на изображения стороннего импорта. Скрипт для юКоз, uCoz |