From 9645e3c3c6982c45b289dd3a56d9f2b2aff961e5 Mon Sep 17 00:00:00 2001 From: "Committo,Ergo:sum" <esj@rezo.net> Date: Mon, 25 Aug 2008 22:06:31 +0000 Subject: [PATCH] =?UTF-8?q?Introduction=20dans=20les=20squelettes=20{{{pri?= =?UTF-8?q?ve/rss}}}=20du=20contr=C3=B4le=20de=20s=C3=A9curit=C3=A9,=20et?= =?UTF-8?q?=20changement=20des=20liens=20des=20boutons=20donnant=20un=20fl?= =?UTF-8?q?ux=20RSS=20priv=C3=A9=20qui=20appellent=20=C3=A0=20pr=C3=A9sent?= =?UTF-8?q?=20directement=20un=20squelette=20({{{prive/rss.html}}}),=20et?= =?UTF-8?q?=20non=20plus=20le=20script=20{{{action/rss.php}}}.=20R=C3=A9?= =?UTF-8?q?=C3=A9criture=20de=20celui-ci,=20qui=20accepte=20toujours=20les?= =?UTF-8?q?=20anciens=20liens=20et=20leur=20communique=20le=20r=C3=A9sulta?= =?UTF-8?q?t=20attendu=20malgr=C3=A9=20ces=20changements,=20au=20prix=20d'?= =?UTF-8?q?un=20deuxi=C3=A8me=20contr=C3=B4le=20de=20s=C3=A9curit=C3=A9.?= =?UTF-8?q?=20Mais=20il=20faudrait=20=C3=A9vacuer=20compl=C3=A8tement=20ce?= =?UTF-8?q?=20script=20et=20retourner=20une=20redirection=20d=C3=A9finitiv?= =?UTF-8?q?e,=20pas=20triviale=20car=20le=20hash=20n'est=20pas=20le=20m?= =?UTF-8?q?=C3=AAme=20entre=20les=20deux=20versions.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitattributes | 1 + ecrire/action/rss.php | 13 +++++++++---- ecrire/exec/accueil.php | 2 +- ecrire/inc/acces.php | 13 +++++++------ ecrire/public/parametrer.php | 2 +- prive/rss.html | 1 + prive/rss/a_suivre.html | 11 +++++++++-- prive/rss/forums.html | 11 +++++++++-- prive/rss/forums_interne.html | 11 +++++++++-- prive/rss/forums_prop.html | 11 +++++++++-- prive/rss/forums_public.html | 11 +++++++++-- prive/rss/forums_spam.html | 11 +++++++++-- prive/rss/forums_vide.html | 11 +++++++++-- prive/rss/messagerie.html | 10 ++++++++-- prive/rss/revisions.html | 10 ++++++++-- prive/rss/signatures.html | 14 ++++++++++---- 16 files changed, 109 insertions(+), 34 deletions(-) create mode 100644 prive/rss.html diff --git a/.gitattributes b/.gitattributes index 5a9eb4c356..ceea1bfe8b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -765,6 +765,7 @@ prive/modeles/text.html -text prive/modeles/video.html -text prive/puce_prive.gif -text prive/puce_prive_rtl.gif -text +prive/rss.html -text prive/rss/a_suivre.html -text prive/rss/forums.html -text prive/rss/forums_interne.html -text diff --git a/ecrire/action/rss.php b/ecrire/action/rss.php index 8bd3080248..c865add26c 100644 --- a/ecrire/action/rss.php +++ b/ecrire/action/rss.php @@ -12,6 +12,9 @@ if (!defined("_ECRIRE_INC_VERSION")) return; +// Ce script n'est plus utile qu'a la compatibilite avec les liens +// produits par l'ancienne definition de bouton_spip_rss + include_spip('inc/acces'); include_spip('inc/texte'); // utile pour l'espace public, deja fait sinon @@ -38,18 +41,20 @@ function action_rss_dist() if (verifier_low_sec($id, $cle, "rss $op $args")) { lang_select($lang); $op = str_replace('-', '_', $op); - $contexte = array('fond' => 'prive/rss/' . $op); - foreach (split(':', $args) as $bout) { + $contexte = $_REQUEST; + $contexte['cle'] = afficher_low_sec($id, $op, $args); + $contexte['fond'] = 'prive/rss/' . $op; + foreach (split(':', $args) as $bout) { list($var, $val) = split('-', $bout, 2); $contexte[$var] = $val; - } + } $f = charger_fonction($op, 'rss', true); if ($f) $contexte = $f($contexte); } else $contexte = ''; if ($contexte) { $r = evaluer_fond ('', $contexte); echo $r['texte']; - $message ="spip_rss s'applique sur " . $contexte['fond'] . " et $args pour $id par $f"; + $message ="spip_rss s'applique sur " . $contexte['fond'] . " et $args pour $id par $f cle " . $contexte['cle']; } else $message = ("spip_rss sur '$op $args pour $id' incorrect"); spip_log("$message (" . spip_timer('rss') .')'); exit; diff --git a/ecrire/exec/accueil.php b/ecrire/exec/accueil.php index 26df58244e..0f2d32873e 100644 --- a/ecrire/exec/accueil.php +++ b/ecrire/exec/accueil.php @@ -87,7 +87,7 @@ function encours_accueil() : '' ) ) . $res - . bouton_spip_rss('a-suivre') + . bouton_spip_rss('a_suivre') . fin_cadre_couleur_foncee(true) . "</div>"; } diff --git a/ecrire/inc/acces.php b/ecrire/inc/acces.php index 9756bf1782..5ae1da1529 100644 --- a/ecrire/inc/acces.php +++ b/ecrire/inc/acces.php @@ -99,6 +99,7 @@ function low_sec($id_auteur) { // Inclure les arguments significatifs pour le hachage // cas particulier du statut pour compatibilite ancien suivi_revisions // http://doc.spip.org/@generer_url_low_sec + function generer_url_low_sec($action, $args, $id_auteur=0, $lang='') { $a = ''; @@ -111,18 +112,18 @@ function generer_url_low_sec($action, $args, $id_auteur=0, $lang='') } $a = substr($a,1); } - $cle = afficher_low_sec($id_auteur, "rss $action $a"); - return generer_url_action('rss', "$b&cle=$cle&args=$a"); + $cle = afficher_low_sec($id_auteur, $action, $a); + return generer_url_public("rss", "$b&cle=$cle&args=$a"); } // http://doc.spip.org/@afficher_low_sec -function afficher_low_sec ($id_auteur, $action='') { - return substr(md5($action.low_sec($id_auteur)),0,8); +function afficher_low_sec ($id_auteur, $action='', $args='') { + return substr(md5($action.$args.low_sec($id_auteur)),0,8); } // http://doc.spip.org/@verifier_low_sec -function verifier_low_sec ($id_auteur, $cle, $action='') { - return ($cle == afficher_low_sec($id_auteur, $action)); +function verifier_low_sec ($id_auteur, $cle, $action='', $args='') { + return ($cle == afficher_low_sec($id_auteur, $action, $args)); } // http://doc.spip.org/@effacer_low_sec diff --git a/ecrire/public/parametrer.php b/ecrire/public/parametrer.php index ee47db2dfd..72837c4077 100644 --- a/ecrire/public/parametrer.php +++ b/ecrire/public/parametrer.php @@ -16,8 +16,8 @@ if (!defined("_ECRIRE_INC_VERSION")) return; // Ce fichier calcule une page en executant un squelette. // -include_spip('base/abstract_sql'); include_spip('inc/lang'); +include_spip('inc/acces'); // NB: Ce fichier peut initialiser $dossier_squelettes (old-style) // donc il faut l'inclure "en globals" diff --git a/prive/rss.html b/prive/rss.html new file mode 100644 index 0000000000..b90a1f803f --- /dev/null +++ b/prive/rss.html @@ -0,0 +1 @@ +#HTTP_HEADER{Content-Type: text/xml; charset=#CHARSET}<INCLURE{fond=prive/rss/#ENV{op}}{env}> \ No newline at end of file diff --git a/prive/rss/a_suivre.html b/prive/rss/a_suivre.html index 86f4304681..c48dfd2b31 100644 --- a/prive/rss/a_suivre.html +++ b/prive/rss/a_suivre.html @@ -1,4 +1,6 @@ -#HTTP_HEADER{Content-Type: text/xml; charset=#CHARSET}<?xml version="1.0" encoding="#CHARSET" ?> +#HTTP_HEADER{Content-Type: text/xml; charset=#CHARSET}#CACHE{900}<BOUCLE0(AUTEURS){tout}{id_auteur=#ENV{id}}{lang_select}><?php +if ([(#ID_AUTEUR|verifier_low_sec{#ENV{cle}, #ENV{op}, #ENV{args}}|?{1,0})]) { +?><?xml version="1.0" encoding="#CHARSET" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0"> <channel xml:lang="#LANG"> @@ -48,4 +50,9 @@ rsort($rss); echo join('',$rss); ?> </channel> -</rss> +</rss><?php +} else { +include_spip('inc/minipres'); +echo minipres(); +}?></BOUCLE0> + diff --git a/prive/rss/forums.html b/prive/rss/forums.html index 325f613888..b99aa92c0c 100644 --- a/prive/rss/forums.html +++ b/prive/rss/forums.html @@ -1,4 +1,6 @@ -#HTTP_HEADER{Content-Type: text/xml; charset=#CHARSET}<?xml version="1.0" encoding="#CHARSET" ?> +#HTTP_HEADER{Content-Type: text/xml; charset=#CHARSET}#CACHE{900}<BOUCLE0(AUTEURS){tout}{id_auteur=#ENV{id}}{lang_select}><?php +if ([(#ID_AUTEUR|verifier_low_sec{#ENV{cle}, #ENV{op}, #ENV{args}}|?{1,0})]) { +?><?xml version="1.0" encoding="#CHARSET" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0"> <channel xml:lang="[(#ENV{lang}|texte_backend)]"> @@ -21,4 +23,9 @@ <description>[ (#TEXTE|liens_absolus|texte_backend)]#NOTES</description> </item></BOUCLE_RSS> </channel> -</rss> +</rss><?php +} else { +include_spip('inc/minipres'); +echo minipres(); +}?></BOUCLE0> + diff --git a/prive/rss/forums_interne.html b/prive/rss/forums_interne.html index e524e84ba0..ba236ffc63 100644 --- a/prive/rss/forums_interne.html +++ b/prive/rss/forums_interne.html @@ -1,4 +1,6 @@ -#HTTP_HEADER{Content-Type: text/xml; charset=#CHARSET}<?xml version="1.0" encoding="#CHARSET" ?> +#HTTP_HEADER{Content-Type: text/xml; charset=#CHARSET}#CACHE{900}<BOUCLE0(AUTEURS){tout}{id_auteur=#ENV{id}}{lang_select}><?php +if ([(#ID_AUTEUR|verifier_low_sec{#ENV{cle}, #ENV{op}, #ENV{args}}|?{1,0})]) { +?><?xml version="1.0" encoding="#CHARSET" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0"> <channel xml:lang="[(#ENV{lang}|texte_backend)]"> @@ -21,4 +23,9 @@ <description>[ (#TEXTE|liens_absolus|texte_backend)]#NOTES</description> </item></BOUCLE_RSS> </channel> -</rss> +</rss><?php +} else { +include_spip('inc/minipres'); +echo minipres(); +}?></BOUCLE0> + diff --git a/prive/rss/forums_prop.html b/prive/rss/forums_prop.html index 0e2079e140..f67cf6a5e4 100644 --- a/prive/rss/forums_prop.html +++ b/prive/rss/forums_prop.html @@ -1,4 +1,6 @@ -#HTTP_HEADER{Content-Type: text/xml; charset=#CHARSET}<?xml version="1.0" encoding="#CHARSET" ?> +#HTTP_HEADER{Content-Type: text/xml; charset=#CHARSET}#CACHE{900}<BOUCLE0(AUTEURS){tout}{id_auteur=#ENV{id}}{lang_select}><?php +if ([(#ID_AUTEUR|verifier_low_sec{#ENV{cle}, #ENV{op}, #ENV{args}}|?{1,0})]) { +?><?xml version="1.0" encoding="#CHARSET" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0"> <channel xml:lang="[(#ENV{lang}|texte_backend)]"> @@ -21,4 +23,9 @@ <description>[ (#TEXTE|liens_absolus|texte_backend)]#NOTES</description> </item></BOUCLE_RSS> </channel> -</rss> +</rss><?php +} else { +include_spip('inc/minipres'); +echo minipres(); +}?></BOUCLE0> + diff --git a/prive/rss/forums_public.html b/prive/rss/forums_public.html index 491954710e..07b744e9e2 100644 --- a/prive/rss/forums_public.html +++ b/prive/rss/forums_public.html @@ -1,4 +1,6 @@ -#HTTP_HEADER{Content-Type: text/xml; charset=#CHARSET}<?xml version="1.0" encoding="#CHARSET" ?> +#HTTP_HEADER{Content-Type: text/xml; charset=#CHARSET}#CACHE{900}<BOUCLE0(AUTEURS){tout}{id_auteur=#ENV{id}}{lang_select}><?php +if ([(#ID_AUTEUR|verifier_low_sec{#ENV{cle}, #ENV{op}, #ENV{args}}|?{1,0})]) { +?><?xml version="1.0" encoding="#CHARSET" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0"> <channel xml:lang="[(#ENV{lang}|texte_backend)]"> @@ -21,4 +23,9 @@ <description>[ (#TEXTE|liens_absolus|texte_backend)]#NOTES</description> </item></BOUCLE_RSS> </channel> -</rss> +</rss><?php +} else { +include_spip('inc/minipres'); +echo minipres(); +}?></BOUCLE0> + diff --git a/prive/rss/forums_spam.html b/prive/rss/forums_spam.html index 1587a8e64d..6f0076461d 100644 --- a/prive/rss/forums_spam.html +++ b/prive/rss/forums_spam.html @@ -1,4 +1,6 @@ -#HTTP_HEADER{Content-Type: text/xml; charset=#CHARSET}<?xml version="1.0" encoding="#CHARSET" ?> +#HTTP_HEADER{Content-Type: text/xml; charset=#CHARSET}#CACHE{900}<BOUCLE0(AUTEURS){tout}{id_auteur=#ENV{id}}{lang_select}><?php +if ([(#ID_AUTEUR|verifier_low_sec{#ENV{cle}, #ENV{op}, #ENV{args}}|?{1,0})]) { +?><?xml version="1.0" encoding="#CHARSET" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0"> <channel xml:lang="[(#ENV{lang}|texte_backend)]"> @@ -21,4 +23,9 @@ <description>[ (#TEXTE|liens_absolus|texte_backend)]#NOTES</description> </item></BOUCLE_RSS> </channel> -</rss> +</rss><?php +} else { +include_spip('inc/minipres'); +echo minipres(); +}?></BOUCLE0> + diff --git a/prive/rss/forums_vide.html b/prive/rss/forums_vide.html index ca51260cda..25f61a6469 100644 --- a/prive/rss/forums_vide.html +++ b/prive/rss/forums_vide.html @@ -1,4 +1,6 @@ -#HTTP_HEADER{Content-Type: text/xml; charset=#CHARSET}<?xml version="1.0" encoding="#CHARSET" ?> +#HTTP_HEADER{Content-Type: text/xml; charset=#CHARSET}#CACHE{900}<BOUCLE0(AUTEURS){tout}{id_auteur=#ENV{id}}{lang_select}><?php +if ([(#ID_AUTEUR|verifier_low_sec{#ENV{cle}, #ENV{op}, #ENV{args}}|?{1,0})]) { +?><?xml version="1.0" encoding="#CHARSET" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0"> <channel xml:lang="[(#ENV{lang}|texte_backend)]"> @@ -21,4 +23,9 @@ <description>[ (#TEXTE|liens_absolus|texte_backend)]#NOTES</description> </item></BOUCLE_RSS> </channel> -</rss> +</rss><?php +} else { +include_spip('inc/minipres'); +echo minipres(); +}?></BOUCLE0> + diff --git a/prive/rss/messagerie.html b/prive/rss/messagerie.html index 57ccd747d5..a5a5bbff36 100644 --- a/prive/rss/messagerie.html +++ b/prive/rss/messagerie.html @@ -1,4 +1,6 @@ -#HTTP_HEADER{Content-Type: text/xml; charset=#CHARSET}<?xml version="1.0" encoding="#CHARSET" ?> +#HTTP_HEADER{Content-Type: text/xml; charset=#CHARSET}#CACHE{900}<BOUCLE0(AUTEURS){tout}{id_auteur=#ENV{id}}{lang_select}><?php +if ([(#ID_AUTEUR|verifier_low_sec{#ENV{cle}, #ENV{op}, #ENV{args}}|?{1,0})]) { +?><?xml version="1.0" encoding="#CHARSET" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0"> <channel xml:lang="#LANG"> @@ -39,4 +41,8 @@ rsort($rss); echo join('',$rss); ?> </channel> -</rss> +</rss><?php +} else { +include_spip('inc/minipres'); +echo minipres(); +}?></BOUCLE0> diff --git a/prive/rss/revisions.html b/prive/rss/revisions.html index eb237af41e..cdbbad3f78 100644 --- a/prive/rss/revisions.html +++ b/prive/rss/revisions.html @@ -1,4 +1,6 @@ -#HTTP_HEADER{Content-Type: text/xml; charset=#CHARSET}<?xml version="1.0" encoding="#CHARSET" ?> +#HTTP_HEADER{Content-Type: text/xml; charset=#CHARSET}#CACHE{900}<BOUCLE0(AUTEURS){tout}{id_auteur=#ENV{id}}{lang_select}><?php +if ([(#ID_AUTEUR|verifier_low_sec{#ENV{cle}, #ENV{op}, #ENV{args}}|?{1,0})]) { +?><?xml version="1.0" encoding="#CHARSET" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0"> <channel xml:lang="[(#ENV{lang}|texte_backend)]"> @@ -18,4 +20,8 @@ <description>[(#ID_ARTICLE|revisions_diff{#ID_VERSION})]</description> </item></BOUCLE_RSS> </channel> -</rss> +</rss><?php +} else { +include_spip('inc/minipres'); +echo minipres(); +}?></BOUCLE0> diff --git a/prive/rss/signatures.html b/prive/rss/signatures.html index 5438834ff9..6edb5ea3a9 100644 --- a/prive/rss/signatures.html +++ b/prive/rss/signatures.html @@ -1,4 +1,6 @@ -#HTTP_HEADER{Content-Type: text/xml; charset=#CHARSET}<?xml version="1.0" encoding="#CHARSET" ?> +#HTTP_HEADER{Content-Type: text/xml; charset=#CHARSET}#CACHE{900}<BOUCLE0(AUTEURS){tout}{id_auteur=#ENV{id}}{lang_select}><?php +if ([(#ID_AUTEUR|verifier_low_sec{#ENV{cle}, #ENV{op}, #ENV{args}}|?{1,0})]) { +?><?xml version="1.0" encoding="#CHARSET" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0"> <channel xml:lang="[(#ENV{lang}|texte_backend)]"> @@ -7,7 +9,7 @@ <description></description> <language>[(#ENV{lang}|texte_backend)]</language> <BOUCLE_RSS(SIGNATURES){!par date}{0,50} - ><BOUCLE0(ARTICLES){id_article}> + ><BOUCLE_A(ARTICLES){id_article}> <item> <title>[(#TITRE|texte_backend)]</title> <link>[(#URL_ARTICLE|url_absolue|texte_backend)]</link> @@ -17,6 +19,10 @@ [<dc:language>(#LANG|texte_backend)</dc:language>] <dc:creator>[(#NOM_EMAIL|texte_backend)][ <(#EMAIL|texte_backend)>]</dc:creator> <description>[(#_RSS:URL_SITE|propre|liens_absolus)][ (#MESSAGE|couper{300}|liens_absolus|texte_backend)]</description> - </item></BOUCLE0></BOUCLE_RSS> + </item></BOUCLE_A></BOUCLE_RSS> </channel> -</rss> +</rss><?php +} else { +include_spip('inc/minipres'); +echo minipres(); +}?></BOUCLE0> -- GitLab