source: plugins_spip/gestion_mutu/formulaires/editer_mutu.php @ 5721

Last change on this file since 5721 was 5721, checked in by kent1, 9 years ago

Sans log intempestifs

File size: 4.0 KB
Line 
1<?php
2/**
3 * Plugin Gestion de mutus
4 * © 2010 kent1 (kent1@arscenic.info)
5 * Distribué sous licence GNU/GPL v3
6 *
7 * Formulaire de création et d'édition d'une instance de mutualisation
8 */
9
10if (!defined("_ECRIRE_INC_VERSION")) return;
11
12include_spip('inc/actions');
13include_spip('inc/editer');
14include_spip('gestion_mutu_fonctions');
15
16/**
17 * Chargement des valeurs par défaut du formulaire
18 *
19 * @param int $id_mutu L'instance de mutualisation à créer sinon 'new'
20 * @param string $retour L'url de retour
21 */
22function formulaires_editer_mutu_charger_dist($id_mutu = 'new', $retour=''){
23        global $visiteur_session;
24        $valeurs = formulaires_editer_objet_charger('mutu',$id_mutu,'','',$retour,$config_fonc,$row,$hidden);
25        $valeurs['domaine_possible'] = gestion_mutu_domaines();
26        $valeurs['domaine_libre'] = _request('domaine_libre');
27       
28        if(!is_numeric($id_mutu)){
29                include_spip('inc/autoriser');
30                if(!autoriser('creer','mutu')){
31                        $valeurs['editable'] = false;
32                        if(
33                                ($nb_mutus = sql_getfetsel('nb_mutus','spip_auteurs','id_auteur='.intval($visiteur_session['id_auteur'])))
34                                && ($nb_mutus >= ($mutus_totales = sql_countsel('spip_mutus','id_admin='.intval($visiteur_session['id_auteur']))))
35                        ){
36                                $valeurs['message_erreur'] = _T('gestion_mutus:erreur_autorisation_nombre',array('nb_mutus'=>$nb_mutus,'mutus_totales' => $mutus_totales));
37                        }else{
38                                $valeurs['message_erreur'] = _T('gestion_mutus:erreur_autorisation_simple');
39                        }
40                }
41        }else{
42                $url = $valeurs['url'];
43                $dom_elements = array_reverse(explode('.',$url));
44                $tld = array_shift($dom_elements);
45                $domaine = array_shift($dom_elements).'.'.$tld;
46                $ssdomaine = $dom_elements[0];
47                if((is_array($valeurs['domaine']) && !in_array($domaine,$valeurs['domaine'])) OR ($valeurs['domaine'] != $domaine)){
48                        $valeurs['ssdomaine'] = '';
49                        $valeurs['domaine_libre'] = 'http://'.$url;
50                }
51        }
52        if($valeurs['statut'] == 'poubelle'){
53                $valeurs['readonly'] = true;
54                $valeurs['message_erreur'] = _T('gestion_mutus:erreur_formulaire_readonly_poubelle');
55        }
56        return $valeurs;
57}
58
59/**
60 * Vérification des valeurs du formulaire
61 *
62 * @param int $id_mutu L'instance de mutualisation à créer sinon 'new'
63 * @param string $retour L'url de retour
64 */
65function formulaires_editer_mutu_verifier_dist($id_mutu = 'new', $retour=''){
66        $oblis = array();
67        $oblis[] = 'titre';
68
69        if(lire_config('gestion_mutu/domaine_libre') != 'on'){
70                $oblis[] = 'ssdomaine';
71                $oblis[] = 'domaine';
72        }
73
74        if(intval($id_mutu)){
75                $statut_mutu = sql_getfetsel('statut','spip_mutus','id_mutu='.intval($id_mutu));
76                if($statut_mutu != 'prepa'){
77                        $oblis = array_flip($oblis);
78                        unset($oblis['ssdomaine']);
79                        unset($oblis['domaine']);
80                        $oblis = array_flip($oblis);
81                }
82                if(_request('ssdomaine'))
83                        $erreurs['ssdomaine'] = _T('gestion_mutus:erreur_champ_non_modifiable');
84                if(_request('domaine'))
85                        $erreurs['domaine'] = _T('gestion_mutus:erreur_champ_non_modifiable');
86        }
87
88        $erreurs = formulaires_editer_objet_verifier('mutu',$id_mutu,$oblis);
89        $verifier = charger_fonction('verifier','inc',true);
90
91        if($url = _request('domaine_libre')){
92                $domaine_libre = $verifier($url,'host_fqdn');
93                if($domaine_libre)
94                        $erreurs['domaine_libre'] = $domaine_libre;
95        }
96        if(_request('ssdomaine')){
97                $ssdomaine = $verifier(_request('ssdomaine'),'ssdomaine',array('domaine'=>_request('domaine'),'id_mutu'=> $id_mutu));
98                if($ssdomaine)
99                        $erreurs['ssdomaine'] = $ssdomaine;
100        }
101        return $erreurs;
102}
103
104/**
105 * Traitement des valeurs du formulaire
106 *
107 * @param int $id_mutu L'instance de mutualisation à créer sinon 'new'
108 * @param string $retour L'url de retour
109 */
110function formulaires_editer_mutu_traiter_dist($id_mutu = 'new', $retour=''){
111        $res = formulaires_editer_objet_traiter('mutu',$id_mutu,'','',$retour,$config_fonc,$row,$hidden);
112        $res['message_ok'] = _T('gestion_mutus:message_mutu_enregistree');
113        if(!$retour){
114                if (_request('exec') == 'mutus_editer')
115                        $res['redirect'] = generer_url_ecrire('mutus_tous', "id_mutu=".$res['id_mutu']);
116                else{
117                        $res['redirect'] = parametre_url(self(), "id_mutu",$res['id_mutu']);
118                }
119        }
120    return $res;
121}
122?>
Note: See TracBrowser for help on using the repository browser.