Авторизация

Пройдите регистрацию и станьте пользователем... Гость
Чего больше нужно сайту?

Всего голосов: 2

реклама

RSS-импорт. Изменяем/корректируем ссылки на изображения

24.07.2025     Автор: Гость

Что такое 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 - уникальным идентификатором - например:
Код
<div id="rssit_4">$RSSIT_4$</div>

Код
id="rssit_4" - здесь просто имя ID = № канала (коду для вставки, в нижнем регистре).  
Просто и элементарно.


Во-вторых - пишем (копируем и изменяем) небольшой скрипт (JavaScript), который будет «проходится» по всем картинкам данного блока (id='rssit_4') и менять/править «кривые» ссылки на «прямые» - правильные.

Самое важное - узнать, где же лежат изначально картинки.
Для этого необходимо смотреть исходный код канала (или куда ссылается отсутствующая картинка) и знать адрес сайта, с которого импортируется лента.


Например.
У нас есть отсутствующая картинка с вот таким кодом:

Код
<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

В результете ... исправляем небольшой «баг»....

Код
<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. ... Обычно, когда не указано конкретное место вставки скрипта, его можно втавлять, в принципе, в любое место на странице.
В данном варианте, я предпочитаю прописывать его (скрипт) сразу после блока.
То есть, в сумме, ваш код - импорта и скрипта примерно должен выглядеть вот так:

Код
<div id="rssit_4">$RSSIT_4$</div> /* Ваш канал импорта в блоке с индивидуальным ID */
<script type="text/javascript">
$(document).ready(function(){
$('#rssit_4 img[src^="/"]').each(function(){
this.src='http://86.gibdd.ru'+$(this).attr('src'); /* здесь должен быть ваш домен с которого осуществляется импорт */
});
});
</script>


Данный скрипт работает в ИЕ только с корректным доктайпом, если дойтайп не проставлен, используйте скрипт что ниже.

Код
<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>
Просмотров: 907   | Комментарии: (0)
Всего комментариев: 0
ComForm">
avatar


Мини чат
 

Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0
реклама