Changeset 32132 in spip-zone


Ignore:
Timestamp:
Oct 14, 2009, 11:52:03 PM (11 years ago)
Author:
booz@…
Message:

doc avec exemples des balises #EXPRESSION et #SUM

Location:
_plugins_/agregateurs_sql
Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/agregateurs_sql/doc.txt

    r32005 r32132  
    3232moyenne : #MOYENNE{id_article},
    3333minimum : #MINIMUM{id_article},
    34 maximum : #MAXIMUM{id_article}<br />
     34maximum : #MAXIMUM{id_article}
     35
    3536</BOUCLE_articles>
    3637
     
    4142moyenne : #STATS{id_article,moyenne},
    4243minimum : #STATS{id_article,minimum},
    43 maximum : #STATS{id_article,maximum}<br />
     44maximum : #STATS{id_article,maximum}
    4445</BOUCLE_articles2>
    4546
    4647En test aussi, une autre possibilité : {stats champ} qui les calcule tous, mais récupérable par #STATS{champ, somme} (echec pour le moment de pouvoir utiliser les #SOMME{champ} et consoeur avec ...)
    4748
     49Proposition Renato, sans critère
    4850
     51<?php
     52
     53function balise_SUM($p) {
     54  $t = $p->param[0][1][0]->texte;
     55  $p->param[0][1][0]->texte = "SUM($t)";
     56  $p->param[0][2][0]->texte = "sum_$t";
     57  return balise_EXPRESSION($p);
     58}
     59
     60function balise_EXPRESSION($p) {
     61  static $num = 1;
     62        $b = $p->nom_boucle ? $p->nom_boucle : $p->descr['id_mere'];
     63        if ($b === '' || !isset($p->boucles[$b])) {
     64                erreur_squelette(
     65                        _T('zbug_champ_hors_boucle',
     66                                array('champ' => "#$b" . 'EXPRESSION')
     67                        ), $p->id_boucle);
     68                $p->code = "''";
     69        } else {
     70        if (isset($p->param[0][1][0])
     71        AND $champ = ($p->param[0][1][0]->texte)
     72    ) {
     73                if(isset($p->param[0][2][0]) AND $p->param[0][2][0]->texte)
     74        $alias = $p->param[0][2][0]->texte;
     75      else {
     76        $alias = "expr_$num";
     77        $num++;
     78      }
     79      $p->code = "\$Pile[\$SP]['$alias']";
     80                $p->boucles[$b]->select[] = "$champ as $alias";
     81                $p->interdire_scripts = true;
     82        }
     83        }
     84        return $p;
     85}
     86
     87?>
     88
     89<BOUCLE_art(ARTICLES){fusion id_rubrique}>
     90[(#SUM{id_article})]
     91</BOUCLE_art>
     92
     93<BOUCLE_art(ARTICLES)>
     94[(#EXPRESSION{CASE id_article WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END})]<br />
     95</BOUCLE_art>
     96
     97http://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.html
Note: See TracChangeset for help on using the changeset viewer.