Your fucking browser doesn't support JavaScript, so you can't post here.
Loading
Объявления
17.03.2010, 17:07
#1
Специалист
Регистрация: 11.11.2007
Адрес: где-то рядом
Сообщений: 633
Версия vB: 4.0 Beta
Поблагодарил(-а): 26
Поблагодарили 323 раз(а) в 194 сообщениях
Репутация: Специалист (323 )
RSS в боковую панель форума
Тема может и есть, но я не нашел и в итоге сделал сам
Цель: Вывести в боковую панель rss с любого сайта, без добавления этого rss в сам форум
Решение:
1) Создаем шаблон block_rss
Код:
<li>
<div class="block smaller">
<div class="blocksubhead">
<a class="collapse" id="collapse_block_newposts_{vb:raw blockinfo.blockid}" href="{vb:raw relpath}#top"><img alt="" src="{vb:stylevar imgdir_button}/collapse_40b.png" id="collapseimg_newposts_{vb:raw blockinfo.blockid}"/></a>
<img src="{vb:stylevar imgdir_cms}/widget-comment.png" alt="" />
<span class="blocktitle">{vb:raw blockinfo.title}</span>
</div>
<div id="block_newposts_{vb:raw blockinfo.blockid}" class="blockbody floatcontainer">
<ul class="blockrow">
<vb:each from="news" key="newsid" value="news">
<li class="floatcontainer">
<a href="{vb:raw news.url}" class="title" target="_blank">{vb:raw news.title}</a>
<p>{vb:raw news.description}</p>
<div class="meta">
<span class="time">{vb:raw news.pubDate}</span>
<br/>
</div>
</li>
</vb:each>
</ul>
</div>
</div>
<div class="underblock"></div>
</li>
Создаем блок html/php
Код:
$url = 'http://hz.ru/rss.xml';
$rss = simplexml_load_file($url);
$news=array();
$i=0;
//цикл для обхода всей RSS ленты
foreach ($rss->channel->item as $item) {
$news[$i]['title']=iconv("UTF-8", "Windows-1251", $item->title);
$news[$i]['url']=iconv("UTF-8", "Windows-1251", $item->link);
$news[$i]['description']=iconv("UTF-8", "Windows-1251", $item->description);
$date=explode(" ",iconv("UTF-8", "Windows-1251", $item->pubDate));
$pubDate=$date[0]." ".$date[1]." ".$date[2]." ".$date[3];
$news[$i]['pubDate']=$pubDate;
$i++;
}
vB_Template::preRegister('block_rss',array('news' => $news));
return true;
Тип содержимого: php
Использовать шаблон: block_rss
Последний раз редактировалось Hitsi; 15.04.2010 в 10:13 ..
Рекламка
Реклама на форуме
Файловый Архив
Неограниченное количество категорий и суб-категорий
Тонкие настройки прав доступа
Предпросмотр медиа файлов: FLV, IFLV, F4A, F4V, MP4, MP3, MOV и других...
Мультизагрузка файлов - SWFUploader
Добавление файлов с сервера
Подробности и история обновлений продукта в
этой теме
17.03.2010, 21:20
#2
Простоузер
Регистрация: 17.04.2006
Сообщений: 3
Поблагодарил(-а): 6
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: Новичок (0 )
А как ограничить количество новостей?
17.03.2010, 22:36
#3
Специалист
Регистрация: 11.11.2007
Адрес: где-то рядом
Сообщений: 633
Версия vB: 4.0 Beta
Поблагодарил(-а): 26
Поблагодарили 323 раз(а) в 194 сообщениях
Репутация: Специалист (323 )
Сделать цикл не по всем новостям а используя for определенное кол-во раз
Выглядеть это будет так:
Код:
$url = 'http://hz.ru/rss.xml';
$rss = simplexml_load_file($url);
$news=array();
//цикл для обхода RSS ленты 5 раз
for ($i=0;$i<5;$i++)
{
$item=$rss->channel->item[$i];
$news[$i]['title']=iconv("UTF-8", "Windows-1251", $item->title);
$news[$i]['url']=iconv("UTF-8", "Windows-1251", $item->link);
$news[$i]['description']=iconv("UTF-8", "Windows-1251", $item->description);
$date=explode(" ",iconv("UTF-8", "Windows-1251", $item->pubDate));
$pubDate=$date[0]." ".$date[1]." ".$date[2]." ".$date[3];
$news[$i]['pubDate']=$pubDate;
}
vB_Template::preRegister('block_rss',array('news' => $news));
return true;
Последний раз редактировалось Hitsi; 15.04.2010 в 10:13 ..
07.05.2010, 01:58
#4
Продвинутый
Регистрация: 09.09.2008
Сообщений: 50
Поблагодарил(-а): 9
Поблагодарили 18 раз(а) в 6 сообщениях
Репутация: Опытный (18 )
Если в транслируемых сообщениях есть фотографии, они передаются без уменьшения. Соответственно фото вылазят за края форума (порой намного). Статьи идут целиком, тоже неудобно. Нужно как-то ограничить размер rss новости.
07.05.2010, 04:08
#5
Специалист
Регистрация: 11.11.2007
Адрес: где-то рядом
Сообщений: 633
Версия vB: 4.0 Beta
Поблагодарил(-а): 26
Поблагодарили 323 раз(а) в 194 сообщениях
Репутация: Специалист (323 )
вместо
Код:
$news[$i]['description']=iconv("UTF-8", "Windows-1251", $item->description);
пишите
Код:
$news[$i]['description']=strip_tags(iconv("UTF-8", "Windows-1251", $item->description));
Это удалит теги (картинки)... а обрезать вам как? По кол-ву символов, по кол-ву слов?...
Вообще: "RSS — семейство XML-форматов, предназначенных для описания лент новостей, анонсов статей, изменений в блогах и т. п."
источник
т.е. краткий обзор новости, она изначально короткая... и если кто-то использует чтобы рассылать целые статьи, то это уже к разработчикам сайта )
07.05.2010, 04:14
#6
Продвинутый
Регистрация: 09.09.2008
Сообщений: 50
Поблагодарил(-а): 9
Поблагодарили 18 раз(а) в 6 сообщениях
Репутация: Опытный (18 )
Цитата:
Сообщение от
Hitsi
а обрезать вам как? По кол-ву символов, по кол-ву слов?...
По количеству слов, наверное, лучше. Хотя, с другой стороны, вроде без разницы. Можно и по количеству символов...
07.05.2010, 09:33
#7
Специалист
Регистрация: 11.11.2007
Адрес: где-то рядом
Сообщений: 633
Версия vB: 4.0 Beta
Поблагодарил(-а): 26
Поблагодарили 323 раз(а) в 194 сообщениях
Репутация: Специалист (323 )
Разница в том, что может слово обрезаться по середина.
Добавить следующее под той строчкой которую изменили
Код:
$temp=explode(" ", $news[$i]['description']);
$temp=array_chunk($temp, 100); // для 100 слов
$temp=implode(" ", $temp[0]);
$news[$i]['description']=$temp;
Опции темы
Опции просмотра
Линейный вид
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
Текущее время: 19:37 25.05.2012 . Часовой пояс GMT +4.