[PLUGINS] +clavettes et dependances
[lhc/web/clavette_www.git] / www / plugins / seminaire / formulaires / editer_evenement.php
1 <?php
2 /**
3 * Plugin Agenda 4 pour Spip 3.0
4 * Licence GPL 3
5 *
6 * 2006-2011
7 * Auteurs : cf paquet.xml
8 */
9
10 if (!defined("_ECRIRE_INC_VERSION")) return;
11
12 include_spip('inc/actions');
13 include_spip('inc/editer');
14 include_spip('inc/autoriser');
15
16 function formulaires_editer_evenement_charger_dist($id_evenement='new', $id_article=0, $retour='', $lier_trad = 0, $config_fonc='evenements_edit_config', $row=array(), $hidden=''){
17
18 $valeurs = formulaires_editer_objet_charger('evenement',$id_evenement,$id_article,0,$retour,$config_fonc,$row,$hidden);
19
20 if (!$valeurs['id_article'])
21 $valeurs['id_article'] = $id_article;
22 if (!$valeurs['titre'])
23 $valeurs['titre'] = sql_getfetsel('titre','spip_articles','id_article='.intval($valeurs['id_article']));
24 $valeurs['id_parent'] = $valeurs['id_article'];
25 unset($valeurs['id_article']);
26 // pour le selecteur d'article(s) optionnel
27 $valeurs['parents_id'] = array("article|".$valeurs['id_parent']);
28
29 // fixer la date par defaut en cas de creation d'evenement
30 if (!intval($id_evenement)){
31 $t=time();
32 $valeurs["date_debut"] = date('Y-m-d H:i:00',$t);
33 $valeurs["date_fin"] = date('Y-m-d H:i:00',$t+3600);
34 $valeurs['horaire'] = 'oui';
35 }
36
37 // les repetitions
38 $valeurs['repetitions'] = array();
39 if (intval($id_evenement)){
40 $repetitons = sql_allfetsel("date_debut","spip_evenements","id_evenement_source=".intval($id_evenement),'','date_debut');
41 foreach($repetitons as $d)
42 $valeurs['repetitions'][] = date('d/m/Y',strtotime($d['date_debut']));
43 }
44 $valeurs['repetitions'] = implode(',',$valeurs['repetitions']);
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 $valeurs['id_mot']=_request('id_mot');
60
61 return $valeurs;
62 }
63
64 /**
65 * Identifier le formulaire en faisant abstraction des parametres qui
66 * ne representent pas l'objet edite
67 */
68 function formulaires_editer_evenement_identifier_dist($id_evenement='new', $id_article=0, $retour='', $lier_trad = 0, $config_fonc='evenements_edit_config', $row=array(), $hidden=''){
69 return serialize(array(intval($id_evenement),$lier_trad));
70 }
71
72
73 function evenements_edit_config(){
74 return array();
75 }
76
77 function formulaires_editer_evenement_verifier_dist($id_evenement='new', $id_article=0, $retour='', $lier_trad = 0, $config_fonc='evenements_edit_config', $row=array(), $hidden=''){
78 $erreurs = formulaires_editer_objet_verifier('evenement',$id_evenement,array('titre','date_debut','date_fin','id_mot'));
79
80 include_spip('inc/date_gestion');
81
82 $id_mot = _request('id_mot');
83 $horaire = _request('horaire')=='non'?false:true;
84 $date_debut = verifier_corriger_date_saisie('debut',$horaire,$erreurs);
85 $date_fin = verifier_corriger_date_saisie('fin',$horaire,$erreurs);
86
87 if ($date_debut AND $date_fin AND $date_fin<$date_debut)
88 $erreurs['date_fin'] = _T('agenda:erreur_date_avant_apres');
89
90 include_spip('formulaires/selecteur/selecteur_fonctions');
91 if (count($id = picker_selected(_request('parents_id'),'article'))
92 AND $id = reset($id)
93 AND $id = sql_getfetsel('id_article','spip_articles','id_article='.intval($id))){
94 // reinjecter dans id_parent
95 set_request('id_parent',$id);
96 }
97
98 if (!$id_parent = intval(_request('id_parent')))
99 $erreurs['id_parent'] = _T('agenda:erreur_article_manquant');
100 else {
101 if (!autoriser('creerevenementdans','article',$id_parent))
102 $erreurs['id_parent'] = _T('agenda:erreur_article_interdit');
103 }
104
105 //if (!isset($id_mot))
106 // $erreurs['id_mot'] = _T('seminaire:mot_obligatoire');
107 #if (!count($erreurs))
108 # $erreurs['message_erreur'] = 'ok?';
109 return $erreurs;
110 }
111
112 function formulaires_editer_evenement_traiter_dist($id_evenement='new', $id_article=0, $retour='', $lier_trad = 0, $config_fonc='evenements_edit_config', $row=array(), $hidden=''){
113 set_request('horaire',_request('horaire')=='non'?'non':'oui');
114 set_request('inscription',_request('inscription')?1:0);
115 include_spip('inc/date_gestion');
116 $erreurs = array();
117 $date_debut = verifier_corriger_date_saisie('debut',_request('horaire')=='oui',$erreurs);
118 $date_fin = verifier_corriger_date_saisie('fin',_request('horaire')=='oui',$erreurs);
119 set_request('date_debut',date('Y-m-d H:i:s',$date_debut));
120 set_request('date_fin',date('Y-m-d H:i:s',$date_fin));
121
122 $res = formulaires_editer_objet_traiter('evenement',$id_evenement,$id_article,0,$retour,$config_fonc,$row,$hidden);
123 // si c'est une creation dans un article publie, passer l'evenement en publie
124 // l'article peut être renseigné/modifié par l'utilisateur dans le formulaire. On le retrouve.
125 if (!intval($id_evenement)
126 AND $id_article = sql_getfetsel('id_article', 'spip_evenements', 'id_evenement='.$res['id_evenement'])
127 AND objet_test_si_publie('article',$id_article)){
128 // sera refuse si auteur pas autorise
129 evenement_modifier($res['id_evenement'],array('statut'=>'publie'));
130 }
131 // a la creation, documenter la date de creation
132 if (!intval($id_evenement))
133 evenement_modifier($res['id_evenement'],array('date_creation'=>date('Y-m-d H:i:s')));
134
135
136 $id_evenement = $res['id_evenement'];
137 if ($res['redirect']) {
138 if (strpos($res['redirect'],'article')!==false){
139 $id_article = sql_getfetsel('id_article','spip_evenements','id_evenement='.intval($id_evenement));
140 $res['redirect'] = parametre_url($res['redirect'],'id_article',$id_article);
141 }
142 }
143 //Saisir un mot clé
144 $id_mot=_request('id_mot');
145 $id=sql_insertq('spip_mots_liens',array('id_mot'=>$id_mot,'id_objet'=>$id_evenement,'objet'=>'evenement'));
146 $res['id_mot']=$id_mot;
147 return $res;
148 }
149
150 ?>