Vue RSS


1Présentation

La vue RSS permet d'envoyer des flux au format RSS, notamment utilisé pour lister les contenus postés sur un site de contenu (comme un blog).


2Utilisation

Pour utiliser la vue RSS, il faut définir l'usage de cette vue. En plus de cela, il faut assigner plusieurs variables de templates :

  • title : (obligatoire) Définit le titre du site.
  • description : (obligatoire) Définit la description du site.
  • domain : (obligatoire) Définit le nom de domaine du site.
  • language : (optionnel) Définit la langue du site (ou la langue des conteus listés dans le flux RSS).
  • contact : (optionnel) Définit l'adresse email de contact du site.
  • copyright : (optionnel) Information de copyright.
  • category : (optionnel) Catégorie du site. Blog par défaut.
  • articles : Définit la liste des articles qui doivent être listés dans le flux. Chaque élément de la liste doit être un tableau associatif avec les clés suivantes :
    • title : (obligatoire) Titre de l'article.
    • url : (obligatoire) URL de l'article.
    • pubDate : (optionnel) Date de publication au format 'YYYY-MM-DD hh:mm:ss'.
    • abstract : (optionnel) Résumé de l'article.
    • author : (optionnel) Adresse email de l'auteur.
    • guid : (optionnel) Identifiant unique de l'article (utilise l'URL sinon).

Voici un exemple de d'envoi de données au format RSS :

class ApiController extends \Temma\Web\Controller {
    public function getArticles() {
        $this['domain'] = 'https://monsite.com';
        $this['title'] = 'Mon super site';
        $this['description'] = 'Bla bla bla bla bla';
        $this['language'] = 'fr';
        $this['contact'] = 'contact@monsite.com';
        $this['articles'] = [
            [
                'title'    => 'Bonne année !',
                'url'      => 'https://monsite.com/page/23',
                'pubDate'  => '2000-01-01 00:00:00',
            ],
            [
                'title'    => 'Nouvelle décennie',
                'url'      => 'https://monsite.com/page/734',
                'pubDate'  => '2010-01-01 00:00:00',
            ],
        ];

        // définition de la vue à utiliser
        $this->_view('\Temma\Views\Rss');
    }
}
  • Lignes 3 à 21 : Définition des données qui seront transmises à la vue.
  • Ligne 24 : On spécifie que la vue à utiliser pour les données sortantes est la vue RSS (et non pas la vue Smarty habituelle).

À noter : La vue RSS n'a évidemment pas besoin de templates, dans la mesure où ce sont les données PHP qui sont directement sérialisées.

Les données reçues ressembleront à cela :

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
    <link>https://monsite.com</link>
    <title>Mon super site</title>
    <description>Bla bla bla bla bla</description>
    <language>fr</language>
    <managingEditor>contact@monsite.com</managingEditor>
    <webMaster>contact@monsite.com</webMaster>
    <generator>Temma RSS generator 1.0.0</generator>
    <category>Blog</category>
    <item>
        <title>Bonne année !</title>
        <link>https://monsite.com/page/23</link>
        <pubDate>Sat, 01 Jan 2000 00:00:00 +0100</pubDate>
    </item>
    <item>
        <title>Nouvelle décennie !</title>
        <link>https://monsite.com/page/734</link>
        <pubDate>Fri, 01 Jan 2010 00:00:00 +0100</pubDate>
    </item>
</channel>
</rss>

3Téléchargement

Si vous voulez que le flux RSS soit envoyé comme un pièce-jointe téléchargeable, définissez une variable de template nommée filename, contenant le nom du fichier.

Exemple :

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