Vous êtes ici : accueil  | archives  | Créer un fil de syndication avec Symfony en...5 minutes !

Créer un fil de syndication avec Symfony en...5 minutes ! [439 mots]

Posté le 15 juin 2007 à 12:01 | Vu 533 fois | 0 commentaire | Tags: ,

Prérequis

N.B.: j'utilise le serveur PHP MAMP sur Mac OS X

La création du fil en 8 étapes

  1. ajouter le lien vers le fil dans l'en-tête de votre page en ajoutant au contenu de la balise HTML head) ce bout de code PHP :
    echo auto_discovery_link_tag('rss', 'feed/articles')
  2. installer le plugin symfony nommé sfFeed puis vider le cache de votre application en tapant ces lignes de commande à la racine de votre site web symfony:
    1. $/Applications/MAMP/bin/php5/bin/php symfony plugin-install http://plugins.symfony-project.com/sfFeedPlugin
    2. $/Applications/MAMP/bin/php5/bin/php symfony cc
  3. créer le module symfony nommé feed en tapant cette ligne de commande (toujours à la racine de votre site web symfony):
    $/Applications/MAMP/bin/php5/bin/php symfony init-module frontend feed
  4. ajouter l'action qui génèrera le fil en ouvrant la classe /apps/frontend/modules/feed/actions/action.class.php (générée par l'action précédente !) et en y copiant la méthode PHP suivante :
    1. public function executeArticles()
    2. {
    3. $c = new Criteria();
    4. $c->addDescendingOrderByColumn(PostPeer::CREATED_AT);
    5. $c->setLimit(sfConfig::get('app_feed_max'));
    6. $posts = PostPeer::doSelect($c);
    7. $feed = sfFeed::newInstance('rss201rev2');
    8. // channel
    9. $feed->setTitle('Articles parus sur naudjf.com');
    10. $feed->setLink('@homepage');
    11. $feed->setDescription('Une liste des derniers articles parus sur naudjf.com.');
    12. // items
    13. $feed->setFeedItemsRouteName('@post');
    14. $feed->setItems($posts);
    15. $this->feed = $feed;
    16. }
  5. externaliser, dans un fichier de configuration, la valeur maximale du nombre d'articles à ajouter au fil. Cette valeur est la constante app_feed_max utilisée ci-dessus. Cette constante sera définie dans le fichier /apps/frontend/config/app.yml de cette manière :
    all:
    feed:
    max: 10
  6. indiquer que le type de sortie (vues) des actions du module nommé feed ne sera pas du texte HTML , comme c'est le cas par défaut, mais du XML de type RSS. Pour cela, on doit créer un fichier de configuration des vues view.yml dans le répertoire /apps/frontend/modules/feed/config/ et y ajouter les lignes :
    all:
    has_layout: off
    template: feed
  7. créer la vue de sortie :
    1. on crée un fichier nommé feedSuccess.php dans le répertoire /apps/frontend/modules/feed/templates.
    2. on y écrit la ligne de code PHP:
      echo $feed->getFeed()
  8. visualiser le flux. Que vous utilisiez ou non une terminaison en .html pour vos URLs, vous pourrez attaquer le fil créé via :
    • http://localhost:8888/feed/articles.html
    • ou bien http://localhost:8888/feed/articles

Voilà, c'est fini !

Autres articles:

0 Commentaire:

Ajouter un commentaire