Вместо родных новостей - новости из RSS

Статус
В этой теме нельзя размещать новые ответы.
Регистрация
29 Сен 2007
Сообщения
193
Реакции
2
У меня на одном хосте стоят DLE и Shop Script

Подскажите - каким образом можно сделать так чтобы последние 7 новостей из DLE были в шортлисте новостей Shop Scriptа. Ну только заголовки - а при нажатии на них открывалась сама новость.

на ветке о DLE
мне сказали, что это реально:
ну поскольку тебе править код shop script'a то раздел не тот ты выбрал для вопроса. а список новостей в таком виде, который тебе нужен можно легко брать из RSS ленты DLE. глянь на встроенный в DLE информер, вставляй по аналогии в магазин..

подскажите что делать?

вот такой у меня RSS:
 
в принципе идея не нова, нужно только будет скрипт написать, который будет парсить нужную(твою) ленту и выводить ее в нужном месте сайта или магазина.
даже здесь, на нулледе пошерсти поиском, кто-то упоминал простенькие скрипты вывода RSS
 
Пол дня искал - читал... голова кругом идет, а то что нужно не нашел :(
точно на нулледе это есть?
 
не много не понимаю
там написано что это "но только *.rdf"
и далее код:
PHP:
<?php 

function startElement($parser, $name, $attrs) { 
global $tag, $rss; 
if ($name == 'RSS') 
$rss = '^RSS'; 
elseif ($name == 'RDF:RDF') 
$rss = '^RDF:RDF'; 

$tag .= '^' . $name; 
} 

function endElement($parser, $name) { 
global $tag; 
global $itemCount, $items; 
if ($name == 'ITEM') { 
$itemCount++; 
if (!isset($items[$itemCount])) $items[$itemCount] = array('title' => '', 'link' => '', 'desc' => '', 'pubdate' => ''); 
} 

$tag = substr($tag, 0, strrpos($tag, '^')); 
} 

function characterData($parser, $data) { 
global $tag, $chanTitle, $chanLink, $chanDesc, $rss, $imgTitle, $imgLink, $imgUrl; 
global $items, $itemCount; 

$rssChannel = ''; 
if ($data) { 
if ($tag == $rss . '^CHANNEL^TITLE') { 
$chanTitle .= $data; 
} elseif ($tag == $rss . '^CHANNEL^LINK') { 
$chanLink .= $data; 
} elseif ($tag == $rss . '^CHANNEL^DESCRIPTION') { 
$chanDesc .= $data; 
} 
if ($rss == '^RSS') $rssChannel = '^CHANNEL'; 

if ($tag == $rss . $rssChannel . '^ITEM^TITLE') { 
$items[$itemCount]['title'] .= $data; 
} elseif ($tag == $rss . $rssChannel . '^ITEM^LINK') { 
$items[$itemCount]['link'] .= $data; 
} elseif ($tag == $rss . $rssChannel . '^ITEM^DESCRIPTION') { 
$items[$itemCount]['desc'] .= $data; 
} elseif ($tag == $rss . $rssChannel . '^ITEM^PUBDATE') { 
$items[$itemCount]['pubdate'] .= $data; 
} elseif ($tag == $rss . $rssChannel . '^IMAGE^TITLE') { 
$imgTitle .= $data; 
} elseif ($tag == $rss . $rssChannel . '^IMAGE^LINK') { 
$imgLink .= $data; 
} elseif ($tag == $rss . $rssChannel . '^IMAGE^URL') { 
$imgUrl .= $data; 
} 
} 

} 

function parseRSS($url) { 
global $tag, $chanTitle, $chanLink, $chanDesc, $rss, $items, $itemCount, $imgTitle, $imgLink, $imgUrl; 
$chanTitle = ''; 
$chanLink = ''; 
$chanDesc = ''; 
$imgTitle = ''; 
$imgLink = ''; 
$imgUrl = ''; 
$tag = ''; 
$rss = ''; 

global $items, $itemCount; 

$itemCount = 0; 
$items = array(0 => array('title' => '', 'link' => '', 'desc' => '', 'pubdate' => '')); 

$xml_parser = xml_parser_create(); 
xml_set_element_handler($xml_parser, "startElement", "endElement"); 
xml_set_character_data_handler($xml_parser, "characterData"); 

@$fp = fopen($url, "r"); 
$data = ""; 
while (true) { 
@$datas = fread($fp, 4096); 
if (strlen($datas) == 0) { 
break; 
} 
$data .= $datas; 
} 

@fclose($fp); 

if ($data != '') { 
$xmlresult = xml_parse($xml_parser, $data); 
$xmlerror = xml_error_string(xml_get_error_code($xml_parser)); 
$xmlcrtline = xml_get_current_line_number($xml_parser); 

if ($xmlresult) 
displayData(); 
else 
print("Error parsing this feed !<br />Error: $xmlError , at line: $xmlCrtline"); 
} else { 
print("Error while retriving feed $url"); 
} 

xml_parser_free($xml_parser); 
} 

function displayData() { 
global $chanTitle, $chanLink, $chanDesc, $rss, $items, $itemCount, $imgTitle, $imgLink, $imgUrl; 
global $items, $itemCount; 
?> 
<?= $chanTitle ?> 
<div> 
<a href="<?= $chanLink ?>"><img src="<?= $imgUrl ?>" alt="<?= $imgTitle ?>" border="0" /></a> 
<h1><?= $chanTitle ?></h1> 
<h3><?= $chanDesc ?></h3> 
</div> 
<hr /> 
<?php 
for($i = 0;$i < count($items)-1;$i++) { 
echo "<h4>".$items[$i]['title']."</h4>"; 
echo "<h5>".$items[$i]['pubdate']."</h5>"; 
echo "<a href='".$items[$i]['link']."'>".$items[$i]['desc']."</a>"; 
} 
?> 


<?php } 

$url="http://www.kazna.ru/news.rdf"; 
parseRSS($url); 
?>

это то что мне нужно? или я опять не то нашел?
 
ну не знаю в каком формате у тебя лента-донор, скриптов навалом, в яндексе глянь. там ссылок тьма на скрипты подобные.
пользуйся поисковыми системами.
ну и вот например ссылка тебе
последняя ссылку думаю полезней тебе будет
 
Перепробовал все коды с этих тем, чтото не то
у меня на сайте сразу Fatal Error :(

может у нас есть люди которые уже это делали себе?

нагел интересный сайт

там можно дать адрес на свой rss и код генерируется сам
только у меня не получается разобраться что куда вставлять нужно.
Собственно вот код:


я понимаю что этот кусок
PHP:
<!-- begin rss-script.ru code -->
<script type="text/javascript">
var charset=false;
var t=document.getElementsByTagName('meta');
     for(var i=0; i<t.length; i++)
{
var rg=/charset=["']?([^"']*)/g;
if(t[i].content.indexOf('charset')!=-1){charset=rg.exec(t[i].content)[1];break;}
}
document.write('<div class="divrrs"> <script type="text/javascript" src="http://www.rss-script.ru/js.php?rss=http://www.etm.com.ua/news/engine/rss.php&charset='+charset+'"><\/script><\/div>');
</script>
<noscript>Для просмотра этой RSS ленты требуется поддержка Java Script</noscript><center><a title='RSS новости на вашем сайте' class='arss' href='http://www.rss-script.ru'>RSS импорт: www.rss-script.ru</a></center>
<!-- end rss-script.ru code -->
нужно вставить в файл news.frontend.shortlist.tpl

но куда вставлять первую часть кода?
когда вставляю код без первой части - опять ФАТАЛ ЭРРОР
 
<!-- добавьте эту таблицу стилей в тег HEAD вашей страницы -->

Первая часть по всей логике должна вставляться в head.tpl.html, а стили пропиши в свои стили...
А что за еррор, можно подробнее?
 
ааа)))
Я понял, тебе надо попробовать сделать так:


Красненьким выделил то что надо попробовать добавить ;)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху