super, ça va planter les sites de ceux qui installent les deux …
2009/4/24 booz <booz@rezo.net>
Author: booz@rezo.net
Date: Fri Apr 24 16:59:13 2009
New Revision: 28072Log:
plugin agregateurs sql, reprend la feature compteur du plugin bonux, a completer avec les autres type d’agregateurs sql http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.htmlAdded:
plugins/test/agregateurs_sql/
plugins/test/agregateurs_sql/plugin.xml
plugins/test/agregateurs_sql/public/
plugins/test/agregateurs_sql/public/agregateurs_sql_balises.php
plugins/test/agregateurs_sql/public/agregateurs_sql_criteres.phpAdded: plugins/test/agregateurs_sql/plugin.xml
— plugins/test/agregateurs_sql/plugin.xml (added)
+++ plugins/test/agregateurs_sql/plugin.xml Fri Apr 24 16:59:13 2009
@@ -0,0 +1,14 @@
+
- Agrégateurs sql
- Cedric Morin, BoOz
- (c) 2008 GPL
- 1.0
- test
- Ajout des critères d’agrégation dans le select sql : count(), sum(), max(), etc…
- public/agregateurs_sql_criteres.php
- public/agregateurs_sql_balises.php
- agregateurs_sql
+
Added: plugins/test/agregateurs_sql/public/agregateurs_sql_balises.php
— plugins/test/agregateurs_sql/public/agregateurs_sql_balises.php (added)
+++ plugins/test/agregateurs_sql/public/agregateurs_sql_balises.php Fri Apr 24 16:59:13 2009
@@ -0,0 +1,24 @@
+<?php
+/**
- D’apres le Plugin Spip-Bonux
- Le plugin qui lave plus SPIP que SPIP
- (c) 2008 Mathieu Marcillaud, Cedric Morin, Romy Tetue
- Licence GPL
- */
+/**
- Balise #COMPTEUR associee au critere compteur
- @param unknown_type $p
- @return unknown
- */
+function balise_COMPTEUR_dist($p) {- $p->code = ‹ ›;
- if (isset($p->param[0][1][0])
- AND $champ = ($p->param[0][1][0]->texte))
- return rindex_pile($p, « compteur_$champ », ‹ compteur ›);
- return $p;
+}+?>
\ No newline at end of fileAdded: plugins/test/agregateurs_sql/public/agregateurs_sql_criteres.php
— plugins/test/agregateurs_sql/public/agregateurs_sql_criteres.php (added)
+++ plugins/test/agregateurs_sql/public/agregateurs_sql_criteres.php Fri Apr 24 16:59:13 2009
@@ -0,0 +1,53 @@
+<?php
+/**
- Permet de faire un comptage par table liee
- exemple
- <BOUCLE1(AUTEURS){compteur articles}{par compteur_articles}>
- #ID_AUTEUR : #COMPTEUR{articles}
- pour avoir les auteurs classes par articles et le nombre d’article de chacun
- @param unknown_type $idb
- @param unknown_type $boucles
- @param unknown_type $crit
- */
+function critere_compteur($idb, &$boucles, $crit){- $boucle = &$boucles[$idb];
- $_fusion = calculer_liste($crit->param[1], array(), $boucles, $boucle->id_parent);
- $params = $crit->param;
- $table = reset($params);
- $table = $table[0]->texte;
- if(preg_match(‹ ,^(\w+)([<>=])([0-9]+)$, ›,$table,$r)){
- $table=$r[1];
- $op=$r[2];
- $op_val=$r[3];
- }
- $type = objet_type($table);
- $type_id = id_table_objet($type);
- $table_sql = table_objet_sql($type);
- $trouver_table = charger_fonction(‹ trouver_table ›,‹ base ›);
- $arrivee = array($table, $trouver_table($table, $boucle->sql_serveur));
- $depart = array($boucle->id_table,$trouver_table($boucle->id_table, $boucle->sql_serveur));
- if ($compt = calculer_jointure($boucle,$depart,$arrivee)){
- if ($_fusion!=« ‹ › »){
- // en cas de jointure, on ne veut pas du group_by sur la cle primaire !
- // cela casse le compteur !
- foreach($boucle->group as $k=>$group)
- if ($group == $boucle->id_table.‹ . ›.$boucle->primary)
- unset($boucle->group[$k]);
- $boucle->group = ‹ ".($gb= ›.$_fusion.‹ )." ›;
- }
- $boucle->select= « COUNT($compt.$type_id) AS compteur_$table »;
- if ($op)
- $boucle->having= array(« ' ».$op.« ' », « 'compteur_ ».$table.« ' »,$op_val);
- }
+}+?>
\ No newline at end of file
Spip-zone-commit@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone-commit