From d410dc93e197c6593240ee6a38a22d9f65fa1094 Mon Sep 17 00:00:00 2001 From: James <james@rezo.net> Date: Mon, 16 Oct 2006 18:29:11 +0000 Subject: [PATCH] =?UTF-8?q?balise=20#TOTAL=5FUNIQUE=20qui=20donne=20le=20n?= =?UTF-8?q?ombre=20d'=C3=A9l=C3=A9ments=20affich=C3=A9s=20effectivement=20?= =?UTF-8?q?via=20le=20filtre=20|unique.=20C'est=20'famille'-compatible=20:?= =?UTF-8?q?)=20(comprendre=20que=20le=20param=C3=A8tre=20du=20filtre=20fon?= =?UTF-8?q?ctionne=20=C3=A9videment=20avec=20la=20balise.)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Voilà , y a peut-être d'autres trucs à faire autour de ça, on en discute sur spip-dev si vous avez des idées. --- ecrire/inc/filtres.php | 7 +++++-- ecrire/public/balises.php | 16 ++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php index f7fb0f8618..1eae7409fe 100644 --- a/ecrire/inc/filtres.php +++ b/ecrire/inc/filtres.php @@ -1074,14 +1074,17 @@ function extraire_multi ($letexte) { // // Ce filtre retourne la donnee si c'est la premiere fois qu'il la voit ; // possibilite de gerer differentes "familles" de donnees |unique{famille} +# |unique{famille,1} affiche le nombre d'elements affiches (preferer toutefois #TOTAL_UNIQUE) # ameliorations possibles : # 1) si la donnee est grosse, mettre son md5 comme cle # 2) purger $mem quand on change de squelette (sinon bug inclusions) // // http://www.spip.net/@unique // http://doc.spip.org/@unique -function unique($donnee, $famille='') { +function unique($donnee, $famille='', $cpt = false) { static $mem; + if ($cpt) + return count($mem[$famille]); if (!($mem[$famille][$donnee]++)) return $donnee; } @@ -1709,4 +1712,4 @@ function concat(){ return $texte; } -?> +?> \ No newline at end of file diff --git a/ecrire/public/balises.php b/ecrire/public/balises.php index c39ddf6e84..b63ea4e655 100644 --- a/ecrire/public/balises.php +++ b/ecrire/public/balises.php @@ -1263,4 +1263,20 @@ function balise_PIPELINE_dist($p) { return $p; } +// +// #TOTAL_UNIQUE +// pour recuperer le nombre d'elements affiches par l'intermediaire du filtre +// |unique +// usage: +// #TOTAL_UNIQUE afiche le nombre de #BALISE|unique +// #TOTAL_UNIQUE{famille} afiche le nombre de #BALISE|unique{famille} +// +// http://doc.spip.org/@balise_TOTAL_UNIQUE_dist +function balise_TOTAL_UNIQUE_dist($p) { + $_famille = interprete_argument_balise(1,$p); + $_famille = $_famille ? $_famille : "''"; + $p->code = "unique('', $_famille, true)"; + return $p; +} + ?> \ No newline at end of file -- GitLab