Cet article explique comment générer un flux RSS ou Atom à partir des pages modifiées de votre site. J’utilise pour cela l’extension
ecorss de Fabien Udriot à laquelle j’ai contribué activement au mois de février 2008.
Comme exemple concret, je souhaite générer 2 flux de nouvelles pour 2 parties distinctes de mon site. En l’occurence, pour les tutoriels sur LaTeX et ceux sur TYPO3. J’ai donc une structure comme celle-ci :
Tutoriels
|-- TYPO3
| |-- page 1
| `-- page 2
`-- LaTeX
|-- page 1
|-- page 2
`-- page 3
et je souhaite être averti par des flux RSS / Atom différents des modifications dans la partie TYPO3 et dans celle concernant LaTeX.
Par ailleurs, je souhaite que les flux soient spécifique aux langues disponibles sur mon site. Puisque mes rubriques sont traduites en anglais, j’en veux autant pour les flux RSS / Atom.
Commençons par installer les pré-requis à l’extension ecorss, à savoir :
Installons maintenant l’extension
ecorss. Puis, étape indispensable, ajoutons-la comme extension statique à notre Template, comme indiqué dans la documentation.
Dans le template TS, nous allons configurer deux flux Atom comprenant les 10 dernières modifications dans les rubriques TYPO3 et LaTeX. La page d’accueil de TYPO3 a l’id 13, et celle de LaTeX, l’id 9.
plugin.tx_ecorss.feed = atom page.headerData.12 = USER page.headerData.12.userFunc = tx_ecorss_controllers_feed->add # Feed for TYPO3 news page.headerData.12.feed1{ title = Tutoriels TYPO3 typeNum = 122 url = news-typo3.xml } # Feed for LaTeX news page.headerData.12.feed2{ title = Tutoriels LaTeX typeNum = 123 url = news-latex.xml }
Dans le cas des nouvelles pour TYPO3, nous avons une traduction anglais à disposition et souhaitons proposer la version anglaise du flux Atom aux visiteurs qui affichent cette rubrique en anglais (L = 1).
[globalVar = GP:L=1] # Feed for TYPO3 news page.headerData.12.feed1 { title = TYPO3 Tutorials (English) typeNum = 124 url = news-typo3-en.xml } [global]
Il ne nous reste plus qu’à finaliser la configuration de nos différentes sources de nouvelles.
# TYPO3 Feed Configuration feed1 = PAGE feed1 { typeNum = 122 10 > 10 = USER 10 { encoding = iso-8859-1 userFunc = tx_ecorss_controllers_feed->display lang = fr-FR sysLanguageUid = 0 numberItems = 10 pidRootline = 13 title = TYPO3 subtitle = Résumé des modifications dans les tutoriels TYPO3 } config { disableAllHeaderCode = 1 additionalHeaders = Content-type:text/xml no_cache = 1 xhtml_cleaning = 0 admPanel = 0 disableCharsetHeader = 1 } } # LaTeX Feed Configuration feed2 < feed1 feed2 { typeNum = 123 10 { pidRootline = 9 title = LaTeX subtitle = Résumé des modifications dans les tutoriels LaTeX } } # TYPO3 English Feed Configuration feed3 < feed1 feed3 { typeNum = 124 10 { lang = en-GB sysLanguageUid = 1 subtitle = Modification Summary of TYPO3 Tutorials } }
Nous avons demandé à l’extension ecorss de générer des flux avec les noms news-typo3.xml, news-latex.xml et news-typo3-en.xml correspondant respectivement aux flux dont les typeNum sont 122, 123 et 124. Il faut maintenant modifier la configuration de RealURL pour y parvenir :
, 'fileName' => array ( 'index' => array( 'index.html' => array( 'keyValues' => array( 'type' => 0, ) ) , 'news-typo3.xml' => array( 'keyValues' => array( 'type' => 122, ) ) , 'news-latex.xml' => array( 'keyValues' => array( 'type' => 123, ) ) , 'news-typo3-en.xml' => array( 'keyValues' => array( 'type' => 124, ) ) , '_DEFAULT' => array( 'keyValues' => array() ) )
Il ne nous reste plus qu’à tester la validité de notre flux depuis le site
http://feedvalidator.org/…
