[Ликбез]

Форма входа
Логин:
Пароль:

Меню сайта


Скрипты и коды для юкоз - Форум аццкого кодера » Если вы пришли за помощью, то Вам сюда... » "RSS-импорт. Изменяем/корректируем ссылки на изображения"

"RSS-импорт. Изменяем/корректируем ссылки на изображения"
[1] slide [27.11.2011, 03:18]
Здравствуйте.

Вот здесь http://likbezz.ru/publ/ucoz/scripts/correct_the_image_links_rss_for_ucoz/29-1-0-77 в комментах я задал свой вопрос, но ответа пока нет, поэтому решил написать ещё и сюда. Прошу извинить за повтор вопроса:

"всё сделал по-написанному (по ссылке выше), плюс ещё прописал размеры картинки в css (по наитию =)), но ступор наступил, когда потребовалось вывести rss не со своего сайта. А на других сайтах, как известно, по-своему оформляют новости, форматируя текст и прочее. Отсюда - проблема. Сторонний rss "рвёт" в клочья все стили таблиц и div-ов!

Можно ли как-то скриптом сделать вывод текста "чужой" новости под стиль моего сайта? Другими словами, нужно, чтобы скрипт "форматироовал" сторонние rss по заданному им (скриптом) стилю. Подскажите, пожалуйста, если такое возможно, то каким образом? Я в js как свинья в апельсинах... Очень надеюсь на Вашу помощь!

Ещё одна загвоздка в том, что если в новости, которую импортируешь на свой сайт, сверху сделан отступ (<br>), то с этим "br"-ом материал публикуется и на том сайте, куда транслируется rss. Это, опять же, нарушает внешний вид. Как от этого избавиться? Другими словами, каким-то образом при помощи скрипта нужно сделать один стандартный шаблон для всех без исключения rss-трансляций с какого бы-то ни было сайта - как для фото, входящим в новость (с этим, с Вашим скриптом, я уже справился), так и для текста самого импортируемого материала. Скажите, такое возможно? или я фантазирую? =/"

Вот как это выглядит в данный момент:



А вот так выглядит теперь скрипт (с дополнениями в css - теми самыми, что по-наитию вписал =)):

Code
<div id="rssit_4">$RSSIT_4$</div>
<script type="text/javascript">
$(document).ready(function(){
           $('#rssit_4 img[src^="/"]').css({width:'60px',height:'45px',margin:'3px 10px 2px 0',border:'0',padding:'0'}).each(function(){
this.src='http://www.schoolnews47.org'+$(this).attr('src'); /* домен rss */
});
});
</script>


Он прописан в шаблоне "Страницы сайта". Кстати, как заметно по вышеприлагаемой картинке, этот скрипт почему-то не "обрезал" транслируемое изображение... =/ Хотя, вчера все картинки корректно подрезались. Сегодня на тот сайт добавили новость - и вот результат...
Словом, тупик какой-то...

А это шаблон самого информера:

Code
<table style="padding-bottom: 10px;" border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
<tr>
<td style="height: 30px; background:#ddd; text-align: left; vertical-align: top; letter-spacing: 0pt; word-spacing: 0pt; padding: 0;"><a title="Перейти на сайт" class="south" href="$LINK$"><b><span style="font-size: 8pt; color: #203547;"><?substr($TITLE$,0,45)?>...</span></b></a>
</td>
<td rowspan="1" style="height: 30px; letter-spacing: 0pt; word-spacing: 0pt; width: 10px;">
</td>
</tr>
<tr>
<td colspan="1" style="height: 120px; text-align: left; float: right; vertical-align: top; letter-spacing: 0pt; word-spacing: 0pt; padding: 0;"><span style="font-size: 8pt; color: #203547; font-weight:normal;"><?substr($DESCRIPTION$,0,290)?>...</span>
</td>
<td style="height: 120px; letter-spacing: 0pt; word-spacing: 0pt; width: 10px;">
</td>
</tr>
<tr>
<td style="height: 20px; text-align: right; vertical-align: middle; letter-spacing: 0pt; word-spacing: 0pt; border-bottom: 1px solid #CCCCCC;"><span style="font-size: 7pt; color: #666666;">$PUBDATE$</span>
</td>
<td rowspan="1" style="">
</td>
</tr>
</tbody>
</table>


Что только в нём не прописывал по размеру шрифта - реакция ноль. Но, как ни странно, если задать цвет тексту новости - реагирует! А с размером - нет...
Что делать??

_____________________________________________

Сижу и сам себе вопросы задаю... =) В продолжение темы.
Вот так задумано:



При такой конструкции, по логике, нужно в редактор "Страницы сайта" вписывать для каждого $RSSIT_Х$ вышеупомянутый скрипт?
Собственно, я так и делал. То есть, в хтмл-коде в каждую <td> прописан данный скрипт. Это правильно? А нельзя прописать в скрипт сразу все $RSSIT_Х$? Ну, чтобы он один раз для всех этих трансляторов исполнялся... Или опять фантазирую? =/ А может быть ошибки по обрезке фоток скриптом и возникают из-за того, что он несколько раз вписан в хтмл-конструкцию "Страницы сайта"? Или, всё-таки, эти траблы из-за разного оформления/форматирования новостей на тех сайтах, откуда выводится rss?

Чет я начинаю запутываться...

И попутный вопрос: вот эта штука - $PUBDATE$ в шаблоне rss-транслятора выводит вот такую вот строку: "Sat, 26 Nov 2011 22:46:35 GMT". Как сделать, чтобы выводилась понятная дата публикации, например, так: "17.11.2011"? Опять скрипт нужен? =/


