Свой 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
- Shedko's blog
- Для комментирования войдите или зарегистрируйтесь

