From 3c991809eed893c2ba6718c05c421ddb81f752bf Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Fri, 21 Oct 2005 21:03:31 +0000 Subject: [PATCH] la syndication tip-top (esperons !) --- backend.php3 | 4 ++++ dist/backend.html | 33 +++++++++++++++++++-------------- ecrire/inc_sites.php3 | 20 +++++++++++--------- 3 files changed, 34 insertions(+), 23 deletions(-) diff --git a/backend.php3 b/backend.php3 index 3554d7118c..2bdac9cb93 100644 --- a/backend.php3 +++ b/backend.php3 @@ -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"); ?> diff --git a/dist/backend.html b/dist/backend.html index 3f90901998..c3d6fc638f 100644 --- a/dist/backend.html +++ b/dist/backend.html @@ -1,6 +1,6 @@ <?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}>- <a href="[(#URL_RUBRIQUE|url_absolue)]" rel="category">[(#TITRE|texte_backend)]</a> -</BOUCLE_rubrique><B_mots> -- <BOUCLE_mots(MOTS){id_article}{", "}> -<a href="[(#URL_MOT|url_absolue)]" rel="tag">[(#TITRE|texte_backend)]</a></BOUCLE_mots> +</BOUCLE_rubrique_mf><B_mots_mf> +/ <BOUCLE_mots_mf(MOTS){id_article}{", "}> +<a href="[(#URL_MOT|url_absolue)]" rel="tag">[(#TITRE|texte_backend)]</a></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) ][<div class='rss_chapo'>(#CHAPO|texte_backend)</div> ][<div class='rss_texte'>(#TEXTE|texte_backend)</div> ][<hr /> @@ -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> diff --git a/ecrire/inc_sites.php3 b/ecrire/inc_sites.php3 index 4805d4c8df..372fb5c75d 100644 --- a/ecrire/inc_sites.php3 +++ b/ecrire/inc_sites.php3 @@ -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; } -- GitLab