Главная » Статьи » Статьи о/про uCoz » JS и JQ скрипты для uCoz

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 (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> /* Ваш канал импорта в блоке с индивидуальным ID */
<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.

Автор: Likbezz aka Flesh




Источник: RSS-импорт. Как изменить, откорректировать ссылки на изображения стороннего импорта. Скрипт для юКоз, uCoz
Категория: JS и JQ скрипты для uCoz | Добавил: likbezz (03.01.2011)
Просмотров: 15471 | Комментарии: 30 | Теги: для юкоз, ссылки, RSS-импорт, Изображения, JavaScript, изменить, стороннего, Как, откорректировать, импорта
Всего комментариев: 301 2 »
0  
30  Lan64 [Материал[23.11.2012]

Большое спасибою
Как я сразу не допер ?

0  
29  ak-mm [Материал[07.10.2012]

$RSSIT_№$ хороший и дельный информер, но к сожалению, автообновление там установлено на 60 мин, что является для RSS некоторых новостных порталов, слишком огромным интервалом. Можно ли образом каким либо образом, например через скрипт, сократить этот интервал автообновления, к примеру до 30 секунд?

0  
25  Чур [Материал[06.06.2012]

Доброго дня!
Наверное я писимист, потому что не уверен, дойдёт ли до Вас сообщение, отправленное через страницу "Обратная связь". Зная, что Вы премодерируете тексты, решился на всякий случай продублировать своё письмо тут.

***

Вы писали:
"На данный момент не возьмусь, но через недельку вполне возможно )
Напомните на мыло".
http://likbezz.ru/publ/ucoz/scripts/correct_the_image_links_rss_for_ucoz/29-1-0-77

***

Как у Вас со временем сейчас? Может обсудим возможность написания скрипта для кнопки архивации?

Напомню. Нам нужна возможность упрощённого копирования в архив ленты RSS (сайт http://politicon1.at.ua ). Вы говорили, что автоматом не получится, но это возможно по клику по кнопке на странице сайта.

Дайте знать, если будете готовы обсудить этот вопрос.

С уважением,
Чур.
http://politicon1.at.ua/forum/40-4-26020-16-1334840264

0  
26  likbezz [Материал[07.06.2012]

Quote (Чур)
Как у Вас со временем сейчас? Может обсудим возможность написания скрипта для кнопки архивации?

Со временем у меня всегда тяжело)
Возможно, напомните с каких сайтов берётся поток, лучше сразу адреса, и в какой модуль все это должно копироваться и в каком формате, в смысле - полностью весь поток, или какая либо часть.
По любому, данное действие будет доступно только тем, у кого есть право добавлять материалы в модуль, а желательно и разрешение html.
По результатам оглашу примерную цену, по любому, она будет не менее 20$

0  
27  Чур [Материал[18.07.2012]

По цене приемлемо, а по сути проблемы (открылись новые обстоятельства, как на наш непрофессиональный взгляд) я описал тут.

0  
28  likbezz [Материал[18.07.2012]

Ну а я там же и ответил)
http://likbezz.ru/forum/59-329-11492-16-1342610141
Все это легко решаемо)

0  
23  Чур [Материал[25.04.2012]

ПыСы.
Ваше "Доступ запрещён", которое постоянно выскакивает у меня при отправке сообщений, пока не перегрузишь страничку, наверное перебор. :)

0  
24  likbezz [Материал[26.04.2012]

Возможно)

0  
22  Чур [Материал[25.04.2012]

По поводу: "А сложность в том, что бы этот скрипт написать )
..."

Оценить эту сложность можете? Через почту можно было бы сообщить, емайл я указал в сообщении.
Админ пояснил, что для упрощения оплаты мы используем карточки WMZ (с их помощью правда трудно получить наличку, но легко и удобно оплачивать за товары и, например, за хостинг). Или используется пополнение счёта телефона (тоже достаточно удобно и практически всем нужно).

0  
21  Чур [Материал[25.04.2012]

Админ Политикона просил поблагодарить Вас за код (сам он не смог написать тут сообщение, выскакивала надпись, что доступ запрещён). Благодарю!

Но вот странность, у меня код почему-то не работает. У Админа всё работает, как он сообщил, а у меня не работает. Посмотрел код, там нет домена, так и стоят ссылки на фотки без домена, и фотки не показываются, вместо них на странице видны только названия файлов (а в коде страницы посмотрел, там длинная ссылка идёт, с промежуточными папками, только домена нет).

Тут часть кода выложил: politicon1.at.ua/forum/40-4-26314-16-1335374137

0  
19  Чур [Материал[19.04.2012]

Уважаемый likbezz, благодарю за оперативный ответ.

Вы сказали "кнопкой нажать" и лента будет сохраняться в отдельном разделе сайта. До недавнего времени наш Штирлиц примерно так и делал. Вот тут в Архиве можно посмотреть результат (http://politicon1.at.ua/blog/). Но как он мне говорил, ему приходится копировать блоки с инфой и вставлять их в Архив, что вызывает определённые сложности. А если так, как сказано "зашли, нажали кнопку", то это будет легче? Скажите, а можно сделать хотя бы так: нажать кнопку на нужной ленте и её инфа автоматом попала в свой раздел Архива?

0  
20  likbezz [Материал[22.04.2012]

Quote (Чур)
А если так, как сказано "зашли, нажали кнопку", то это будет легче?

Ну смотря с какой стороны посмотреть.
В итоге - легче.
Ведь нужно будет просто нажать кнопку, и материал сам скопируется и добавится в категорию блога. То бишь, все работу сделает скипт.
А сложность в том, что бы этот скрипт написать )
...
Quote (Чур)
Скажите, а можно сделать хотя бы так: нажать кнопку на нужной ленте и её инфа автоматом попала в свой раздел Архива?

Только скриптом.
Всё то, что написано выше.
... Готового скрипта не видел
...

0  
17  Чур [Материал[19.04.2012]

Доброго утра!

Уважаемый likbezz, подскажите, возможна ли uCozовских сайтах архивация импортируемой ленты RSS? Чтобы можно было позже в архиве просматривать страницы за другие даты. Если да, тогда сразу скажите, можно ли обратиться к Вам с такой просьбой (естественно, на платной основе).

Справочно, сайт, на котором нужно архивировать ленту: politicon1.at.ua

* За скрипт по выведению не выводящихся фоток огромная благодарность! Завтра передам админу, пусть попробует вставить, а то у нас с Тимошенко сайта фотку не идут.

0  
18  likbezz [Материал[19.04.2012]

Quote (Чур)
Уважаемый likbezz, подскажите, возможна ли uCozовских сайтах архивация импортируемой ленты RSS? Чтобы можно было позже в архиве просматривать страницы за другие даты.

Только в ручном режиме, зашли, нажали кнопку, добавили ленту в архив - специально созданную категорию в любом модуле.
Или просто взяли и сохранили страницу как «Сохранить как», на комп. А потом посмотрели.
...
Остальные варианты только при помощи PHP. А там уж, можно почти все и без вашего участия)
...

0  
15  Денис [Материал[21.03.2012]

Скажите пожалуйста Сайт хороший если возникают вопросы захожу сюда. Обычно все понятно но вот сейчас что то не очень Как мне сделать свою колонку rss с картинкой или анимацией чтобы при нажатие переходил к товару или новостям сайта своего?

0  
16  likbezz [Материал[22.03.2012]

Quote (Денис)
Обычно все понятно но вот сейчас что то не очень Как мне сделать свою колонку rss с картинкой или анимацией чтобы при нажатие переходил к товару или новостям сайта

Статья-то не об этом, а о том как скорректировать чужой канал RSS.
На юкозе, у каждого модуля есть своя RSS лента.
http://likbezz.ru/publ/rss/
http://likbezz.ru/load/rss/
http://likbezz.ru/dir/rss/
Изменить её нельзя.
...
Свою собственную RSS-ленту можно создать только информером, или скриптом php.
...

0  
12  Lunder [Материал[10.03.2012]

) точно ) спс. Сделал так:
#rssit_n img{border:0;width:90px!important;height:90px!important;float:left!important;margin:0px 10px 3px 0!important;}

ЗЫ. Я морочил голову со скриптом: пытался выявить картинки и задать им стиль (по аналогии, как ты сделал с относительными ссылками).

0  
13  likbezz [Материал[10.03.2012]

Quote (Lunder)
Я морочил голову со скриптом: пытался выявить картинки и задать им стил

Не ищи сложных путей - они сами найдут тебя ) Проще нужно, проще )))

0  
14  Lunder [Материал[10.03.2012]

Согласен. ) Еще раз спс.

1-10 11-17
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]