From a68549a44b01e79d39f849ab9586d9a1c28b4b38 Mon Sep 17 00:00:00 2001 From: Cerdic <cedric@yterium.com> Date: Sun, 26 Sep 2010 10:39:03 +0000 Subject: [PATCH] evacuer une exception de nommage dans les invalideurs en les normalisant sous la forme "objet/$id_objet" L'utilisation de objet_type() assure la retrocompatibilite avec les appels de la forme "id_article/23", le seul cas non suivi etant le "varia/pet23" qui doit etre remplace par deux invalideurs "signature/xxx" et "article/yyy" --- ecrire/action/editer_article.php | 2 +- ecrire/action/editer_auteur.php | 2 +- ecrire/action/editer_breve.php | 4 ++-- ecrire/action/editer_rubrique.php | 2 +- ecrire/action/instituer_langue_rubrique.php | 2 +- ecrire/action/joindre.php | 2 +- ecrire/action/supprimer.php | 2 +- ecrire/inc/invalideur.php | 14 +++++--------- ecrire/inc/modifier.php | 2 +- 9 files changed, 14 insertions(+), 18 deletions(-) diff --git a/ecrire/action/editer_article.php b/ecrire/action/editer_article.php index cf8dbd425c..e0c8301c14 100644 --- a/ecrire/action/editer_article.php +++ b/ecrire/action/editer_article.php @@ -240,7 +240,7 @@ function instituer_article($id_article, $c, $calcul_rub=true) { // Invalider les caches include_spip('inc/invalideur'); - suivre_invalideur("id='id_article/$id_article'"); + suivre_invalideur("id='article/$id_article'"); if ($date) { $t = strtotime($date); diff --git a/ecrire/action/editer_auteur.php b/ecrire/action/editer_auteur.php index 945ce4a73b..7126759f34 100644 --- a/ecrire/action/editer_auteur.php +++ b/ecrire/action/editer_auteur.php @@ -214,7 +214,7 @@ function instituer_auteur($id_auteur, $c, $force_webmestre = false) { // Invalider les caches include_spip('inc/invalideur'); - suivre_invalideur("id='id_auteur/$id_auteur'"); + suivre_invalideur("id='auteur/$id_auteur'"); // Pipeline pipeline('post_edition', diff --git a/ecrire/action/editer_breve.php b/ecrire/action/editer_breve.php index 7bdb3447c1..fa71ead252 100644 --- a/ecrire/action/editer_breve.php +++ b/ecrire/action/editer_breve.php @@ -121,7 +121,7 @@ function revisions_breves ($id_breve, $c=false) { // Si la breve est publiee, invalider les caches et demander sa reindexation $t = sql_getfetsel("statut", "spip_breves", "id_breve=$id_breve"); if ($t == 'publie') { - $invalideur = "id='id_breve/$id_breve'"; + $invalideur = "id='breve/$id_breve'"; $indexation = true; } @@ -180,7 +180,7 @@ function revisions_breves ($id_breve, $c=false) { // Invalider les caches include_spip('inc/invalideur'); - suivre_invalideur("id='id_breve/$id_breve'"); + suivre_invalideur("id='breve/$id_breve'"); // Au besoin, changer le statut des rubriques concernees include_spip('inc/rubriques'); diff --git a/ecrire/action/editer_rubrique.php b/ecrire/action/editer_rubrique.php index c9483eb703..9147cb0e38 100644 --- a/ecrire/action/editer_rubrique.php +++ b/ecrire/action/editer_rubrique.php @@ -110,7 +110,7 @@ function revisions_rubriques($id_rubrique, $c=false) { // invalider les caches marques de cette rubrique include_spip('inc/invalideur'); - suivre_invalideur("id='id_rubrique/$id_rubrique'"); + suivre_invalideur("id='rubrique/$id_rubrique'"); // et celui de menu_rubriques effacer_meta("date_calcul_rubriques"); diff --git a/ecrire/action/instituer_langue_rubrique.php b/ecrire/action/instituer_langue_rubrique.php index 72a74cffa5..183df933b7 100644 --- a/ecrire/action/instituer_langue_rubrique.php +++ b/ecrire/action/instituer_langue_rubrique.php @@ -40,7 +40,7 @@ function action_instituer_langue_rubrique_dist() { // invalider les caches marques de cette rubrique include_spip('inc/invalideur'); - suivre_invalideur("id='id_rubrique/$id_rubrique'"); + suivre_invalideur("id='rubrique/$id_rubrique'"); } } ?> diff --git a/ecrire/action/joindre.php b/ecrire/action/joindre.php index 9b69e27784..84313fd5e2 100644 --- a/ecrire/action/joindre.php +++ b/ecrire/action/joindre.php @@ -196,7 +196,7 @@ function joindre_documents($files, $mode, $type, $id, $id_document, $hash, $redi } // un invalideur a la hussarde qui doit marcher au moins pour article, breve, rubrique include_spip('inc/invalideur'); - suivre_invalideur("id='id_$type/$id'"); + suivre_invalideur("id='$type/$id'"); return $x; } diff --git a/ecrire/action/supprimer.php b/ecrire/action/supprimer.php index eabbe27726..3542226a95 100644 --- a/ecrire/action/supprimer.php +++ b/ecrire/action/supprimer.php @@ -60,7 +60,7 @@ function action_supprimer_rubrique($r) // invalider les caches marques de cette rubrique include_spip('inc/invalideur'); - suivre_invalideur("id='id_rubrique/$id_rubrique'"); + suivre_invalideur("id='rubrique/$id_rubrique'"); } ?> diff --git a/ecrire/inc/invalideur.php b/ecrire/inc/invalideur.php index e305ab5318..775f15c2a8 100644 --- a/ecrire/inc/invalideur.php +++ b/ecrire/inc/invalideur.php @@ -58,6 +58,8 @@ function taille_du_cache() { } // Invalider les caches lies a telle condition +// les invalideurs sont de la forme 'objet/id_objet' +// la condition est generalement "id='objet/id_objet'" // ici on se contente de noter la date de mise a jour dans les metas // http://doc.spip.org/@suivre_invalideur function suivre_invalideur($cond, $modif=true) { @@ -65,11 +67,8 @@ function suivre_invalideur($cond, $modif=true) { return; // determiner l'objet modifie : forum, article, etc - if (preg_match(',id_([a-z]+),', $cond, $r)) - $objet = $r[1]; - // cas particulier des signatures - else if (strpos($cond, 'varia/pet')) - $objet = 'signature'; + if (preg_match(',["\']([a-z_]+)[/"\'],', $cond, $r)) + $objet = objet_type($r[1]); // stocker la date_modif_$objet (ne sert a rien pour le moment) if (isset($objet)) @@ -85,7 +84,6 @@ function suivre_invalideur($cond, $modif=true) { else ecrire_meta('derniere_modif', time()); - } @@ -234,9 +232,7 @@ function supprime_invalideurs() { } // http://doc.spip.org/@maj_invalideurs function maj_invalideurs ($fichier, &$page) { } -// pour les forums l'invalideur est : 'id_forum/a23' -// pour les petitions et autres, l'invalideur est par exemple : -// 'varia/pet60' +// les invalideurs sont de la forme "objet/id_objet" // http://doc.spip.org/@insere_invalideur function insere_invalideur($inval, $fichier) { } diff --git a/ecrire/inc/modifier.php b/ecrire/inc/modifier.php index a671cb62bf..899555664b 100644 --- a/ecrire/inc/modifier.php +++ b/ecrire/inc/modifier.php @@ -238,7 +238,7 @@ function revision_article ($id_article, $c=false) { // Si l'article est publie, invalider les caches et demander sa reindexation $t = sql_getfetsel("statut", "spip_articles", "id_article=$id_article"); if ($t == 'publie') { - $invalideur = "id='id_article/$id_article'"; + $invalideur = "id='article/$id_article'"; $indexation = true; } -- GitLab