source: spip-zone/_plugins_/seminaire/branches/v1.6/formulaires/editer_evenement.php @ 80063

Last change on this file since 80063 was 80063, checked in by amaury.adon@…, 6 years ago

nouvelle version pour le kitcnrs en version spip2 (gros changements dans la structure donc rupture de compatibilité)

  • Property svn:executable set to *
File size: 4.3 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['TBA'])
19        //      $valeurs['titre'] = _T('seminaire:titre_evenement');
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:00:00',$t);
29                $valeurs["date_fin"] = date('Y-m-d H:00:00',$t+3600);
30                $valeurs['horaire'] = 'oui';
31        }
32
33        // les mots
34//      $valeurs['_hidden'] .= "<input type='hidden' name='mots[]' value='#ID_MOT' />";
35//      $valeurs['mots'] = sql_allfetsel('id_mot','spip_mots_evenements','id_evenement='.intval($id_evenement));
36        // les mots
37        $valeurs['mots'] = array();
38        if (intval($id_evenement))
39                $valeurs['mots'] = sql_allfetsel('id_mot','spip_mots_evenements','id_evenement='.intval($id_evenement));
40               
41               
42        // les repetitions
43        $valeurs['repetitions'] = '';
44        if (intval($id_evenement)){
45                $repetitons = sql_allfetsel("date_debut","spip_evenements","id_evenement_source=".intval($id_evenement),'','date_debut');
46                foreach($repetitons as $d)
47                        $valeurs['repetitions'] .= date('d/m/Y',strtotime($d['date_debut'])).' ';
48        }
49
50        // dispatcher date et heure
51        list($valeurs["date_debut"],$valeurs["heure_debut"]) = explode(' ',date('d/m/Y H:i',strtotime($valeurs["date_debut"])));
52        list($valeurs["date_fin"],$valeurs["heure_fin"]) = explode(' ',date('d/m/Y H:i',strtotime($valeurs["date_fin"])));
53       
54        // traiter specifiquement l'horaire qui est une checkbox
55        if (_request('date_debut') AND !_request('horaire'))
56                $valeurs['horaire'] = 'oui';
57
58        return $valeurs;
59}
60
61function evenements_edit_config(){
62        return array();
63}
64
65function formulaires_editer_evenement_verifier_dist($id_evenement='new', $id_article=0, $retour='', $lier_trad = 0, $config_fonc='evenements_edit_config', $row=array(), $hidden=''){
66        $erreurs = formulaires_editer_objet_verifier('evenement',$id_evenement,array('titre','mots','date_debut','date_fin'));
67
68        include_spip('inc/agenda_gestion');
69
70        // champs obligatoires
71    foreach(array ('mots') as $obligatoire) {
72        if (!_request($obligatoire)) $erreurs[$obligatoire] = 'Ce champ est obligatoire';
73    }
74       
75        $horaire = _request('horaire')=='non'?false:true;       
76        $date_debut = agenda_verifier_corriger_date_saisie('debut',$horaire,$erreurs);
77        $date_fin = agenda_verifier_corriger_date_saisie('fin',$horaire,$erreurs);
78                       
79        if ($date_debut AND $date_fin AND $date_fin<$date_debut)
80                $erreurs['date_fin'] = _L('la date de fin doit etre posterieure a la date de debut');
81       
82        include_spip('spip_bonux_fonctions');
83        if (count($id = picker_selected(_request('parents_id'),'article'))
84          AND $id = reset($id)
85          AND $id = sql_getfetsel('id_article','spip_articles','id_article='.intval($id))){
86          // reinjecter dans id_parent
87          set_request('id_parent',$id);
88        }
89
90        if (!$id_parent = intval(_request('id_parent')))
91                $erreurs['id_parent'] = _T('agenda:erreur_article_manquant');
92        else {
93                if (!autoriser('creerevenementdans','article',$id_parent))
94                        $erreurs['id_parent'] = _T('agenda:erreur_article_interdit');
95        }
96
97        #if (!count($erreurs))
98        #       $erreurs['message_erreur'] = 'ok?';
99        return $erreurs;
100}
101
102function formulaires_editer_evenement_traiter_dist($id_evenement='new', $id_article=0, $retour='', $lier_trad = 0, $config_fonc='evenements_edit_config', $row=array(), $hidden=''){
103
104        $message = "";
105        $action_editer = charger_fonction("editer_evenement",'action');
106        list($id,$err) = $action_editer();
107        if ($err){
108                $message .= $err;
109        }
110        elseif ($retour) {
111                include_spip('inc/headers');
112                $retour = parametre_url($retour,'id_evenement',$id);
113                if (strpos($retour,'article')!==FALSE){
114                        $id_article = sql_getfetsel('id_article','spip_evenements','id_evenement='.intval($id));
115                        $retour = parametre_url($retour,'id_article',$id_article);
116                }
117                $message .= redirige_formulaire($retour);
118        }
119        return $message;
120}
121
122?>
Note: See TracBrowser for help on using the repository browser.