Сообщение отредактировал slide - Воскресенье, 27.11.2011, 08:24
[2] likbezz [02.12.2011, 22:21]
slide,
Quote (slide)
Ещё одна загвоздка в том, что если в новости, которую импортируешь на свой сайт, сверху сделан отступ (<br>), то с этим "br"-ом материал публикуется и на том сайте, куда транслируется rss. Это, опять же, нарушает внешний вид. Как от этого избавиться?

Отрицательным margin-top
...
Quote (slide)
Другими словами, каким-то образом при помощи скрипта нужно сделать один стандартный шаблон для всех без исключения rss-трансляций с какого бы-то ни было сайта

Это сложно сделать “для всех без исключения” - так как заранее не известно что именно выдаст транслятор.
Стили же перебивать можно !important.
Размеры тоже.

Ссылку на страницу с информером предоствьте, плз.
...
Quote (slide)
И попутный вопрос: вот эта штука - $PUBDATE$ в шаблоне rss-транслятора выводит вот такую вот строку: "Sat, 26 Nov 2011 22:46:35 GMT". Как сделать, чтобы выводилась понятная дата публикации, например, так: "17.11.2011"? Опять скрипт нужен? =/

Да, тоже скрипт.
Заменять «Nov» на «11» и так далее, остальное убирать.
Типа:
Code
<span id="data">Sat, 26 Nov 2011 22:46:35 GMT</span>
<script type="text/javascript">
var obj=document.getElementById('data'),tmp=obj.innerHTML.split(' '),month=tmp[2];
switch(month){
case 'Oct':month='10';break;
case 'Nov':month='11';break;
};
obj.innerHTML=tmp[1]+'.'+month+'.'+tmp[3];
</script>

...
...
[3] slide [03.12.2011, 09:33]
Quote (likbezz)
Это сложно сделать “для всех без исключения” - так как заранее не известно что именно выдаст транслятор.

Вот и я о том же...

Хорошо, если на сайте, с которого выводишь новости, есть неизменяемый стиль оформления каждой статьи.
Но, если как тут на одном из наших школьных, то это кранты - чистое "простоквашино" - вчера "так", сегодня "вот так", а завтра - "как навеет"...
Для одних "красиво" - это когда всё подчиняется правилам и стандартам, для других - фото в новости на пол-монитора =)...
Не править же скрипт под каждую из их статей...

В общем вывод: отказаться от текста и картинок и оставить только заголовки. А раз так, мой вопрос снят.

likbezz, спасибо Вам за ответы, заморачиваться нет смысла. Попробую использовать Ваш скрипт для изменения даты публикации. Если не получится, приду снова =). Не возражаете?
Спасибо ещё раз.


Сообщение отредактировал slide - Суббота, 03.12.2011, 09:35
[4] likbezz [03.12.2011, 16:52]
slide,
Quote (slide)
Хорошо, если на сайте, с которого выводишь новости, есть неизменяемый стиль оформления каждой статьи.

Не изменяемого стиля не существует.

Quote (slide)
Но, если как тут на одном из наших школьных, то это кранты - чистое "простоквашино" - вчера "так", сегодня "вот так", а завтра - "как навеет"...

Да, бывает и такое, причём достаточно часто )
Иногда, единственный вариант переформатировать текст полностью.
Перебить при помощи !important все возможные стили, удалить все <br /> и <hr /> из текста (скриптом), перебить размеры изображений (css) ...

Quote (slide)
Не править же скрипт под каждую из их статей...

... Ну ...

Quote (slide)
likbezz, спасибо Вам за ответы, заморачиваться нет смысла. Попробую использовать Ваш скрипт для изменения даты публикации. Если не получится, приду снова =).

Получится.
Если много блоков с датой, нужно использовать класс.
Типа:
Code
<span class="data">Sat, 26 Nov 2011 22:46:35 GMT</span>
<span class="data">Sat, 25 Oct 2011 22:46:35 GMT</span>

<script type="text/javascript">
$('span.data').each(function(){
var obj=this,tmp=obj.innerHTML.split(' '),month=tmp[2];
switch(month){
case 'Oct':month='10';break;
case 'Nov':month='11';break;
};
obj.innerHTML=tmp[1]+'.'+month+'.'+tmp[3];
});
</script>

...
[5] slide [03.12.2011, 17:22]
Quote (likbezz)
Не изменяемого стиля не существует.

Тут поспорил бы... =)
У некоторых даже годами, если не десятилетиями. Гляньте: http://www.kommersant.ru/
Кстати, Вы ссылку на сайт просили - только заметил, извиняюсь... Хотя, уже не актуально, но если интересно - гляньте.
Всё находится в очень сыром виде. Пока только заготовки. В общем, вот: http://pikinfo.moy.su/
[6] likbezz [03.12.2011, 18:16]
slide,
Quote (slide)
Тут поспорил бы... =)
У некоторых даже годами, если не десятилетиями. Гляньте: http://www.kommersant.ru/

Имелось в виду стиль, который нельзя было бы изменить.
[7] slide [03.12.2011, 18:42]
Quote (likbezz)
Имелось в виду стиль, который нельзя было бы изменить.

Аа, дошло теперь!
Классно придумано с окном с набирающимся текстом! Даже завидно... =)

Это вот этим плагином делается: *jQuery Form Plugin *version: 2.73 (03-MAY-2011) ??


Сообщение отредактировал slide - Суббота, 03.12.2011, 19:08
[8] likbezz [03.12.2011, 19:42]
slide,
Quote (slide)
Это вот этим плагином делается: *jQuery Form Plugin *version: 2.73 (03-MAY-2011) ??

Что “Это”? Окошко с текстом? - нет, простенький JavaScript, типа “Печатающийся текст” и стандартное юВинд окно - куда и набираются буковки.
...


Полная версия сайта