Créer plusieurs flux RSS pour tt_news
Pour créer des flux RSS pour tt_news, il y a plusieurs règles à respecter.
1 => Il y a une configuration TYPOSCRIPT pour l’extension à faire. Cette configuration permet de paramétrer le format XML pour tt_news :
plugin.tt_news { displayXML { rss2_tmplFile = EXT:tt_news/res/rss_2.tmpl xmlFormat = rss2 xmlTitle = Blog de Thomas LEROY xmlLink = http://www.tleroy.fr/ xmlDesc = Liste des flux xmlLang = fr title_stdWrap.htmlSpecialChars = 1 title_stdWrap.htmlSpecialChars.preserveEntities = 1 subheader_stdWrap.stripHtml = 1 subheader_stdWrap.htmlSpecialChars = 1 subheader_stdWrap.htmlSpecialChars.preserveEntities = 1 subheader_stdWrap.crop = 100 | ... | 1 subheader_stdWrap.ifEmpty.field = bodytext xmlLastBuildDate = 1 } }
2 => Ensuite, nous allons créer plusieurs types de page, autant que le nombre de flux RSS.
### CONFIGURATION GLOBALE xmlevenements = PAGE xmlevenements { 10 > 10 < plugin.tt_news 10 { pid_list > ### Page de la vue Détaillée singlePid = 10 defaultCode = XML categoryMode = 1 catImageMode = 0 catTextMode = 0 } config { disableAllHeaderCode = 1 additionalHeaders = Content-type:text/xml no_cache = 1 xhtml_cleaning = 0 } }
### FLUX RSS 1 xmlevenement1 < xmlevenements xmlevenement1 { typeNum = 100 10.displayXML.xmlDesc = RSS TYPO3 ### ID de la catégorie de la news # 10.categorySelection = 9 ### PID du dossier où sont stockées les news 10.pid_list = 53 }
### FLUX RSS 2 xmlevenement2 < xmlevenements xmlevenement2 { typeNum = 101 10.displayXML.xmlDesc = RSS TYPOSCRIPT ### ID de la catégorie de la news # 10.categorySelection = 10 ### PID du dossier où sont stockées les news 10.pid_list = 54 }
### FLUX RSS 3 xmlevenement3 < xmlevenements xmlevenement3 { typeNum = 102 10.displayXML.xmlDesc = RSS PHP ### ID de la catégorie de la news # 10.categorySelection = 11 ### PID du dossier où sont stockées les news 10.pid_list = 55 }
Il peut y avoir 2 façons différentes de configurer comment seront exportées les news. Il est possible de selectionner les news par le dossier où elles sont stockées ou bien par leur catégorie.
3 => Pour ajouter la possibilité aux internautes de s’abonner aux flux RSS depuis leur navigateur, il faut aussi créer le TYPOSCRIPT suivant :
page.headerData.105 > page.headerData.105 = HTML page.headerData.105.value ( <link rel="alternate" type="application/rss+xml" title="RSS TYPO3" href="?type=100" /> <link rel="alternate" type="application/rss+xml" title="RSS TYPOSCRIPT" href="?type=101" /> <link rel="alternate" type="application/rss+xml" title="RSS PHP" href="?type=102" /> )
Pour plus de détails, je vous conseille de lire la documentation tt_news.
Bonjour monsieur, j’ai un problème avec avec mon RSS.
J’ai suivi le code que vous avez rajouté en modifiant les informations en ce qui concerne mon site.
Sur ma page d’accueil j’ai une liste de news voici le TS:
lib.newsLatest
code = LATEST
latestLimit = 5
pid_list >
pid_list = 78
templateFile = fileadmin/templates/templatesPlugins/tt_news.html
singlePid=81
archiveTypoLink.parameter = 82
}
comme vous pouvez le constatez, j’ai une page qui affiche les archives, voici le TS
lib.newsArchives
code = LIST
pid_list = 78
singlePid=81
limit=3
}
mon TS de la page où les news sont affichées de maniere unique
lib.newsArchives
code = SINGLE
pid_list = 78
templateFile = fileadmin/templates/templatesPlugins/tt_news.html
archiveTypoLink.parameter = 82
}
Enfin une page pour le RSS des news.
pour cela j’ai pris en compte votre code et j’ai modifié les champs avec les miens:
Voici mon TS de la page RSS, bien sur il y a pas bcp de changement avec le votre:
plugin.tt_news {
displayXML {
rss2_tmplFile = EXT:tt_news/res/rss_2.tmpl
xmlFormat = rss2
xmlTitle = Essai avec un RSS
xmlLink = http://www.tleroy.fr/
xmlDesc = Liste des flux
xmlLang = fr
title_stdWrap.htmlSpecialChars = 1
title_stdWrap.htmlSpecialChars.preserveEntities = 1
subheader_stdWrap.stripHtml = 1
subheader_stdWrap.htmlSpecialChars = 1
subheader_stdWrap.htmlSpecialChars.preserveEntities = 1
subheader_stdWrap.crop = 100 | … | 1
subheader_stdWrap.ifEmpty.field = bodytext
xmlLastBuildDate = 1
}
}
### CONFIGURATION GLOBALE
xmlevenements = PAGE
xmlevenements {
10 >
10
### Page de la vue Détaillée
singlePid = 81
defaultCode = XML
}
config {
disableAllHeaderCode = 1
additionalHeaders = Content-type:text/xml
no_cache = 1
xhtml_cleaning = 0
}
}
### FLUX RSS 1
xmlevenement2 < xmlevenements
xmlevenement2 {
typeNum = 100
10.displayXML.xmlDesc = RSS TYPO3
### ID de la catégorie de la news
#10.categorySelection = 1
### PID du dossier où sont stockées les news
10.pid_list = 78
}
### FLUX RSS 2
xmlevenement2 < xmlevenements
xmlevenement2 {
typeNum = 101
10.displayXML.xmlDesc = RSS TYPOSCRIPT
### ID de la catégorie de la news
#10.categorySelection = 1
### PID du dossier où sont stockées les news
10.pid_list = 78
}
### FLUX RSS 3
xmlevenement3 < xmlevenements
xmlevenement3 {
typeNum = 102
10.displayXML.xmlDesc = RSS PHP
### ID de la catégorie de la news
#10.categorySelection = 1
### PID du dossier où sont stockées les news
10.pid_list = 78
}
Lorsque je clique sur l’icone voir, j’arrive à avoir une page en xml, avec l’icone du RSS et la listebox.
Par contre mes news ne s’affiche pas.
Avez vous une idée?
j’utilise typo3 4.2
j’ai inclus les extensions
css_styled_content
News_feed(RSS,RDf,ATOM) tt_news
CSS_based tmpl (tt_news)
News_Feed(chnewsfeeds)
et table-based tmpl(tt_news).
Pour chacune des pages que j’ai cité, elles ont toutes leurs propre template.
il m’a oublié de rajouter ceci:
### CONFIGURATION GLOBALE
xmlevenements = PAGE
xmlevenements {
10 >
10
### Page de la vue Détaillée
singlePid = 81
defaultCode = XML
}
c’est bon ca marche j’ai fait une bourde (pid_list), je me suis trompé d’id.
En tous cas merci pour votre code
Bonjour,
Je viens d’installer votre typoscript mais quand il me mets le lien pour le 1er flux RSS, il n’affiche aucune news. Pourtant si je mets la même config dans RSS2 il affiche tout. Que faire ? Merci
Pouvez-vous me montrer le Typoscript que vous essayez ?
C’est assez difficile de vous aider sans cela
Voici mon typoscript :
### CONFIGURATION DES FLUx RSS
plugin.tt_news {
displayXML {
rss2_tmplFile = EXT:tt_news/res/rss_2.tmpl
xmlFormat = rss2
xmlTitle = Test de flux RSS
xmlLink = http://didier.hemmer.ch/
xmlDesc = Liste des flux RSS de didier.hemmer.ch
xmlLang = fr
title_stdWrap.htmlSpecialChars = 1
title_stdWrap.htmlSpecialChars.preserveEntities = 1
subheader_stdWrap.stripHtml = 1
subheader_stdWrap.htmlSpecialChars = 1
subheader_stdWrap.htmlSpecialChars.preserveEntities = 1
subheader_stdWrap.crop = 100 | … | 1
subheader_stdWrap.ifEmpty.field = bodytext
xmlLastBuildDate = 1
}
}
xmlnews = PAGE
xmlnews {
typeNum = 100
10 >
10
10.pid_list = {$plugin.tt_news.pid_list}
10.singlePid = {$plugin.tt_news.singlePid}
10.defaultCode = XML
config {
disableAllHeaderCode = 1
additionalHeaders = Content-type:text/xml
no_cache = 1
xhtml_cleaning = 0
}
}
### CONFIGURATION GLOBALE
xmlevenements = PAGE
xmlevenements {
10 >
10
### Page de la vue Détaillée
singlePid = 78
defaultCode = XML
categoryMode = 1
catImageMode = 0
catTextMode = 0
}
config {
disableAllHeaderCode = 1
additionalHeaders = Content-type:text/xml
no_cache = 1
xhtml_cleaning = 0
}
}
### FLUX RSS 1
xmlevenement2 < xmlevenements
xmlevenement2 {
typeNum = 100
10.displayXML.xmlDesc = RSS Admin
### ID de la catégorie de la news
# 10.categorySelection = 5
### PID du dossier où sont stockées les news
10.pid_list = 77
}
### FLUX RSS 2
xmlevenement2 < xmlevenements
xmlevenement2 {
typeNum = 101
10.displayXML.xmlDesc = RSS Technique
### ID de la catégorie de la news
10.categorySelection = 6
### PID du dossier où sont stockées les news
10.pid_list = 77
}
### FLUX RSS 3
xmlevenement3
page.headerData.105 = HTML
page.headerData.105.value (
)
un grand merci
Bonjour,
Je pense avoir fait une erreur dans mon code exemple, pour le Flux 1 :
Je pense qu’il faut remplacer :
### FLUX RSS 1
xmlevenement2 < xmlevenements
xmlevenement2 {
par :
### FLUX RSS 1
xmlevenement1 < xmlevenements
xmlevenement1 {
Pouvez-vous me dire si c'est bon après cette modification ?
Un grand Merci, tout fonctionne correctement
Bonjour,
Comment faire pour un tt_news qui en 2 langues FR/DE ? J’ai installé en français selon votre tuto c’est OK.
Auriez-vous la solution?
Merci
@TYPO3_user il faut que tu fasses une traduction de ta page.
Bonjour,
Je cherche à implémenter sur un site TYPO3 plusieurs flux RSS et j’ai donc repris votre script moyennant quelques changements (id pour coller sur mon site).
J’ai actuellement 2 flux RSS:
- Flux 1: pid_list = 122 (type=100)
- Flux 2: pid_list = 122,119 (type=106)
Actuellement, dans mes deux flux, j’ai bien une liste de nouvelle mais lorsque je tente d’accèder aux nouvelles, le lien est faux (et du coup, on ne peut pas accéder à la nouvelle à partir du flux). Je m’explique:
- Lien obtenu: https://xxxxx/portail//?no_cache=1&tx_ttnews%5Btt_news%5D=376
- Pour les nouvelles de type 122 le lien devrait être : https://xxxxx/portail/support-info/detail-support-info/?no_cache=1&tx_ttnews%5Btt_news%5D=376
- Pour les nouvelles de type 119 le lien devrait être : https://xxxxx/portail/astuce-du-jour/detail-astuce/?no_cache=1&tx_ttnews%5Btt_news%5D=376
Avez vous une idée?
D’avance merci.
Voici mon setup:
===============
# Configuration générale
page = PAGE
page.typeNum = 0
page.config.index_enable = 1
page.config.index_externals = 1
#page.config.admPanel =1
plugin.tt_news.allowCaching = 0
includeLibs.tets = EXT:cyo_fil_ariane_communautes/pi1/class.tx_cyofilarianecommunautes_pi1.php
page.1 = USER
page.1.userFunc = tx_cyofilarianecommunautes_pi1->main_page
# Configuration spécifique
plugin.tx_indexedsearch._CSS_DEFAULT_STYLE >
plugin.tx_indexedsearch {
templateFile = fileadmin/templates/t3xtemplates/indexed_search/indexed_search.tmpl
search.rootPidList = 17
show.resultNumber = 1
show {
rules = 0
parsetimes = 0
L2sections = 0
L1sections = 1
LxALLtypes = 0
clearSearchBox = 0
clearSearchBox.enableSubSearchCheckBox = 0
forbiddenRecords = 0
alwaysShowPageLinks = 0
advancedSearchLink = 0
resultNumber = 0
mediaList =
}
}
plugin.tt_news {
displayXML {
rss2_tmplFile = EXT:tt_news/res/rss_2.tmpl
xmlFormat = rss2
xmlTitle = Diapason
######xmlLink = https://chorus-diapason-preprod.finances.ader.gouv.fr/portail/
xmlDesc = Liste des flux
xmlLang = fr
title_stdWrap.htmlSpecialChars = 1
title_stdWrap.htmlSpecialChars.preserveEntities = 1
subheader_stdWrap.stripHtml = 1
subheader_stdWrap.htmlSpecialChars = 1
subheader_stdWrap.htmlSpecialChars.preserveEntities = 1
subheader_stdWrap.crop = 100 | … | 1
subheader_stdWrap.ifEmpty.field = bodytext
xmlLastBuildDate = 1
}
}
### CONFIGURATION GLOBALE
xmlevenements = PAGE
xmlevenements {
10 >
10
### Page de la vue Détaillée
singlePid = 17
defaultCode = XML
categoryMode = 1
catImageMode = 0
catTextMode = 0
}
config {
disableAllHeaderCode = 1
additionalHeaders = Content-type:text/xml
no_cache = 1
xhtml_cleaning = 0
}
}
### FLUX RSS Support Info
xmlevenement1 < xmlevenements
xmlevenement1 {
typeNum = 100
10.categoryMode=1
10.displayXML.xmlLink=https://chorus-diapason-preprod.finances.ader.gouv.fr/portail/support-info/detail-support-info/
10.displayXML.xmlDesc = DIAPASON – Support Info
### ID de la catégorie de la news
# 10.categorySelection = 9
### PID du dossier où sont stockées les news
10.pid_list = 122
}
### FLUX RSS Diapason (Général)
xmlevenement6
plugin.tt_news._CSS_DEFAULT_STYLE >
plugin.tt_news.allowCaching = 1
plugin.tt_news {
limit=10000
#general_stdWrap >
# VUE LISTING DES NEWS
displayList {
subheader_stdWrap.wrap = |
date_stdWrap.strftime= %d/%m/%y
image.imageLinkWrap = 0
imageWrapIfAny = |
}
displayLatest {
date_stdWrap.strftime= %d/%m/%y
image.imageLinkWrap = 0
imageWrapIfAny = |
}
# VUE DETAIL DES NEWS
displaySingle {
subheader_stdWrap.parseFunc
content_stdWrap.parseFunc < lib.parseFunc_RTE
linksItem_stdWrap.parseFunc
date_stdWrap.strftime= %d/%m/%y
image.imageLinkWrap = 0
imageWrapIfAny = |
}
displayLatest.linkTitleField.wrap = |
displaySingle.subheader_stdWrap >
displayLatest.title_stdWrap >
# Pagebrowser settings
pageBrowser {
maxPages = 10
showPBrowserText = 0
actPage_stdWrap.wrap = |
page_stdWrap.wrap =
}
_LOCAL_LANG.default {
pi_list_browseresults_prev =
pi_list_browseresults_next =
}
}
plugin.tt_news.recursive = 0
Dans l’instruction « xmlevenements », j’ai l’impression qu’il te manque une accolade après « 10″.
C’est le paramètre « singlePid » qui est important pour l’affichage de la vue détaillée de ta news. Vérifie qu’il soit bien rempli dans le TS Object Borwser.
De plus, je ne sais pas si c’est une erreur au niveau du c/c mais l’instruction « xmlevenement6″ n’est pas terminée.
Je viens de mettre en place plusieurs fils RSS dans mon typo3 et tout fonctionne correctement.
Merci pour cet article qui m’a été d’une grande aide.
J’ai un revanche un petit souci.
Le code XML n’a pas l’air de prendre en compte la valeur de plugin.tt_news.displayXML.xmlLlink que je déclare, ni même la baseurl déclarée dans mon template principal.
Le lien sur mes titres de news (dans mon flux) ne correspondent donc pas à ce que je souhaite…
Une idée pour personnaliser ce lien ?
Il semblerait que sur certaines versions de typo3 la ligne
« defaultCode = XML » ne fonctionne pas, il faut la remplacer par « code = XML »
Bonjour,
Je vous félicite pour ce post très intéressant. Je me demandais s’il était possible d’afficher le titre d’un contenu comme titre de flux ?
un truc du genre :
plugin.tt_news {
displayXML {
xmlTitle < DB:tt_content:10828:header
Si vous pouviez m'éclairer?
Je suis newbee dans typo3… J'ai effectué plusieurs tests sans compter les recherches et quelque chose doit surement m'échapper.
Merci