eZPublish Import Flux RSS personnalisé

eZPublish propose d’importer des données via un flux RSS (Administration / Syndication). Cette fonctionnalité est très pratique lorsque le flux RSS en question est normé. Notamment avec les éléments <channel> et <item>. En revanche si le flux est un peu farfelu cela pose problème.

Pourquoi ?

L’assistant propose de mapper les champs du flux RSS sur les champs d’une classe d’objet (voir capture ci-dessous). Or il propose uniquement les valeurs classiques d’un flux :

 

 

 

 

 

 

 

 

 

 

 

 

Comment ajouter de nouveaux champs personnalisés pour l’import rss sous eZPublish ?

 

  1. Créer une extension nommée comme vous le souhaitez (ex: myImportRss)
  2. Dans cette extension créer un répertoire rss
  3. Dans ce dossier rss créer un fichier qui à pour but d’overrider le fichier rssimport.php, le nommer nomdevotreextension+rssimport.php (ex : myImportRssrssimport.php
  4. Activer votre extension dans le site.ini de votre siteaccess administration.
  5. Compléter votre fichier myImportRssrssimport.php en overridant la fonction rssFieldDefinition() :
<?php

// Nom de la classe doit être <active_extension> +  'rssimport'

class myImportRssrssimport

{

      public function rssFieldDefinition()

      {

      //Définir la structure des champs personnalisés de votre xml personnalisé (exemple avec une balise events ci dessous)

      return array( 'events' => array( 'elements' => array( 'id',

                                                           'ref',

                                                         'titre',

                                                     'datedebut',

                                                       'datefin')));

      }

}

?>

 Une fois votre fonction rssFIeldDefinition() personnalisée vous pourrez voir apparaitre vos nouveaux champs dans la liste déroulante de l’éditeur d’import RSS. Ensuite vous n’avez plus qu’à les mapper via l’assistant à votre classe et le tour est joué !

 

Picture of Johann

Johann

Webmaster depuis 1998, Créateur de JeVendsLaBoutique.com, J’accompagne les Entrepreneurs passionnés et Freelances à développer leur activité sur Internet.

Partager cet article

2 réponses

  1. Bonjour,

    J’ai du mal à comprendre comment créer l’extension.

    Faut-il suivre l’arborescence classique d’une extension (nomExt > modules, nomExt > settings, etc.) ? Dans ce cas le dossier RSS se trouve dans « modules » ? Ou au même niveau ?

    Ou alors faut-il uniquement créer un dossier pour l’extension, avec pour seul sous-dossier « rss » ?

  2. Bonjour Antoine,

    Désolé pour le temps de réponse je n’avais pas fait de tour sur mon blog depuis un moment (shame on me 🙂 )

    Voila la structure qu’il faut avoir au niveau des dossiers :
    extension /
    Myrssimportextension
         Rss
             Myrssimportextensionrssimport.php

    Dans le fichier bien pensé à nommé la classe du même nom que le fichier et penser aussi à utilisé une méthode static rssFieldDefinition qui retourne un tableau de même forme que eZRSSImport :: rssFieldDefinition ();

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

A propos

Johann ROCHE

Webmaster depuis 1998, Créateur de JeVendsLaBoutique.com, J’accompagne les Entrepreneurs passionnés et Freelances à développer leur activité sur Internet.

Articles récents

Me suivre

✉️ Faire partie de mes contacts