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 @@
$fond = "backend";
$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");
?>
<?php
@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"
xmlns:dc="http://purl.org/dc/elements/1.1/"
......@@ -12,7 +12,7 @@
<link>#URL_SITE_SPIP/</link>
<description></description>
<language>#LANG</language>
<generator url="http://www.spip.net">SPIP</generator>
<generator>SPIP - www.spip.net</generator>
[ <image>
<title>[(#NOM_SITE_SPIP|texte_backend)]</title>
......@@ -22,6 +22,13 @@
[<width>(#LOGO_SITE_SPIP||extraire_attribut{width})</width>]
</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}>
<item>
<title>[(#TITRE|supprimer_numero|texte_backend)]</title>
......@@ -37,21 +44,20 @@
Le bloc qui suit diffuse la rubrique et les mots-cles
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;
</BOUCLE_rubrique><B_mots>
- <BOUCLE_mots(MOTS){id_article}{", "}>
&lt;a href="[(#URL_MOT|url_absolue)]" rel="tag"&gt;[(#TITRE|texte_backend)]&lt;/a&gt;</BOUCLE_mots>
</BOUCLE_rubrique_mf><B_mots_mf>
/ <BOUCLE_mots_mf(MOTS){id_article}{", "}>
&lt;a href="[(#URL_MOT|url_absolue)]" rel="tag"&gt;[(#TITRE|texte_backend)]&lt;/a&gt;</BOUCLE_mots_mf>
</description>
[(#REM)
Lorsque ce fichier backend est appele avec un parametre ?full=1,
il diffuse aussi le texte integral de l'article, ce qui permet une
syndication plus riche.
][(#ENV{full}|?{' ',''})
<content:encoded>[(#LOGO_ARTICLE|right||texte_backend)
Le bloc qui suit diffuse aussi le texte integral de l'article,
ce qui permet une syndication plus riche (mais plus "lourde").
Fonction desactivable en modifiant backend.php3
][
(#ENV{texte_complet}|?{' ',''})<content:encoded>[(#LOGO_ARTICLE|right||texte_backend)
][&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;hr /&gt;
......@@ -62,8 +68,7 @@
[(#REM)
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.
]
<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)"] />]
</BOUCLE_podcast>
......
......@@ -316,7 +316,7 @@ function ajouter_tags($matches, $item) {
include_ecrire('inc_filtres.php3');
$tags = array();
foreach ($matches as $match) {
$type = $match[3];
$type = ($match[3] == 'category') ? 'category':'tag';
$mot = supprimer_tags($match[0]);
if (!$mot) break;
// rechercher un url
......@@ -500,7 +500,13 @@ function analyser_backend($rss, $url_syndic='') {
',<(([a-z]+:)?(subject|category|keywords?|tags?))[^>]*>'
.'(.*?)</\1>,ims',
$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;
......@@ -515,20 +521,16 @@ function analyser_backend($rss, $url_syndic='') {
if (preg_match_all(
',<a[[:space:]]([^>]+[[:space:]])?rel=[^>]+>.*</a>,Uims',
$data['item'], $regs, PREG_PATTERN_ORDER)) {
$data['tags'] = $regs[0];
$tags = $regs[0];
}
// Cas particulier : tags Connotea sous la forme <a class="postedtag">
if (preg_match_all(
',<a[[:space:]][^>]+ class="postedtag"[^>]*>.*</a>,Uims',
$data['item'], $regs, PREG_PATTERN_ORDER))
$data['tags'] = preg_replace(', class="postedtag",i',
$tags = preg_replace(', class="postedtag",i',
' rel="tag"', $regs[0]);
// 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['tags'] = $tags;
$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