Changeset 43241 in spip-zone


Ignore:
Timestamp:
Dec 29, 2010, 11:01:58 PM (10 years ago)
Author:
fil@…
Message:

le critere {tableau x} de la boucle POUR n'avait pas de signe = (et tant mieux) + demo de POUR meme si on preferera la notation DATA

Location:
_plugins_/iterateurs
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/iterateurs/demo/iterateurs.html

    r43219 r43241  
    11#CACHE{0}
     2<html>
     3<head>
     4<title>D&#233;mo des it&#233;rateurs[: (#ENV{demo})]</title>
     5
     6</head>
     7
     8<body>
     9
    210<div style="width:200px;float:right;border-left:solid gray 3px;">
    311
    412<h1>It&#233;rateurs</h1>
    513
     14
     15<BOUCLE_chemin(DATA){datasource #EVAL{_chemin()},table}{par valeur}>
     16
     17<B_demos>
     18<h2>[(#VALEUR|basename)]</h2>
    619<ul>
    720
    8 <BOUCLE_chemin(DATA){datasource #EVAL{_chemin()},table}>
    921<BOUCLE_demos(DATA){datasource #VALEURdemo/iter_*.html,glob}>
    1022
    1123<li><a href="spip.php?page=demo/iterateurs&amp;demo=[(#VALEUR
    12         |basename{.html})]">[(#VALEUR|basename{.html})]</a></li>
     24        |basename{.html})]">[(#VALEUR|basename{.html}
     25        |replace{^iter_}|replace{_,': '})]</a></li>
    1326
    1427</BOUCLE_demos>
     28</ul>
     29</B_demos>
     30
    1531</BOUCLE_chemin>
    1632
    17 </ul>
    1833</div>
    1934
     
    3348
    3449
     50</body>
     51</html>
  • _plugins_/iterateurs/iterateur/data.php

    r43209 r43241  
    116116
    117117        protected function select($command) {
    118                 // les commandes connues pour l'iterateur POUR
    119                 // sont : tableau=#ARRAY ; cle=...; valeur=...
     118                // les commandes connues pour l'iterateur POUR/DATA
     119                // sont : {tableau #ARRAY} ; cle=...; valeur=...
    120120                // source URL
    121121                if (isset($this->command['source'])
     
    203203                }
    204204
    205                 // recuperer le critere {tableau=xxx} pour compat ascendante
    206                 // boucle POUR ; methode pas tres propre, depreciee par {table XX}
    207                 if (is_array($this->command['where'])) {
    208                         foreach ($this->command['where'] as $k => $com) {
    209                                 if ($com[1] === 'tableau') {
    210                                         if ($com[0] !== '=') {
    211                                                 // erreur
    212                                         }
    213                                         # sql_quote a l'envers : pas propre...
    214                                         eval ('$x = '.str_replace('\"', '"', $com[2]).';');
    215                                         if (is_array($x) OR is_array($x = @unserialize($x)))
    216                                                 $this->tableau = $x;
    217                                         else
    218                                                 $this->err = true;
    219                                 }
    220                         }
    221                 }
    222 
    223205                // Critere {liste X1, X2, X3}
    224206                if (isset($this->command['liste'])) {
  • _plugins_/iterateurs/iterateurs_fonctions.php

    r43187 r43241  
    3737        $boucle->hash .= '
    3838        $command[\'datacache\'] = '.calculer_liste($crit->param[0], array(), $boucles, $boucles[$idb]->id_parent).';';
     39}
     40
     41// {tableau #XX} pour compatibilite ascendante boucle POUR
     42// ... preferer la notation {datasource #XX,table}
     43function critere_tableau($idb, &$boucles, $crit) {
     44        $boucle = &$boucles[$idb];
     45        $boucle->hash .= '
     46        $command[\'source\'] = '.calculer_liste($crit->param[0], array(), $boucles, $boucles[$idb]->id_parent).';
     47        $command[\'sourcemode\'] = \'table\';';
    3948}
    4049
Note: See TracChangeset for help on using the changeset viewer.