Свой RSS

Главные вкладки

Аватар пользователя Shedko Shedko 11 декабря 2006 в 4: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 в корне Вашего сайта.
Только не забудьте поменять везде название и ссылки на свой сайт Smile

строчку

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