Changeset 109922 in spip-zone


Ignore:
Timestamp:
Apr 17, 2018, 8:31:20 AM (3 years ago)
Author:
peetdu@…
Message:

Reprise complète du critère a_venir du plugin Agenda

Location:
_plugins_/simple_calendrier/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/simple_calendrier/trunk/paquet.xml

    r105362 r109922  
    22        prefix="simplecal"
    33        categorie="date"
    4         version="2.2.3"
     4        version="2.2.4"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.1.*]"
  • _plugins_/simple_calendrier/trunk/public/simplecal_boucles.php

    r95272 r109922  
    77 * cf. paquet.xml pour plus d'infos.
    88 */
     9
     10if (!defined("_ECRIRE_INC_VERSION")) {
     11        return;
     12}
    913
    1014// --------------------------------------
     
    1923 * @param unknown_type $crit
    2024 */
    21 if (!function_exists('critere_tout_voir_dist')){
     25if (!function_exists('critere_tout_voir_dist')) {
    2226function critere_tout_voir_dist($idb, &$boucles, $crit) {
    2327        $boucle = &$boucles[$idb];
    2428        $boucle->modificateur['tout_voir'] = true;
    2529}
     30
    2631}
    27 function simplecal_pre_boucle(&$boucle){
     32function simplecal_pre_boucle(&$boucle) {
    2833        if (!isset($boucle->modificateur['tout_voir'])){
    2934                $securise = false;
     
    5863        return $boucle;
    5964}
    60 
    61 
    62 
    63 ?>
  • _plugins_/simple_calendrier/trunk/public/simplecal_criteres.php

    r102446 r109922  
    11<?php
     2
    23/**
    34 * Plugin Simple Calendrier v2 pour SPIP 3
    45 * Licence GNU/GPL
    5  * 2010-2016
     6 * 2010-2018
    67 *
    78 * cf. paquet.xml pour plus d'infos.
    89 */
    910
     11
     12if (!defined("_ECRIRE_INC_VERSION")) {
     13        return;
     14}
    1015
    1116/**
     
    1823function critere_a_venir_dist($idb, &$boucles, $crit) {
    1924        $boucle = &$boucles[$idb];
    20         $table = $boucle->id_table;
    21         $not = $crit->not;
    22        
    23         $horaire_actif = lire_config('simplecal_horaire');
    24         if ($horaire_actif == 'oui') {
    25                 $c = array("'OR'",
    26                         array("'>='", "'$table.date_debut'", "sql_quote(date('Y-m-d H:i:s'))"),
    27                         array("'>='", "'$table.date_fin'", "sql_quote(date('Y-m-d H:i:s'))"));
     25        $id_table = $boucle->id_table;
     26
     27        $_dateref = time_calculer_date_reference($idb, $boucles, $crit);
     28        $_date = "$id_table.date_debut";
     29        $op = $crit->not ? '<=' : '>';
     30
     31        // si on ne sait pas si les heures comptent, on utilise toute la journee.
     32        // sinon, on s'appuie sur le champ 'horaire=oui'
     33        // pour savoir si les dates utilisent les heures ou pas.
     34        $where_futur_sans_heure =
     35                array("'$op'", "'$_date'", "sql_quote(date('Y-m-d 23:59:59', strtotime($_dateref)))");
     36
     37        if (array_key_exists('horaire', $boucle->show['field'])) {
     38                $where =
     39                        array("'OR'",
     40                                array("'AND'",
     41                                        array("'='", "'horaire'", "sql_quote('oui')"),
     42                                        array("'$op'","'$_date'","sql_quote($_dateref)")
     43                                ),
     44                                array("'AND'",
     45                                        array("'!='", "'horaire'", "sql_quote('oui')"),
     46                                        $where_futur_sans_heure
     47                                )
     48                        );
     49        } else {
     50                $where = $where_futur_sans_heure;
    2851        }
    29         else {
    30                 $c = array("'OR'",
    31                         array("'>='", "'$table.date_debut'", "sql_quote(date('Y-m-d'))"),
    32                         array("'>='", "'$table.date_fin'", "sql_quote(date('Y-m-d'))"));
    33         }
    34        
    35         // Inversion de la condition ?
    36         $c = ($not ? array("'NOT'", $c) : $c);
    37        
    38         $boucle->where[] = $c;
     52
     53        $boucle->where[] = $where;
    3954}
    4055
     
    176191}
    177192
    178 ?>
     193/**
     194 * Fonction privee pour mutualiser de code des criteres_evenement_*
     195 * Retourne le code php pour obtenir la date de reference de comparaison
     196 * des evenements a trouver
     197 *
     198 * @param string $idb
     199 * @param object $boucles
     200 * @param object $crit
     201 *
     202 * @return string code PHP concernant la date.
     203**/
     204function time_calculer_date_reference($idb, &$boucles, $crit) {
     205        if (isset($crit->param[0])) {
     206                return calculer_liste($crit->param[0], array(), $boucles, $boucles[$idb]->id_parent);
     207        } else {
     208                return "date('Y-m-d H:i:00')";
     209        }
     210}
  • _plugins_/simple_calendrier/trunk/simplecal_fonctions.php

    r95272 r109922  
    88 */
    99
    10 if (!defined("_ECRIRE_INC_VERSION")) return;
    11 
     10if (!defined("_ECRIRE_INC_VERSION")) {
     11        return;
     12}
    1213
    1314// boucles
     
    2324include_spip('public/simplecal_criteres');
    2425
    25 ?>
     26/**
     27 * Ajout d'un offset a une date
     28 *
     29 * @param string $date
     30 * @param int $secondes
     31 *   peut etre une expression math : 24*60*60
     32 * @param string $format
     33 *   format de sortie de la date
     34 * @return string
     35 */
     36function time_dateplus($date, $secondes, $format = 'Y-m-d H:i:s') {
     37        $date = strtotime($date)+eval("return $secondes;"); // permet de passer une expression
     38        return date($format, $date);
     39}
Note: See TracChangeset for help on using the changeset viewer.