Creo que no hace falta decir que la librería TemplatePower me gusta bastante, a pesar de algunas carencias importantes que tiene. Hoy vamos a ver como realizar un feed RSS mediante esta librería.
Lo primero que necesitamos es la plantilla con el feed:
feed.tpl:
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>{title}</title>
<link>{link}</link>
<description>{description}</description>
<!-- START BLOCK : item -->
<item>
<title>{title}</title>
<link>{link}</link>
<description>{description}</description>
</item>
<!-- END BLOCK : item -->
</channel>
</rss>
Este sería un feed muy sencillo, pero como ejemplo nos sirve perfectamente. Luego tendríamos el código PHP que nos generaría el feed usando TemplatePower:
feed.php:
<?php
include 'class.TemplatePower.inc.php';
// Indicamos que el contenido es un XML
header('Content-Type: text/xml');
// Creamos el objeto para generar la plantilla
$tpl = new TemplatePower('feed.tpl');
$tpl->prepare();
// Es una función ficticia que nos devolvería un objeto con los datos del canal
$canal = obtenerDatosCanal();
// Asignamos los datos del canal
$tpl->assign('title', $canal->title);
$tpl->assign('link', $canal->link);
$tpl->assign('description', $canal->description);
// Es una función ficticia que nos devuelve un array de objetos con los datos
// de los items.
$items = obtenerItems();
// Recorremos los items para ir generandolos
foreach ($items as $item)
{
// Creamos un nuevo bloque y le asignamos los datos
$tpl->newBlock('item');
$tpl->assign('title', $item->title);
$tpl->assign('link', $item->link);
$tpl->assign('description', $item->description);
}
$tpl->printToScreen();
?>
Y con esto quedaría generado nuestro feed. El formato RSS es bastante más complejo y tiene más etiquetas de las expuestas en este artículo, esto es solo un pequeño ejemplo a modo de prueba conceptual. Podemos ver la especificación del formato en la siguiente página: RSS 2.0 Specification.
Artículos relacionados:
Tags: librería, PHP, RSS, TemplatePower