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

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

v 1.2.1 Les utilisés, prendre en compte les statuts du contexte

File size: 1.7 KB
Line 
1<?php
2
3if (!defined('_ECRIRE_INC_VERSION')) {
4        return;
5}
6
7function disponibilites_objet_utilise_dist($utilise_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        $statuts = $contexte['utilise_statuts'];
15
16        if ($contexte['utilise_select']) {
17                $select = $contexte['utilise_select'];
18        }
19        else {
20                $select = 'date_debut,date_fin';
21        }
22
23        if ($contexte['utilise_where']) {
24                $where = $contexte['utilise_where'];
25        }
26        else {
27                if ($statuts) {
28                        if (!is_array($statuts)) {
29                                $statuts = explode(',', $statuts);
30                        }
31                        $statut = 'statut IN ("' . implode('","', $statuts) . '")';
32                }
33                else {
34                        $statut = 'statut NOT LIKE ' . sql_quote('poubelle');
35                }
36                $where = 'objet LIKE ' . sql_quote($objet) . ' AND id_objet=' . $id_objet . ' AND ' . $statut;
37        }
38        $dates = [];
39
40        if ($table = table_objet_sql($utilise_objet)) {
41        $utilisation = sql_allfetsel($select, $table , $where);
42
43        foreach($utilisation AS $donnees) {
44
45                $date_debut = $donnees['date_debut'];
46                $date_fin = $donnees['date_fin'];
47
48                if (isset($contexte['verifier']) AND $contexte['verifier']) {
49                        if (dates_difference($date_debut, $date_fin, 'jour') == 1) {
50                                //$contexte['utilise_decalage_debut'] = 0;
51                                $contexte['utilise_decalage_fin'] = 0;
52                        }
53                }
54
55
56                if ($date_debut != $date_fin) {
57
58                        $intervalle = dates_intervalle(
59                                $date_debut,
60                                $date_fin,
61                                $contexte['utilise_decalage_debut'],
62                                $contexte['utilise_decalage_fin'],
63                                $horaire,
64                                $format
65                        );
66
67                        $dates = array_merge($dates, $intervalle);
68                        }
69
70                }
71        }
72        return $dates;
73}
Note: See TracBrowser for help on using the repository browser.