source: spip-zone/_plugins_/inscription2/inscription2_2_0/inscription2_pipelines.php @ 31105

Last change on this file since 31105 was 31105, checked in by kent1@…, 10 years ago

Une nouvelle option "affordance_form" pour plaire à certains ;)

Modification du formulaire de mot de passe pour pas modifier le statut de l'auteur sans raison

File size: 6.6 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5/**
6 *
7 * Insertion dans le pipeline ajouter_boutons
8 * Modifie le bouton afficher les visiteurs aux webmestres
9 *
10 * @return
11 * @param object $boutons_admin
12 */
13function inscription2_ajouter_boutons($boutons_admin){
14        if ($GLOBALS['connect_statut'] == "0minirezo" && $GLOBALS["connect_toutes_rubriques"]) {
15                //$boutons_admin['auteurs']->sousmenu['auteurs']= '';
16                unset($boutons_admin['auteurs']->sousmenu['auteurs']);
17        }
18        return $boutons_admin;
19}
20
21/**
22 *
23 * Insertion dans le pipeline affiche_milieu
24 * Dans la page auteur_infos, insertion des champs spécifiques d'Inscription2
25 *
26 * @return array Le $flux modifié
27 * @param array $flux
28 */
29function inscription2_affiche_milieu($flux){
30        if($flux['args']['exec'] == 'auteur_infos') {
31                $exceptions_des_champs_auteurs_elargis = pipeline('i2_exceptions_des_champs_auteurs_elargis',array());
32                $legender_auteur_supp = recuperer_fond('prive/inscription2_fiche',array('id_auteur'=>$flux['args']['id_auteur'],'exceptions'=>$exceptions_des_champs_auteurs_elargis));
33                $flux['data'] .= $legender_auteur_supp;
34        }
35        return $flux;
36}
37
38/**
39 *
40 * Insertion dans le pipeline editer_contenu_objet
41 * Ajoute les champs I2 sur le formulaire CVT editer_auteur
42 *
43 * @return array Le $flux complété
44 * @param array $flux
45 */
46function inscription2_editer_contenu_objet($flux){
47        if ($flux['args']['type']=='auteur') {
48                include_spip('public/assembler');
49                include_spip('inc/legender_auteur_supp');
50                /**
51                 *
52                 * Si on est dans la modification d'un auteur :
53                 * vérification de l'existence d'une entrée correspondante dans spip_auteurs_elargis
54                 * Quelquefois elle n'existe pas.
55                 *
56                 */
57                if((is_numeric($flux['args']['contexte']['id_auteur'])) && (!sql_getfetsel('id_auteur','spip_auteurs_elargis','id_auteur='.$flux['args']['contexte']['id_auteur']))){
58                        sql_insertq('spip_auteurs_elargis',array('id_auteur'=>$flux['args']['contexte']['id_auteur']));
59                }
60                /**
61                 *
62                 * Insertion des champs dans le formulaire aprs le textarea PGP
63                 *
64                 */
65                $inscription2 = legender_auteur_supp_saisir($flux['args']['contexte']['id_auteur']);
66                $flux['data'] = preg_replace('%(<li class="editer_pgp(.*?)</li>)%is', '$1'."\n".$inscription2, $flux['data']);
67        }
68        return $flux;
69}
70
71
72/**
73 *
74 * Insertion dans le pipeline post_edition
75 * ajouter les champs inscription2 soumis lors de la soumission du formulaire CVT editer_auteur
76 * @return
77 * @param object $flux
78 */
79function inscription2_post_edition($flux){
80        if ($flux['args']['table']=='spip_auteurs') {
81                spip_log('INSCRIPTION 2 : inscription2_post_edition','inscription2');
82                $exceptions_des_champs_auteurs_elargis = pipeline('i2_exceptions_des_champs_auteurs_elargis',array());
83                $id_auteur = $flux['args']['id_objet'];
84                foreach(lire_config('inscription2',array()) as $cle => $val){
85                        $cle = ereg_replace("_(obligatoire|fiche|table).*$", "", $cle);
86                        if($val=='on' AND !in_array($cle,$exceptions_des_champs_auteurs_elargis) and !ereg("^(categories|zone|newsletter).*$", $cle)){
87                                $var_user[$cle] = _request($cle);
88                                if(is_array(_request($cle))){
89                                        spip_log($var_user[$cle]);
90                                        $var_user[$cle] = serialize(_request($cle));
91                                }
92                                spip_log("$cle = ".$var_user[$cle]);
93                        }
94                }
95                if (!sql_getfetsel('id_auteur','spip_auteurs_elargis','id_auteur='.$id_auteur)){
96                        //insertion de l'id_auteur dans spip_auteurs_elargis sinon on peut pas proceder a l'update
97                        $id_elargi = sql_insertq("spip_auteurs_elargis",array('id_auteur'=> $id_auteur));
98                }
99                sql_updateq("spip_auteurs_elargis",$var_user,"id_auteur=$id_auteur");
100
101                // Notifications, gestion des revisions, reindexation...
102                pipeline('post_edition',
103                        array(
104                                'args' => array(
105                                        'table' => 'spip_auteurs_elargis',
106                                        'id_objet' => $id_auteur
107                                ),
108                                'data' => $auteur
109                        )
110                );
111        }
112        return $flux;
113}
114
115/**
116 *
117 * Insertion dans le pipeline i2_exceptions_des_champs_auteurs_elargis
118 * qui empêche la création de certains champs dans la table
119 * après les avoir configuré
120 *
121 * @return array Un tableau des champs correspondant au "name" de son input de configuration dans le CFG
122 * @param array $array Prend un tableau en argument qui doit être complété en fonction des besoins
123 */
124
125function inscription2_i2_exceptions_des_champs_auteurs_elargis($array){
126        // liste des champs pour lesquels on ne doit pas créer de champs dans la table spip_auteurs_elargis
127
128        // Principalement les champs déjà présents dans spip_auteurs
129        $array[] = 'id_auteur';
130        $array[] = 'bio';
131        $array[] = 'nom';
132        $array[] = 'pass';
133        $array[] = 'login';
134        $array[] = 'email';
135        $array[] = 'statut';
136        $array[] = 'pgp';
137        $array[] = 'url_site';
138        $array[] = 'nom_site';
139
140        // Des choses spécifiques à inscription2
141        $array[] = 'username';
142        $array[] = 'statut_nouveau';
143        $array[] = 'statut_int';
144        $array[] = 'statut_interne';
145        $array[] = 'accesrestreint';
146        $array[] = 'password';
147        $array[] = 'affordance_form';
148
149        return $array;
150}
151
152/**
153 *
154 * Insertion dans le pipeline i2_verifications_specifiques du plugin inscription2
155 *
156 * @return array Tableau contenant plusieurs tableaux en fonction du type de champs
157 * @param object $array Doit recevoir un tableau du même type
158 */
159
160function inscription2_i2_verifications_specifiques($array){
161
162        // Les emails : fonction inc/inscrition2_valide_email
163        $array['email'] = 'valide_email';
164
165        // Les logins : fonction inc/inscription2_valide_login
166        $array['login'] = 'valide_login';
167
168        // Les statuts : fonction inc/inscription2_valide_statut
169        $array['statut'] = 'valide_statut';
170
171        // Les codes postaux : fonction inc/inscription2_valide_cp
172        $array['code_postal'] = 'valide_cp';
173        $array['code_postal_pro'] = 'valide_cp';
174
175        // Les numéros de téléphone : fonction inc/inscription2_valide_numero
176        $array['telephone'] = 'valide_numero';
177        $array['fax'] = 'valide_numero';
178        $array['mobile'] = 'valide_numero';
179        $array['telephone_pro'] = 'valide_numero';
180        $array['fax_pro'] = 'valide_numero';
181        $array['mobile_pro'] = 'valide_numero';
182
183        return $array;
184}
185
186/**
187 *
188 * Insertion dans le pipeline affiche_droite
189 * Dans certaines pages définies, afficher le lien d'accès à la page des comptes utilisateurs
190 *
191 * @return array Le même tableau qu'il reçoit en argument
192 * @param array $flux Un tableau donnant des informations sur le contenu passé au pipeline
193 */
194
195function inscription2_affiche_droite($flux){
196        if(((preg_match('/^inscription2/',$flux['args']['exec']))
197                 || (preg_match('/^auteurs/',$flux['args']['exec']))
198                 || (preg_match('/^i2_/',$flux['args']['exec']))
199                 || (($flux['args']['exec'] == 'cfg') && ((_request('cfg') == 'inscription2') || preg_match('/^i2_/',_request('cfg'))))
200                )
201                 && ($flux['args']['exec'] != 'inscription2_adherents')){
202        $flux['data'] .= recuperer_fond('prive/inscription2_affiche_droite');
203        }
204        return $flux;
205}
206?>
Note: See TracBrowser for help on using the repository browser.