source: spip-zone/_plugins_/objets_disponibilites/branches/v1/disponibilites/objet_utilise.php @ 114197

Last change on this file since 114197 was 114197, checked in by abelass@…, 7 months ago

v1.2.0 les calcul des dates utiliséss

  • Se fait dans une fonction surchargeable
  • lors d'une vérification, adapter le décalage afin qu'il détecte les périodes d'un jour
File size: 1.5 KB
Line 
1<?php
2
3if (!defined('_ECRIRE_INC_VERSION')) {
4        return;
5}
6
7function disponibilites_objet_utilise_dist($utilisation_objet, $contexte) {
8        include_spip('filtres/dates_outils');
9
10        $horaire = isset($contexte['horaire']) ? $contexte['horaire'] : _request('horaire');
11        $format = isset($contexte['format']) ? $contexte['format'] : _request('format');
12        $objet = $contexte['objet'];
13        $id_objet = $contexte['id_objet'];
14
15        if (isset($options['select'])) {
16                $select = $options['select'];
17        }
18        else {
19                $select = 'date_debut,date_fin';
20        }
21
22        if (isset($options['where'])) {
23                $where = $options['where'];
24        }
25        else {
26                $where = 'objet LIKE ' . sql_quote($objet) . ' AND id_objet=' . $id_objet . ' AND statut NOT LIKE ' . sql_quote('poubelle');
27        }
28        $dates = [];
29
30        if ($table = table_objet_sql($utilisation_objet)) {
31        $utilisation = sql_allfetsel($select, $table , $where);
32
33        foreach($utilisation AS $donnees) {
34
35                $date_debut = $donnees['date_debut'];
36                $date_fin = $donnees['date_fin'];
37
38                if (isset($contexte['verifier']) AND $contexte['verifier']) {
39                        if (dates_difference($date_debut, $date_fin, 'jour') == 1) {
40                                //$contexte['utilise_decalage_debut'] = 0;
41                                $contexte['utilise_decalage_fin'] = 0;
42                        }
43                }
44
45
46                if ($date_debut != $date_fin) {
47
48                        $intervalle = dates_intervalle(
49                                $date_debut, 
50                                $date_fin, 
51                                $contexte['utilise_decalage_debut'],
52                                $contexte['utilise_decalage_fin'],
53                                $horaire,
54                                $format
55                        );
56                       
57                        $dates = array_merge($dates, $intervalle);
58                        }
59
60                }
61        }
62        return $dates;
63}
Note: See TracBrowser for help on using the repository browser.