Changeset 87985 in spip-zone


Ignore:
Timestamp:
Mar 15, 2015, 8:58:07 PM (5 years ago)
Author:
julienlfy@…
Message:

Ajout du critère 'simplecalperiode' permettant de retourner les évènements sur une periode donnée.
A utiliser dans des modèles.
(Report d'évolution de la version pour SPIP 2.1)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/simple_calendrier/trunk/public/simplecal_criteres.php

    r76526 r87985  
    116116}
    117117
     118// {simplecalperiode date_debut, #ENV{periodedebut}, #ENV{periodefin}}
     119// Format aaaammjj
     120function critere_simplecalperiode_dist($idb, &$boucles, $crit) {
     121    $boucle = &$boucles[$idb];
     122    $table = $boucle->id_table;
     123    $not = $crit->not;
     124   
     125    $parent = $boucles[$idb]->id_parent;
     126    $params = $crit->param;
     127    // ---
     128   
     129    $log = '';
     130       
     131   
     132    // 'date_debut' - inutile...
     133    $p0 = $params ? array_shift($params) : "";
     134   
     135    // aaaammjj
     136    $px = $params ? array_shift($params) : "";
     137    $pdeb = "\n" . 'sprintf("%08d", ($x = '.calculer_liste($px, array(), $boucles, $parent).') ? $x : date("Ymd"))';
     138   
     139    // aaaammjj
     140    $px = $params ? array_shift($params) : "";
     141    $pfin = "\n" . 'sprintf("%08d", ($x = '.calculer_liste($px, array(), $boucles, $parent).') ? $x : date("Ymd"))';
     142   
     143    // ----
     144   
     145    $date_debut = $table . ".date_debut";
     146    $date_fin = $table . ".date_fin";
     147   
     148    //    date_debut comprise dans la periode
     149    // OU date_fin   comprise dans la periode
     150    $c = array("'OR'",
     151        array("'AND'",
     152            array("'>='", "'DATE_FORMAT($date_debut, \'%Y%m%d\')'", ("$pdeb")),
     153            array("'<='", "'DATE_FORMAT($date_debut, \'%Y%m%d\')'", ("$pfin"))
     154        ),
     155        array("'AND'",
     156            array("'>='", "'DATE_FORMAT($date_fin, \'%Y%m%d\')'", ("$pdeb")),
     157            array("'<='", "'DATE_FORMAT($date_fin, \'%Y%m%d\')'", ("$pfin"))
     158        )
     159    );
     160   
     161   
     162    // Inversion de la condition ?
     163    $c = ($not ? array("'NOT'", $c) : $c);
     164       
     165    $boucle->where[] = $c;
     166}
     167
    118168?>
Note: See TracChangeset for help on using the changeset viewer.