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

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

les ereg_replace deviennent preg_replace

On passe par les apis SPIP pour mettre à jour les tables (maj_tables)

On indente correctement le code

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