Changeset 78877 in spip-zone


Ignore:
Timestamp:
Nov 27, 2013, 11:43:44 AM (5 years ago)
Author:
severo@…
Message:

Pour spip 3.0, on surcharge le critère {agenda}

ça ne sera plus nécessaire en 3.1, puisqu'intégré par
http://core.spip.org/projects/spip/repository/revisions/21002

Location:
_squelettes_/mediaspip/mediaspip_core/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _squelettes_/mediaspip/mediaspip_core/trunk/mediaspip_core_fonctions.php

    r78875 r78877  
    6464 * La valeur peut être 'date' (défaut), 'date_redac' ou 'maj'
    6565 */
    66 if (!function_exists('critere_agenda')){
     66if (!function_exists('critere_agenda') and $spip_version_branche < "3.1" ){
    6767        function critere_agenda($idb, &$boucles, $crit){
    6868                $params = $crit->param;
    6969
    7070                if (count($params)>=1) {
    71                         $parent = $boucles[$idb]->id_parent;
     71                        /* Code copié de http://core.spip.org/projects/spip/repository/revisions/21002 pour la branche spip 3.0 */
     72                        $boucle = &$boucles[$idb];
     73                        $parent = $boucle->id_parent;
     74                        $fields = $boucle->show['field'];
     75
     76                        $date = array_shift($params);
     77                        $type = array_shift($params);
     78
     79                        // la valeur $type doit etre connue a la compilation
     80                        // donc etre forcement reduite a un litteral unique dans le source
     81                        $type = is_object($type[0]) ? $type[0]->texte : NULL;
    7282                       
    73                         $date = array_shift($params);
    74                         $date = '\'. (in_array('.
    75                                 calculer_liste($date, array(), $boucles, $parent).
    76                                 ', array(\'date\', \'date_redac\', \'maj\'))?'.
    77                                 calculer_liste($date, array(), $boucles, $parent).
    78                                 ':\'date\').\'';
    79 
     83                        // La valeur date doit designer un champ de la table SQL.
     84                        // Si c'est un litteral unique dans le source, verifier a la compil,
     85                        // sinon synthetiser le test de verif pour execution ulterieure
     86                        // On prendra arbitrairement le premier champ si test negatif.
     87                        if ((count($date) == 1)  AND ($date[0]->type == 'texte')) {
     88                                $date = $date[0]->texte;
     89                                if (!isset($fields[$date])) {
     90                                        return array('zbug_critere_inconnu', array('critere' => $crit->op . " " . $date));
     91                                }
     92                        } else {
     93                                $a = calculer_liste($date, array(), $boucles, $parent);
     94                                $noms = array_keys($fields);
     95                                $defaut = $noms[0];
     96                                $noms = join(" ", $noms);
     97                                # bien laisser 2 espaces avant $nom pour que strpos<>0
     98                                $cond = "(\$a=strval($a))AND\nstrpos(\"  $noms \",\" \$a \")";
     99                                $date = "'.(($cond)\n?\$a:\"$defaut\").'";
     100                        }
     101                       
    80102                        $texte = new Texte;
    81103                        $texte->texte = $date;
  • _squelettes_/mediaspip/mediaspip_core/trunk/paquet.xml

    r78705 r78877  
    22        prefix="mediaspip_core"
    33        categorie="squelette"
    4         version="0.6.18"
     4        version="0.6.19"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.0.*]"
Note: See TracChangeset for help on using the changeset viewer.