Vista RSS


1Presentación

La vista RSS te permite enviar feeds en formato RSS, usado en particular para listar el contenido publicado en un sitio de contenidos (como un blog).


2Uso

Para usar la vista RSS, debes definir el uso de esta vista. Además de esto, debes asignar varias variables de plantilla:

  • title: (obligatorio) Define el título del sitio.
  • description: (obligatorio) Define la descripción del sitio.
  • domain: (obligatorio) Define el nombre de dominio del sitio.
  • language: (opcional) Define el idioma del sitio (o el idioma del contenido listado en el feed RSS).
  • contact: (opcional) Define la dirección de correo electrónico de contacto del sitio.
  • copyright: (opcional) Información de copyright.
  • category: (opcional) Categoría del sitio. Blog por defecto.
  • articles: Define la lista de artículos que se incluirán en el feed. Cada elemento de la lista debe ser un array asociativo con las siguientes claves:
    • title: (obligatorio) Título del artículo.
    • url: (obligatorio) URL del artículo.
    • pubDate: (opcional) Fecha de publicación en formato 'YYYY-MM-DD hh:mm:ss'.
    • abstract: (opcional) Resumen del artículo.
    • author: (opcional) Dirección de correo electrónico del autor.
    • guid: (opcional) Identificador único del artículo (en caso contrario, se usa su URL).

Aquí tienes un ejemplo de envío de datos en formato RSS:

class ApiController extends \Temma\Web\Controller {
    public function getArticles() {
        $this['domain'] = 'https://misitio.com';
        $this['title'] = 'Mi súper sitio';
        $this['description'] = 'Bla bla bla bla bla';
        $this['language'] = 'es';
        $this['contact'] = 'contact@misitio.com';
        $this['articles'] = [
            [
                'title'    => '¡Feliz año nuevo!',
                'url'      => 'https://misitio.com/page/23',
                'pubDate'  => '2000-01-01 00:00:00',
            ],
            [
                'title'    => 'Nueva década',
                'url'      => 'https://misitio.com/page/734',
                'pubDate'  => '2010-01-01 00:00:00',
            ],
        ];

        // definición de la vista utilizada
        $this->_view('\Temma\Views\Rss');
    }
}
  • Líneas 3 a 21: Definición de los datos que se transmitirán a la vista.
  • Línea 24: Especificamos que la vista que se usará para los datos salientes es la vista RSS (y no la vista Smarty habitual).

Nota: la vista RSS obviamente no necesita plantillas, ya que son los datos PHP los que se serializan directamente.

Los datos recibidos tendrán este aspecto:

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
    <link>https://misitio.com</link>
    <title>Mi súper sitio</title>
    <description>Bla bla bla bla bla</description>
    <language>es</language>
    <managingEditor>contact@misitio.com</managingEditor>
    <webMaster>contact@misitio.com</webMaster>
    <generator>Temma RSS generator 1.0.0</generator>
    <category>Blog</category>
    <item>
        <title>¡Feliz año nuevo!</title>
        <link>https://misitio.com/page/23</link>
        <pubDate>Sat, 01 Jan 2000 00:00:00 +0100</pubDate>
    </item>
    <item>
        <title>Nueva década</title>
        <link>https://misitio.com/page/734</link>
        <pubDate>Fri, 01 Jan 2010 00:00:00 +0100</pubDate>
    </item>
</channel>
</rss>
También es posible transmitir los datos a exportar usando la variable de plantilla @output, que debe contener un array asociativo con las mismas claves (domain, title, articles, etc.). Si @output está definida, tiene prioridad.

3Descarga

Si quieres que el feed RSS se envíe como un archivo adjunto descargable, define una variable de plantilla llamada filename, que contenga el nombre del archivo.

Ejemplo:

$this['filename'] = 'january.rss';