Свой RSS

Прислано: Shedko

пн, 11/12/2006 - 01:53

Другие статьи по теме:

Вот недавно пришлось заняться формированием RSS самому, т.е. полностью "ручками" результатом этого стал следующий код.

Может кому пригодится
=======================================

<?php
require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
Header( "Content-type: text/xml");
echo ("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
?>
<rss version="2.0"
xmlns:itms="ССЫЛКА НА ВАШ САЙТ">
<channel>
<title>ИМЯ ВАШЕГО САЙТА</title>
<link>ССЫЛКА НА ВАШ САЙТ</link>
<description>ДЕВИЗ ВАШЕГО САЙТА</description>
<language>en</language>
<ttl>60</ttl>
<dc:creator>ИМЯ ВАШЕГО САЙТА</dc:creator>
<dc:date><?php echo date('Y-m-d') ?></dc:date>
<sy:updatePeriod>dayly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<sy:updateBase><?php echo date('Y-m-d') ?></sy:updateBase>
<image>
<url>ЗДЕСЬ МОЖНО ВСТАВИТЬ ССЫЛКУ НА ЛОГОТИП (путь к файлу картинки)</url>
<link>ССЫЛКА НА ВАШ САЙТ</link>
<title>ИМЯ ВАШЕГО САЙТА</title>
<height>36</height>
<width>165</width>
</image>
<?php
	$nlimit = 10;
	$type = "release";
	$result = db_query_range(db_prefix_tables("SELECT n.created, n.title, n.nid
	FROM {node} AS n, {users} AS u
	WHERE n.type = '$type' AND n.status = 1 AND u.uid=n.uid
	ORDER BY n.created
	DESC "), 0, $nlimit);
	while ($node = db_fetch_object($result)) {
	  echo ("<item><title>");
	  echo $node->title;
	  echo ("</title><description>");
	  echo strip_tags(substr( node_view(node_load(array('nid' => $node->nid)), $teaser = TRUE, 
$page = TRUE, $links = FALSE) ,0, 900));
	  echo ("</description><link>");
	  echo  'http://eng.softq.org/node/' . $node->nid ;
	  echo ("</link><date>");
	  echo date('m/d/Y', $node->created) ; 
    echo ("</date>");   
    echo ("</item>\n\n");	 
   }
mysql_free_result ($result);
?></channel></rss>

=======================================

Копируем все это и вставляем в новый файл rss.php в корне Вашего сайта.
Только не забудьте поменять везде название и ссылки на свой сайт :-)

строчку

echo  'http://eng.softq.org/node/' . $node->nid ;

надо заменить на
echo  'http://ваш.сайт/node/' . $node->nid ;

Конечно код не самый оптимальный, но что ожидать от человека который только начал изучать php (это я о себе).

В коде встречается "release" - это созданный мною новый тип материала, именно его использую для ручной публикации RSS новостей.

$nlimit = 10;

здесь задается количество новостей в ленте, т.е. их количество

Также по теме:

Как заменить стандартный RSS на свой ?
http://drupal.ru/node/3123

Можно ли создавать RSS-ленту самому ?
http://drupal.ru/node/3115

Новое на сайте

Ссылки партнёров