ges | Дата: Понедельник, 05.03.2012, 11:15 | Сообщение # 1 |
Administrator
Группа: Администраторы
Сообщений: 297
Статус: Offline
| RSS-импорт. Изменяем/корректируем ссылки на изображения (Скрипт для юКоз, uCoz)
Что такое 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 <div id="rssit_4">$RSSIT_4$</div>
Quote id="rssit_4" - здесь просто имя ID = № канала (коду для вставки, в нижнем регистре). Просто и элементарно.
Во-вторых - пишем (копируем и изменяем) небольшой скрипт (JavaScript), который будет «проходится» по всем картинкам данного блока (id='rssit_4') и менять/править «кривые» ссылки на «прямые» - правильные.
Самое важное - узнать, где же лежат изначально картинки. Для этого необходимо смотреть исходный код канала (или куда ссылается отсутствующая картинка) и знать адрес сайта, с которого импортируется лента.
Например. У нас есть отсутствующая картинка с вот таким кодом:
Code <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>
Quote Красным - отмечена ссылка на отсутствующее изображение. То есть оно существует, но не на вашем домене/хосте, а на родном, откуда импортирована лента (http://86.gibdd.ru).
Понятное дело, что у вас на сайте такой картинки и по этому адресу быть не может, а если и может то вероятность очень мала..... ))) Следовательно - нам, точнее вам, нужно выявить все такие ссылки и переписать адреса с относительных (относительно корня сайта) на абсолютные. И делается это скриптом.
И, если мы знаем адрес сайта, с которого был произведён импорт, а узнать это можно в ПУ » Главная » RSS импорт - под строкой с именем канала, пишется адрес, откуда он импортируется.
Нам от него нужен только домен - то есть:
Quote ссылка на канал = «http://86.gibdd.ru/taxonomy/term/5/0/feed» домен = «http://86.gibdd.ru»
Пишем скрипт:
Помним, что этот канал должен быть запакован в блок с ID
Code <script type="text/javascript"> $(document).ready(function(){ $('#rssit_4 img[src^="/"]').each(function(){ this.src='http://86.gibdd.ru'+$(this).attr('src'); }); }); </script>
Quote Где: $(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 <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>
Автор скрипта likbezz
Прежде чем задать вопрос Администратору подумайте вопрос о чем? Администраторы вопросах не отвечает только создает тему! Вопросы долько в том случай о том вопрос будет про Студии "RR"
|
|
| |
ABC-media | Дата: Вторник, 08.07.2014, 23:49 | Сообщение # 2 |
Заглянувшие
Группа: Пользователи
Сообщений: 1
Статус: Offline
| А вот, например, в ленте RBC http://rbcdaily.ru/industry/rss картинки в коде есть, но совершенно нигде не выводятся. Это лечится? Спасибо
|
|
| |