source: spip-zone/_plugins_/agenda/trunk/formulaires/editer_evenement.php @ 54158

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

affichage de la saisie de l'heure en fonction de la coche horaire
bug sur saise des inscriptions (prendre en compte l'absence de coche)
affichage du contenu d'un evenement sur la page evenement+styles+chaines de langue

File size: 4.6 KB
Line 
1<?php
2/**
3 * Plugin Agenda pour Spip 2.0
4 * Licence GPL
5 *
6 *
7 */
8include_spip('inc/actions');
9include_spip('inc/editer');
10include_spip('inc/autoriser');
11
12function formulaires_editer_evenement_charger_dist($id_evenement='new', $id_article=0, $retour='', $lier_trad = 0, $config_fonc='evenements_edit_config', $row=array(), $hidden=''){
13
14        $valeurs = formulaires_editer_objet_charger('evenement',$id_evenement,$id_article,0,$retour,$config_fonc,$row,$hidden);
15
16        if (!$valeurs['id_article'])
17                $valeurs['id_article'] = $id_article;
18        if (!$valeurs['titre'])
19                $valeurs['titre'] = sql_getfetsel('titre','spip_articles','id_article='.intval($valeurs['id_article']));
20        $valeurs['id_parent'] = $valeurs['id_article'];
21        unset($valeurs['id_article']);
22        // pour le selecteur d'article(s) optionnel
23        $valeurs['parents_id'] = array("article|".$valeurs['id_parent']);
24
25        // fixer la date par defaut en cas de creation d'evenement
26        if (!intval($id_evenement)){
27                $t=time();
28                $valeurs["date_debut"] = date('Y-m-d H:i:00',$t);
29                $valeurs["date_fin"] = date('Y-m-d H:i:00',$t+3600);
30                $valeurs['horaire'] = 'oui';
31        }
32
33        // les mots
34        $valeurs['mots'] = array();
35        if (intval($id_evenement))
36                $valeurs['mots'] = sql_allfetsel('id_mot','spip_mots_liens','objet="evenement" AND id_objet='.intval($id_evenement));
37
38        // les repetitions
39        $valeurs['repetitions'] = '';
40        if (intval($id_evenement)){
41                $repetitons = sql_allfetsel("date_debut","spip_evenements","id_evenement_source=".intval($id_evenement),'','date_debut');
42                foreach($repetitons as $d)
43                        $valeurs['repetitions'] .= date('d/m/Y',strtotime($d['date_debut'])).' ';
44        }
45
46        // dispatcher date et heure
47        list($valeurs["date_debut"],$valeurs["heure_debut"]) = explode(' ',date('d/m/Y H:i',strtotime($valeurs["date_debut"])));
48        list($valeurs["date_fin"],$valeurs["heure_fin"]) = explode(' ',date('d/m/Y H:i',strtotime($valeurs["date_fin"])));
49
50        // traiter specifiquement l'horaire qui est une checkbox
51        if (_request('date_debut') AND !_request('horaire'))
52                $valeurs['horaire'] = 'oui';
53
54        // Pouvoir interdire l'affichage de l'inscription (puisque ce n'est pas traite' par le plugin)
55        $valeurs['affiche_inscription'] = $GLOBALS['agenda_affiche_inscription'];
56
57        $valeurs['places'] = intval($valeurs['places']);
58
59        return $valeurs;
60}
61
62function evenements_edit_config(){
63        return array();
64}
65
66function formulaires_editer_evenement_verifier_dist($id_evenement='new', $id_article=0, $retour='', $lier_trad = 0, $config_fonc='evenements_edit_config', $row=array(), $hidden=''){
67        $erreurs = formulaires_editer_objet_verifier('evenement',$id_evenement,array('titre','date_debut','date_fin'));
68
69        include_spip('inc/date_gestion');
70
71        $horaire = _request('horaire')=='non'?false:true;
72        $date_debut = verifier_corriger_date_saisie('debut',$horaire,$erreurs);
73        $date_fin = verifier_corriger_date_saisie('fin',$horaire,$erreurs);
74
75        if ($date_debut AND $date_fin AND $date_fin<$date_debut)
76                $erreurs['date_fin'] = _T('agenda:erreur_date_avant_apres');
77
78        include_spip('formulaires/selecteur/selecteur_fonctions');
79        if (count($id = picker_selected(_request('parents_id'),'article'))
80          AND $id = reset($id)
81          AND $id = sql_getfetsel('id_article','spip_articles','id_article='.intval($id))){
82          // reinjecter dans id_parent
83          set_request('id_parent',$id);
84        }
85
86        if (!$id_parent = intval(_request('id_parent')))
87                $erreurs['id_parent'] = _T('agenda:erreur_article_manquant');
88        else {
89                if (!autoriser('creerevenementdans','article',$id_parent))
90                        $erreurs['id_parent'] = _T('agenda:erreur_article_interdit');
91        }
92
93        #if (!count($erreurs))
94        #       $erreurs['message_erreur'] = 'ok?';
95        return $erreurs;
96}
97
98function formulaires_editer_evenement_traiter_dist($id_evenement='new', $id_article=0, $retour='', $lier_trad = 0, $config_fonc='evenements_edit_config', $row=array(), $hidden=''){
99        set_request('horaire',_request('horaire')=='non'?'non':'oui');
100        set_request('inscription',_request('inscription')?1:0);
101        include_spip('inc/date_gestion');
102        $erreurs = array();
103        $date_debut = verifier_corriger_date_saisie('debut',_request('horaire')=='oui',$erreurs);
104        $date_fin = verifier_corriger_date_saisie('fin',_request('horaire')=='oui',$erreurs);
105        set_request('date_debut',date('Y-m-d H:i:s',$date_debut));
106        set_request('date_fin',date('Y-m-d H:i:s',$date_fin));
107
108        $res = formulaires_editer_objet_traiter('evenement',$id_evenement,$id_article,0,$retour,$config_fonc,$row,$hidden);
109        $id_evenement = $res['id_evenement'];
110        if ($res['redirect']) {
111                if (strpos($res['redirect'],'article')!==false){
112                        $id_article = sql_getfetsel('id_article','spip_evenements','id_evenement='.intval($id_evenement));
113                        $res['redirect'] = parametre_url($res['redirect'],'id_article',$id_article);
114                }
115        }
116        return $res;
117}
118
119?>
Note: See TracBrowser for help on using the repository browser.