source: spip-zone/_plugins_/orr/formulaires/reserv.php @ 63410

Last change on this file since 63410 was 63410, checked in by chrisulm05@…, 8 years ago

Plugin ORR, création de GRR pour SPIP.
Pour l'instant, j'ai utilisé zpip donc le fichier se trouve dans contenu : page-affichage_orr.html
Attention, j'ai mis une url en dure pour ma requete AJAX
On déclare les ressources dans l'espace privé (éditions –> ressources).
Les réservations se font directement dans l'espace public.
J'en profite pour remercier chaleureusement cy_altern pour m'avoir mis le pied à l'étrier et pour m'apporter toute son expertise.

File size: 4.2 KB
Line 
1<?php
2
3function formulaires_reserv_charger_dist($id,$date_deb){
4    list($annee,$mois,$jour)=explode('-',$date_deb);
5    $date_deb = date("d/m/Y H:i:s", mktime(0, 0, 0, $mois, $jour, $annee));
6    $valeurs = array(
7        "nom_ressource"   => "",
8        "nom_reservation" => "",
9        "id_ressource"    => $id,
10        "date_debut"      => $date_deb,
11        "date_fin"        => $date_deb,
12    );
13    return $valeurs;
14}
15
16function formulaires_reserv_verifier_dist($id,$date_deb){
17    $date_debut      = _request('date_debut');
18    $date_fin        = _request('date_fin');
19    $erreurs = array();
20    //champs obligatoire
21    foreach (array ('nom_reservation','date_debut','date_fin') as $obligatoire) {
22        if (!_request($obligatoire)) {
23            $erreurs[$obligatoire] = 'Ce champs est obligatoire';
24        }
25    }
26    //format de date correct
27    if (!isset($erreurs['date_debut'])){
28        list ($dated,$tempsd) = explode(' ',$date_debut);
29        list ($jourd,$moisd,$anneed) = explode('/',$dated);
30        if (!intval($jourd)or!intval($moisd)or!intval($anneed)or!preg_match("#^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$#", $tempsd)) {
31            $erreurs['date_debut'] = "Ce format de data n'est pas reconnu.";
32        }
33    }
34    if (!isset($erreurs['date_fin'])){
35        list ($datef,$tempsf) = explode(' ',$date_fin);
36        list ($jourf,$moisf,$anneef) = explode('/',$datef);
37        if (!intval($jourf)or!intval($moisf)or!intval($anneef)or!preg_match("#^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$#", $tempsf)) {
38            $erreurs['date_fin'] = "Ce format de data n'est pas reconnu.";
39        }
40    }
41
42    // date de fin anterieur à la date de debut
43    list($heured,$minuted,$seconded) = explode(':',$tempsd);
44    list($heuref,$minutef,$secondef) = explode(':',$tempsf);
45    $timestampd = mktime($heured,$minuted,$seconded,$jourd,$moisd,$anneed);
46    $timestampf = mktime($heuref,$minutef,$secondef,$jourf,$moisf,$anneef);
47    if ($timestampd>$timestampf){
48        $erreurs['date_fin'] = "date de fin antérieur à la date de début";
49    }
50
51    // les dates choisies sont libres
52    include_spip('inc/compare_date');
53    $date_debut = date("Y-m-d H:i:s", mktime ($heured,$minuted,0, $moisd, $jourd, $anneed));
54    $date_fin   = date("Y-m-d H:i:s", mktime ($heuref,$minutef,0, $moisf, $jourf, $anneef));
55    if (compare_date($date_debut,$id)) {
56        $erreurs['date_debut'] = "Il y a déja une réservation à ce moment là !";
57    }
58    if (compare_date($date_fin,$id)) {
59        $erreurs['date_fin'] = "Il y a déja une réservation à ce moment là !";
60    }
61    if (count($erreurs)) {
62        $erreurs['message_erreur'] = 'Votre saisie contient des erreurs !';
63    }
64    return $erreurs;
65}
66
67
68function formulaires_reserv_traiter_dist($id,$date_deb){
69    $nom_reservation = _request('nom_reservation');
70    $date_debut      = _request('date_debut');
71    $date_fin        = _request('date_fin');
72
73    list($jour_debut, $heure_debut) = explode(' ',$date_debut);
74    list($jour_fin, $heure_fin) = explode(' ',$date_fin);
75    list($jourd,$moisd,$anneed) = explode('/',$jour_debut);
76    list($jourf,$moisf,$anneef) = explode('/',$jour_fin);
77
78    list($heured,$minuted) = explode(':',$heure_debut);
79    list($heuref,$minutef) = explode(':',$heure_fin);
80
81    $date_debut = date("Y-m-d H:i:s", mktime ($heured,$minuted,0, $moisd, $jourd, $anneed));
82    $date_fin   = date("Y-m-d H:i:s", mktime ($heuref,$minutef,0, $moisf, $jourf, $anneef));
83
84    $retour['message_ok'] = "bravo";
85    $retour['redirect'] = "#CHEMIN{contenu/page-forum}";
86
87    $objet = "orr_reservation";
88    // utilisation API editer_objet pour l'insertion en BDD'
89    include_spip('action/editer_objet');
90    $id_objet = objet_inserer($objet);
91    $set = array (
92        'id_orr_ressource'    => $id,
93        'orr_reservation_nom' => $nom_reservation,
94        'orr_date_debut'      => $date_debut,
95        'orr_date_fin'        => $date_fin
96    );
97    objet_modifier($objet, $id_objet, $set);
98    // utilisation de l'API editer_liens pour la gestion de la table de lien entre
99    // une reservation et une ressource
100    include_spip('action/editer_liens');
101    objet_associer(array("orr_reservation"=>$id_objet), array("orr_ressource"=>$id));
102
103    return $retour;
104}
105?>
Note: See TracBrowser for help on using the repository browser.