source: plugins_spip/gestion_mutu/trunk/formulaires/editer_mutu.php @ 7456

Last change on this file since 7456 was 7456, checked in by kent1, 7 years ago

Meilleure vérification de l'existence d'un domaine

Des classes manquantes

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        $valeurs = formulaires_editer_objet_charger('mutu',$id_mutu,'','',$retour,$config_fonc,$row,$hidden);
24        $valeurs['domaine_possible'] = gestion_mutu_domaines();
25        $valeurs['domaine_libre'] = _request('domaine_libre');
26       
27        if(!is_numeric($id_mutu)){
28                include_spip('inc/autoriser');
29                if(!autoriser('creer','mutu')){
30                        $valeurs['editable'] = false;
31                        if(
32                                ($nb_mutus = sql_getfetsel('nb_mutus','spip_auteurs','id_auteur='.intval($GLOBALS['visiteur_session']['id_auteur'])))
33                                && ($nb_mutus >= ($mutus_totales = sql_countsel('spip_mutus','id_admin='.intval($GLOBALS['visiteur_session']['id_auteur']))))
34                        ){
35                                $valeurs['message_erreur'] = _T('gestion_mutus:erreur_autorisation_nombre',array('nb_mutus'=>$nb_mutus,'mutus_totales' => $mutus_totales));
36                        }else{
37                                $valeurs['message_erreur'] = _T('gestion_mutus:erreur_autorisation_simple');
38                        }
39                }
40        }else{
41                $url = $valeurs['url'];
42                $dom_elements = explode('.',$url);
43                $ssdomaine = $dom_elements[0];
44                unset($dom_elements[0]);
45                $domaine = implode('.',$dom_elements);
46               
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        $new = true;
69        if(lire_config('gestion_mutu/domaine_libre','off') != '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                $new = false;
88        }
89
90        $erreurs = formulaires_editer_objet_verifier('mutu',$id_mutu,$oblis);
91        $verifier = charger_fonction('verifier','inc',true);
92
93        if($url = _request('domaine_libre')){
94                $domaine_libre = $verifier($url,'host_fqdn');
95                if($domaine_libre)
96                        $erreurs['domaine_libre'] = $domaine_libre;
97        }
98        if(_request('ssdomaine')){
99                $ssdomaine = $verifier(_request('ssdomaine'),'ssdomaine',array('domaine'=>_request('domaine'),'id_mutu'=> $id_mutu));
100                if($ssdomaine)
101                        $erreurs['ssdomaine'] = $ssdomaine;
102        }
103        return $erreurs;
104}
105
106/**
107 * Traitement des valeurs du formulaire
108 *
109 * @param int $id_mutu L'instance de mutualisation à créer sinon 'new'
110 * @param string $retour L'url de retour
111 */
112function formulaires_editer_mutu_traiter_dist($id_mutu = 'new', $retour=''){
113        $res = formulaires_editer_objet_traiter('mutu',$id_mutu,'','',$retour,$config_fonc,$row,$hidden);
114        $res['message_ok'] = _T('gestion_mutus:message_mutu_enregistree');
115        if(!$retour){
116                if (_request('exec') == 'mutus_editer')
117                        $res['redirect'] = generer_url_ecrire('mutus_tous', "id_mutu=".$res['id_mutu']);
118                else{
119                        $res['redirect'] = parametre_url(self(), "id_mutu",$res['id_mutu']);
120                }
121        }
122    return $res;
123}
124?>
Note: See TracBrowser for help on using the repository browser.