Changeset 27652 in spip-zone


Ignore:
Timestamp:
Apr 4, 2009, 1:29:02 PM (11 years ago)
Author:
maieulrouquette@…
Message:

un critere tout configurable + breves + id_secteur permet de changer

Location:
_plugins_/_test_/exclure_secteur
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_test_/exclure_secteur/exclure_sect_fonctions.php

    r27642 r27652  
    11<?php
     2/* un cfg qui marche sur 19x*/
     3
     4/* criteres*/
    25if (!function_exists('critere_tout_secteur_dist')){
    36function critere_tout_secteur_dist($idb, &$boucles, $crit) {   
     
    69}
    710}
     11function secteur_explicite($crit){
     12   
     13    foreach($crit as $critere){   
     14        if ($critere->param[0][0]->texte == 'id_secteur') {
     15                switch ($critere->op){
     16                    case '=' :
     17                        return true;
     18                    case '==':
     19                        return true;
     20                    case 'IN':
     21                        return true;               
     22                }                   
     23        }
     24    }
     25    return false;
     26}
    827
    9 function exclure_sect_choisir(){
    10   $cfg =lire_config('secteur/exclure_sect');
    11   if ( $cfg = array_map('sql_quote', $cfg) ) {
    12     $cfg = implode($cfg, ',');
    13   }
    14   else {
    15     $cfg = sql_quote('z');
    16   }
    17 
    18   return '('.$cfg.')';
     28function exclure_sect_choisir($crit){
     29    $cfg =lire_config('secteur/exclure_sect');
     30    $sect_afficher = secteur_explicite($crit);
     31    if ($cfg = array_map('sql_quote', $cfg) and !$sect_afficher ) {
     32        $cfg = implode($cfg, ',');
     33    }
     34    else {
     35        $cfg = sql_quote('z');
     36    }
     37   
     38   
     39    return '('.$cfg.')';
    1940
    2041}
     42/* surcharges de boucles*/
     43function boucle_BREVES($id_boucle, &$boucles) {
     44   
     45        $boucle = &$boucles[$id_boucle];
     46        $id_table = $boucle->id_table;
     47       
     48    if(!$boucle->modificateur['tout_secteur'] and !($boucle->modificateur['tout'] and lire_config('secteur/tout') == 'oui')){
     49        $exclut = exclure_sect_choisir($crit);       
     50        $boucle->where[] = array("'NOT IN'", "'$id_table.id_secteur'",sql_quote($exclut));       
     51    }
     52
     53        return boucle_BREVES_dist($id_boucle, $boucles);
     54}
     55
    2156
    2257
     
    2560        $boucle = &$boucles[$id_boucle];
    2661        $id_table = $boucle->id_table;
    27        
    28     if(!$boucle->modificateur['tout_secteur']){
    29         $boucle->where[] = array("'NOT IN'", "'$id_table.id_secteur'", 'exclure_sect_choisir()');   
     62        $crit = $boucle->criteres;
     63   
     64    if(!$boucle->modificateur['tout_secteur'] and !($boucle->modificateur['tout'] and lire_config('secteur/tout') == 'oui')){
     65        $exclut = exclure_sect_choisir($crit);       
     66        $boucle->where[] = array("'NOT IN'", "'$id_table.id_secteur'",sql_quote($exclut));   
    3067    }
    31 
     68 
    3269        return boucle_ARTICLES_dist($id_boucle, $boucles);
    3370}
     
    3875        $id_table = $boucle->id_table;
    3976       
    40     if(!$boucle->modificateur['tout_secteur']){
    41         $boucle->where[] = array("'NOT IN'", "'$id_table.id_secteur'", 'exclure_sect_choisir()');
     77    if(!$boucle->modificateur['tout_secteur'] and !($boucle->modificateur['tout'] and lire_config('secteur/tout') == 'oui')){
     78        $exclut = exclure_sect_choisir($crit);       
     79        $boucle->where[] = array("'NOT IN'", "'$id_table.id_secteur'",sql_quote($exclut));   
    4280   
    4381    }
     
    5189        $id_table = $boucle->id_table;
    5290       
    53     if(!$boucle->modificateur['tout_secteur']){
    54         $boucle->where[] = array("'NOT IN'", "'$id_table.id_secteur'", 'exclure_sect_choisir()');
     91    if(!$boucle->modificateur['tout_secteur'] and !($boucle->modificateur['tout'] and lire_config('secteur/tout') == 'oui')){
     92        $exclut = exclure_sect_choisir($crit);       
     93        $boucle->where[] = array("'NOT IN'", "'$id_table.id_secteur'",sql_quote($exclut));   
    5594   
    5695    }
  • _plugins_/_test_/exclure_secteur/fonds/cfg_secteur.html

    r27640 r27652  
    88        <ul>
    99        <legend id="explication">Choisissez les secteurs &agrave; exclure</legend>
    10         <BOUCLE_racine(RUBRIQUES){racine}{tout}>
     10        <BOUCLE_racine(RUBRIQUES){racine}{tout_secteur}>
    1111        <li>
    1212
     
    1717       
    1818        </BOUCLE_racine>
     19       
     20        </ul>
     21        </fieldset>
     22        <fieldset>
     23        <ul>
     24        <legend id="explication">R&eacute;glage avanc&eacute; du plugin</legend>
    1925
    20     </ul>
    21         </fieldset>
     26        <li>
     27        <label for="tout">Est-ce que le crit&eacute;re <code>{tout}</code> est &eacute;quivalent au crit&eacute;re <code>{tout_secteur}</code> ?</label>
     28        <input type="checkbox" name="tout" value="oui"[(#ENV{tout}|=={oui}|oui) checked="checked"] />
     29        </li>
     30    </li>
     31    </fieldset>
    2232        <p class="boutons">
    2333        <input type="submit" name="_cfg_ok" value="<:OK:>" />
  • _plugins_/_test_/exclure_secteur/plugin.xml

    r27642 r27652  
    1919   
    2020    On peut faire une exception avec le crit&eacute; <code>{tout_secteur}</code>.
    21     Attention ! Pour le moment, le fait de préciser explicitement le secteur n'enl&eacute;ve pas l'exclusion.
     21    Si on précise le secteur explicitement, par <code>{id_secteur=x}</code>, <code>{id_secteur==x}</code> ou <code>{id_secteur IN X}</code>, le réglage ne sera pas pris en compte.
     22   
     23    Possibilit&eaceute; aussi de configurer le plugin pour que <code>{tout}</code> soit &eacute:quivalent à <code>{tout_secteur}</code>.
     24
     25
    2226       
    2327                 
Note: See TracChangeset for help on using the changeset viewer.