Changeset 48486 in spip-zone


Ignore:
Timestamp:
Jun 4, 2011, 9:11:13 PM (10 years ago)
Author:
eric@…
Message:

Et voilà, le Grand Denis - loué soit son nom - a frappé : du critère qui envoie du paté ! (b_b si tu m'entends...).
Maintenant reste à améliorer la boucle monstrueuse des téléchargements.

Location:
_plugins_/svp
Files:
1 added
1 deleted
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/svp/svp_fonctions.php

    r48472 r48486  
    296296
    297297/**
    298  * Critere de compatibilite avec une branche de SPIP :
     298 * Critere de compatibilite avec une VERSION precise ou une BRANCHE de SPIP :
    299299 * Fonctionne sur les tables spip_paquets et spip_plugins
    300  * en utilisant la fonction SQL LOCATE sur le champ branches_spip
    301300 *
    302  *   {branche_spip}
    303  *   {branche_spip 2.0}
    304  *   {branche_spip #ENV{vers}} ou {branche_spip #ENV{vers, 1.9}}
    305  *   {branche_spip #GET{vers}} ou {branche_spip #GET{vers, 1.9}}
     301 *   {compatible_spip}
     302 *   {compatible_spip 2.0.8} ou {compatible_spip 1.9}
     303 *   {compatible_spip #ENV{vers}} ou {compatible_spip #ENV{vers, 1.9.2}}
     304 *   {compatible_spip #GET{vers}} ou {compatible_spip #GET{vers, 2.1}}
    306305 *
    307  *   si aucune valeur explicite (dans le critère, par #ENV, par #SET)
     306 *   Si aucune valeur explicite (dans le critère, par #ENV, par #SET)
    308307 *   tous les enregistrements sont retournés.
     308 *
     309 *   Le ! (NOT) fonctionne sur le critère BRANCHE
    309310 */
    310311function critere_compatible_spip_dist($idb, &$boucles, $crit) {
    311312
    312313        $boucle = &$boucles[$idb];
    313        
     314        $table = $boucle->id_table;
     315
    314316        // Si on utilise ! la fonction LOCATE doit retourner 0.
     317        // -> utilise uniquement avec le critere BRANCHE
    315318        $op = ($crit->not == '!') ? '=' : '>';
    316319
    317         // version explicite dans l'appel du critere.
     320        $boucle->hash .= '
     321        // COMPATIBILITE SPIP
     322        $creer_where = charger_fonction(\'where_compatible_spip\', \'inc\');';
     323
     324        // version/branche explicite dans l'appel du critere
    318325        if (isset($crit->param[0][0])) {
    319326                $version = calculer_liste(array($crit->param[0][0]), array(), $boucles, $boucle->id_parent);
    320327                $boucle->hash .= '
    321                 $where = \'LOCATE(\\\'\'.'.$version.'.\'\\\', '.$boucle->id_table.'.branches_spip) '.$op.' 0\';
     328                $where = $creer_where('.$version.', \''.$table.'\', \''.$op.'\');
    322329                ';
    323330        }
    324         // pas de version explicite dans l'appel du critere
    325         // on regarde si elle est dans le contexte.
    326         // (derogatoire du ?)
     331        // pas de version/branche explicite dans l'appel du critere
     332        // on regarde si elle est dans le contexte
    327333        else {
    328334                $boucle->hash .= '
    329                 $where = isset($Pile[0][\'branche_spip\']) ?
    330                 \'LOCATE(\\\'\'.$Pile[0][\'branche_spip\'].\'\\\', '.$boucle->id_table.'.branches_spip) '.$op.' 0\' : \'1=1\';
     335                $version = isset($Pile[0][\'compatible_spip\']) ? $Pile[0][\'compatible_spip\'] : \'\';
     336                $where = $creer_where($version, \''.$table.'\', \''.$op.'\');
    331337                ';
    332338        }
  • _plugins_/svp/tests/criteres.html

    r48480 r48486  
    11#CACHE{0}
    22
    3 <h2>Crit&egrave;re {compatible_spip 1.9} sur PAQUETS</h2>
    4 <B_paquets>
     3<h2>Crit&egrave;re BRANCHE {compatible_spip 1.9} sur PAQUETS</h2>
     4<B_paquets1>
    55<p>Nombre de r&eacute;sultats : #TOTAL_BOUCLE</p>
    66<table>
     
    1212        </thead>
    1313        <tbody>
    14 <BOUCLE_paquets(PAQUETS) {compatible_spip 1.9}>
     14<BOUCLE_paquets1(PAQUETS) {compatible_spip 1.9}>
    1515        <tr>
    1616                <td>#NOM_ARCHIVE</td>
    1717                <td>#BRANCHES_SPIP</td>
    1818        </tr>
    19 </BOUCLE_paquets>
     19</BOUCLE_paquets1>
    2020        </tbody>
    2121</table>
    22 </B_paquets>
     22</B_paquets1>
     23<p>Aucun paquet trouv&eacute;</p>
     24<//B_paquets1>
     25
     26<h2>Crit&egrave;re VERSION {compatible_spip 1.9.2} sur PAQUETS</h2>
     27<B_paquets2>
     28<p>Nombre de r&eacute;sultats : #TOTAL_BOUCLE</p>
     29<table>
     30        <thead>
     31                <tr>
     32                        <th>Archive</th>
     33                        <th>Branches SPIP</th>
     34                </tr>
     35        </thead>
     36        <tbody>
     37<BOUCLE_paquets2(PAQUETS) {compatible_spip 1.9.2}>
     38        <tr>
     39                <td>#NOM_ARCHIVE</td>
     40                <td>#COMPATIBILITE_SPIP</td>
     41        </tr>
     42</BOUCLE_paquets2>
     43        </tbody>
     44</table>
     45</B_paquets2>
     46<p>Aucun paquet trouv&eacute;</p>
     47<//B_paquets2>
Note: See TracChangeset for help on using the changeset viewer.