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

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

corriger le retour du formulaire
debut de refoactoring/modernisation de editer_evenement

File size: 4.5 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        include_spip('inc/date_gestion');
101        $erreurs = array();
102        $date_debut = verifier_corriger_date_saisie('debut',_request('horaire')=='oui',$erreurs);
103        $date_fin = verifier_corriger_date_saisie('fin',_request('horaire')=='oui',$erreurs);
104        set_request('date_debut',date('Y-m-d H:i:s',$date_debut));
105        set_request('date_fin',date('Y-m-d H:i:s',$date_fin));
106
107        $res = formulaires_editer_objet_traiter('evenement',$id_evenement,$id_article,0,$retour,$config_fonc,$row,$hidden);
108        $id_evenement = $res['id_evenement'];
109        if ($res['redirect']) {
110                if (strpos($res['redirect'],'article')!==false){
111                        $id_article = sql_getfetsel('id_article','spip_evenements','id_evenement='.intval($id_evenement));
112                        $res['redirect'] = parametre_url($res['redirect'],'id_article',$id_article);
113                }
114        }
115        return $res;
116}
117
118?>
Note: See TracBrowser for help on using the repository browser.