Creación de RSS en Drupal 5

Ayer me tocó jalar información en formato XML (RSS) de un sitio web en Drupal 5. Fue un buen ejercicio ya que si recuerdan era imposible generar el campo descripción RSS en Views si no se había usado el campo Body que por defecto viene en el core.
Cómo se habia usado un campo CCK para cargar el body entonces no me quedó otra alternativa que programar un módulo simple para generar el RSS cuyo código adjunto. Es posible usarlo en Drupal 6 si se le hacen pequeños cambios al hook_menu.

rss.info
<php>

; $Id: $
name = RSS publicaciones
description = Genera RSS para sección de publicaciones

</php>

rss.module

<php>
<?php

function rss_menu($may_cache) {
$items = array();

if ($may_cache) {
$items[] = array(
'path' => 'publicaciones/rss',
'callback' => '_rss_publicaciones',
'access' => TRUE,
'type' => MENU_CALLBACK,
);

}

return $items;

}

function _rss_publicaciones() {

$sql = "SELECT * FROM {node} WHERE type = '%s' ORDER BY created DESC LIMIT 0, 1000 ";

$query = db_query($sql, 'recursos');

while ($data = db_fetch_object($query)) {

$node = node_load($data->nid);
//print_r($node);
$output .= "<item>\n";
$output .= "<title><![CDATA[".$node->title."]]></title>\n";
$output .= "<description><![CDATA[".$node->field_recursos_resumen[0]['value']."]]></description>\n";
$output .= "<pubDate>".format_date($node->created, 'large')."</pubDate>\n";
$output .= "<link>"."http://www.".$_SERVER['HTTP_HOST'].'/node/'.$node->nid."</link&gt;\n";
$output .= "</item>\n";
}

$xml = header('Content-Type: text/xml'); //Indicamos al navegador que es un documento en XML
$header .= "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
$header .= "<rss version=\"2.0\">\n";
$header .= "<channel>\n";
$header .= "<title>Publicaciones PREVAL</title>\n";
$header .= "<link>http://preval.org/publicaciones/rss</link&gt;\n";
$header .= "<language>es</language>\n";
$header .= "<description>Publicaciones PREVAL</description>\n";
$header .= $output;
$header .= "</channel></rss>";

print $header;

}

</php>

Etiquetas