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é !