Skip to content
Extraits de code Groupes Projets
Valider 3c991809 rédigé par Fil's avatar Fil
Parcourir les fichiers

la syndication tip-top (esperons !)

parent e0f9e091
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -2,6 +2,10 @@ ...@@ -2,6 +2,10 @@
$fond = "backend"; $fond = "backend";
$delais = 3600; $delais = 3600;
// commentez cette ligne si vous preferez supprimer la production
// du texte complet (valable dans le fichier dist/backend.html)
$_GET['texte_complet'] = false;
include ("inc-public.php3"); include ("inc-public.php3");
?> ?>
<?php <?php
@header('Content-type: text/xml[; charset=(#CHARSET)]'); @header('Content-type: text/xml[; charset=(#CHARSET)]');
echo '<'.'?xml version="1.0" encoding="#CHARSET"?'.">\n"; echo '<'.'?xml version="1.0"[ encoding="(#CHARSET)"]?'.">\n";
?> ?>
<rss version="2.0" <rss version="2.0"
xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dc="http://purl.org/dc/elements/1.1/"
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<link>#URL_SITE_SPIP/</link> <link>#URL_SITE_SPIP/</link>
<description></description> <description></description>
<language>#LANG</language> <language>#LANG</language>
<generator url="http://www.spip.net">SPIP</generator> <generator>SPIP - www.spip.net</generator>
[ <image> [ <image>
<title>[(#NOM_SITE_SPIP|texte_backend)]</title> <title>[(#NOM_SITE_SPIP|texte_backend)]</title>
...@@ -22,6 +22,13 @@ ...@@ -22,6 +22,13 @@
[<width>(#LOGO_SITE_SPIP||extraire_attribut{width})</width>] [<width>(#LOGO_SITE_SPIP||extraire_attribut{width})</width>]
</image> </image>
] ]
[(#REM)
On diffuse la rubrique et les mots-cles a la mode RSS
] <BOUCLE_rubrique_rss(RUBRIQUES){id_rubrique}><category[ domain="(#URL_RUBRIQUE|url_absolue)"]>[(#TITRE|html_backend)]</category></BOUCLE_rubrique_rss>
<BOUCLE_mots_rss(MOTS){id_article}>
<dc:subject>[(#TITRE|html_backend)]</dc:subject></BOUCLE_mots_rss>
<BOUCLE_un_article(ARTICLES){id_article}> <BOUCLE_un_article(ARTICLES){id_article}>
<item> <item>
<title>[(#TITRE|supprimer_numero|texte_backend)]</title> <title>[(#TITRE|supprimer_numero|texte_backend)]</title>
...@@ -37,21 +44,20 @@ ...@@ -37,21 +44,20 @@
Le bloc qui suit diffuse la rubrique et les mots-cles Le bloc qui suit diffuse la rubrique et les mots-cles
sous forme de "microformats" sous forme de "microformats"
]<B_rubrique>- <BOUCLE_rubrique(RUBRIQUES){id_rubrique}> ]<BOUCLE_rubrique_mf(RUBRIQUES){id_rubrique}>-
&lt;a href="[(#URL_RUBRIQUE|url_absolue)]" rel="category"&gt;[(#TITRE|texte_backend)]&lt;/a&gt; &lt;a href="[(#URL_RUBRIQUE|url_absolue)]" rel="category"&gt;[(#TITRE|texte_backend)]&lt;/a&gt;
</BOUCLE_rubrique><B_mots> </BOUCLE_rubrique_mf><B_mots_mf>
- <BOUCLE_mots(MOTS){id_article}{", "}> / <BOUCLE_mots_mf(MOTS){id_article}{", "}>
&lt;a href="[(#URL_MOT|url_absolue)]" rel="tag"&gt;[(#TITRE|texte_backend)]&lt;/a&gt;</BOUCLE_mots> &lt;a href="[(#URL_MOT|url_absolue)]" rel="tag"&gt;[(#TITRE|texte_backend)]&lt;/a&gt;</BOUCLE_mots_mf>
</description> </description>
[(#REM) [(#REM)
Lorsque ce fichier backend est appele avec un parametre ?full=1, Le bloc qui suit diffuse aussi le texte integral de l'article,
il diffuse aussi le texte integral de l'article, ce qui permet une ce qui permet une syndication plus riche (mais plus "lourde").
syndication plus riche. Fonction desactivable en modifiant backend.php3
][
][(#ENV{full}|?{' ',''}) (#ENV{texte_complet}|?{' ',''})<content:encoded>[(#LOGO_ARTICLE|right||texte_backend)
<content:encoded>[(#LOGO_ARTICLE|right||texte_backend)
][&lt;div class='rss_chapo'&gt;(#CHAPO|texte_backend)&lt;/div&gt; ][&lt;div class='rss_chapo'&gt;(#CHAPO|texte_backend)&lt;/div&gt;
][&lt;div class='rss_texte'&gt;(#TEXTE|texte_backend)&lt;/div&gt; ][&lt;div class='rss_texte'&gt;(#TEXTE|texte_backend)&lt;/div&gt;
][&lt;hr /&gt; ][&lt;hr /&gt;
...@@ -62,8 +68,7 @@ ...@@ -62,8 +68,7 @@
[(#REM) [(#REM)
Le bloc qui suit diffuse l'adresse des documents associes aux articles ; Le bloc qui suit diffuse l'adresse des documents associes aux articles ;
ajouter par ex. {extension=mp3} pour limiter a un certain type de document. ajouter par ex. {extension=mp3} pour limiter a un certain type de document.
] ] <BOUCLE_podcast(DOCUMENTS){id_article}{mode=document}{doublons}>[
<BOUCLE_podcast(DOCUMENTS){id_article}{mode=document}{doublons}>[
<enclosure url="(#URL_DOCUMENT|url_absolue|unique)"[ length="(#TAILLE)"][ type="(#MIME_TYPE)"] />] <enclosure url="(#URL_DOCUMENT|url_absolue|unique)"[ length="(#TAILLE)"][ type="(#MIME_TYPE)"] />]
</BOUCLE_podcast> </BOUCLE_podcast>
......
...@@ -316,7 +316,7 @@ function ajouter_tags($matches, $item) { ...@@ -316,7 +316,7 @@ function ajouter_tags($matches, $item) {
include_ecrire('inc_filtres.php3'); include_ecrire('inc_filtres.php3');
$tags = array(); $tags = array();
foreach ($matches as $match) { foreach ($matches as $match) {
$type = $match[3]; $type = ($match[3] == 'category') ? 'category':'tag';
$mot = supprimer_tags($match[0]); $mot = supprimer_tags($match[0]);
if (!$mot) break; if (!$mot) break;
// rechercher un url // rechercher un url
...@@ -500,7 +500,13 @@ function analyser_backend($rss, $url_syndic='') { ...@@ -500,7 +500,13 @@ function analyser_backend($rss, $url_syndic='') {
',<(([a-z]+:)?(subject|category|keywords?|tags?))[^>]*>' ',<(([a-z]+:)?(subject|category|keywords?|tags?))[^>]*>'
.'(.*?)</\1>,ims', .'(.*?)</\1>,ims',
$item, $matches, PREG_SET_ORDER)) $item, $matches, PREG_SET_ORDER))
$data['tags'] = ajouter_tags($matches, $item); $tags = ajouter_tags($matches, $item); # array()
// Trouver les pieces jointes <enclosure> (RSS)
if (preg_match_all(',<enclosure[[:space:]][^<>]+>,i',
$item, $matches, PREG_PATTERN_ORDER))
$data['enclosures'] = join(', ',
array_map('enclosure2microformat', $matches[0]));
$data['item'] = $item; $data['item'] = $item;
...@@ -515,20 +521,16 @@ function analyser_backend($rss, $url_syndic='') { ...@@ -515,20 +521,16 @@ function analyser_backend($rss, $url_syndic='') {
if (preg_match_all( if (preg_match_all(
',<a[[:space:]]([^>]+[[:space:]])?rel=[^>]+>.*</a>,Uims', ',<a[[:space:]]([^>]+[[:space:]])?rel=[^>]+>.*</a>,Uims',
$data['item'], $regs, PREG_PATTERN_ORDER)) { $data['item'], $regs, PREG_PATTERN_ORDER)) {
$data['tags'] = $regs[0]; $tags = $regs[0];
} }
// Cas particulier : tags Connotea sous la forme <a class="postedtag"> // Cas particulier : tags Connotea sous la forme <a class="postedtag">
if (preg_match_all( if (preg_match_all(
',<a[[:space:]][^>]+ class="postedtag"[^>]*>.*</a>,Uims', ',<a[[:space:]][^>]+ class="postedtag"[^>]*>.*</a>,Uims',
$data['item'], $regs, PREG_PATTERN_ORDER)) $data['item'], $regs, PREG_PATTERN_ORDER))
$data['tags'] = preg_replace(', class="postedtag",i', $tags = preg_replace(', class="postedtag",i',
' rel="tag"', $regs[0]); ' rel="tag"', $regs[0]);
// Trouver les pieces jointes <enclosure> (RSS) $data['tags'] = $tags;
if (preg_match_all(',<enclosure[[:space:]][^<>]+>,i',
$item, $matches, PREG_PATTERN_ORDER))
$data['enclosures'] = join(', ',
array_map('enclosure2microformat', $matches[0]));
$articles[] = $data; $articles[] = $data;
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter