Visão RSS


1Apresentação

A visão RSS permite enviar feeds no formato RSS, usado especialmente para listar o conteúdo publicado em um site de conteúdo (como um blog).


2Uso

Para usar a visão RSS, você deve definir o uso dessa visão. Além disso, você deve atribuir várias variáveis de template:

  • title: (obrigatório) Define o título do site.
  • description: (obrigatório) Define a descrição do site.
  • domain: (obrigatório) Define o nome de domínio do site.
  • language: (opcional) Define o idioma do site (ou o idioma do conteúdo listado no feed RSS).
  • contact: (opcional) Define o endereço de email de contato do site.
  • copyright: (opcional) Informações de direitos autorais.
  • category: (opcional) Categoria do site. Blog por padrão.
  • articles: Define a lista de artigos a serem listados no feed. Cada elemento da lista deve ser um array associativo com as seguintes chaves:
    • title: (obrigatório) Título do artigo.
    • url: (obrigatório) URL do artigo.
    • pubDate: (opcional) Data de publicação no formato 'YYYY-MM-DD hh:mm:ss'.
    • abstract: (opcional) Resumo do artigo.
    • author: (opcional) Endereço de email do autor.
    • guid: (opcional) Identificador único do artigo (caso contrário, use sua URL).

Aqui está um exemplo de envio de dados em formato RSS:

class ApiController extends \Temma\Web\Controller {
    public function getArticles() {
        $this['domain'] = 'https://mysite.com';
        $this['title'] = 'My super site';
        $this['description'] = 'Blah blah blah blah blah';
        $this['language'] = 'en';
        $this['contact'] = 'contact@mysite.com';
        $this['articles'] = [
            [
                'title'    => 'Happy new year!',
                'url'      => 'https://mysite.com/page/23',
                'pubDate'  => '2000-01-01 00:00:00',
            ],
            [
                'title'    => 'New decade',
                'url'      => 'https://mysite.com/page/734',
                'pubDate'  => '2010-01-01 00:00:00',
            ],
        ];

        // define a visão usada
        $this->_view('\Temma\Views\Rss');
    }
}
  • Linhas 3 a 21: Definição dos dados que serão transmitidos à visão.
  • Linha 24: Especificamos que a visão a ser usada para os dados de saída é a visão RSS (e não a visão Smarty usual).

Observação: A visão RSS obviamente não precisa de templates, já que são os dados PHP que são diretamente serializados.

Os dados recebidos terão esta aparência:

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
    <link>https://mysite.com</link>
    <title>My super site</title>
    <description>Blah blah blah blah blah</description>
    <language>en</language>
    <managingEditor>contact@mysite.com</managingEditor>
    <webMaster>contact@mysite.com</webMaster>
    <generator>Temma RSS generator 1.0.0</generator>
    <category>Blog</category>
    <item>
        <title>Happy new year!</title>
        <link>https://mysite.com/page/23</link>
        <pubDate>Sat, 01 Jan 2000 00:00:00 +0100</pubDate>
    </item>
    <item>
        <title>New decade</title>
        <link>https://mysite.com/page/734</link>
        <pubDate>Fri, 01 Jan 2010 00:00:00 +0100</pubDate>
    </item>
</channel>
</rss>
Também é possível transmitir os dados a exportar usando a variável de template @output contendo um array associativo com as mesmas chaves (domain, title, articles, etc.). Se @output estiver definida, ela tem prioridade.

3Download

Se você quiser que o feed RSS seja enviado como um anexo para download, defina uma variável de template chamada filename, contendo o nome do arquivo.

Exemplo:

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