source: spip-zone/_plugins_/inscription/branches/inscription3_2x/base/inscription3.php @ 69598

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

On y ajoute inscription3 qui est la suite

File size: 3.9 KB
Line 
1<?php
2/**
3 * Plugin Inscription3 pour SPIP
4 * © 2007-2010 - cmtmt, BoOz, kent1
5 * Licence GPL v3
6 *
7 * Définitions des tables et insertion dans les champs extras
8 */
9
10if (!defined("_ECRIRE_INC_VERSION")) return;
11
12function inscription3_declarer_tables_interfaces($interface){
13        $interface['tables_jointures']['spip_auteurs'][] = 'auteurs_liens';
14
15        $interface['table_des_tables']['geo_pays']='geo_pays';
16        $interface['table_des_tables']['auteurs_liens']='auteurs_liens';
17
18        return $interface;
19}
20
21function inscription3_declarer_tables_principales($tables_principales){
22        /*
23         * A partir de Inscription 2 (0.70)
24         * on utilise le plugin geographie pour gerer les pays.
25         * on ne le rend pas obligatoire en creant la table spip_geo_pays
26         * si le plugin n'est pas installe
27         */
28       
29        /* penser a modifier si le plugin geographie modifie cette table */
30        $spip_geo_pays = array(
31                        "id_pays"       => "smallint NOT NULL",
32                        "code_iso"      => "varchar(2) NOT NULL default ''",
33                        "nom"   => "text DEFAULT '' NOT NULL"
34        );
35        $spip_geo_pays_key = array(
36                        "PRIMARY KEY"           => "id_pays",
37                        "UNIQUE KEY code_iso"   => "code_iso"
38        );
39        $tables_principales['spip_geo_pays'] = array(
40                'field' => &$spip_geo_pays,
41                'key' => &$spip_geo_pays_key);
42
43        return $tables_principales;
44}
45
46function inscription3_declarer_champs_extras($champs = array()){
47        $exceptions_des_champs_auteurs_elargis = pipeline('i3_exceptions_des_champs_auteurs_elargis',array());
48        $definitions_champs = pipeline('i3_definition_champs',array());
49
50        if(function_exists('lire_config')){
51                $config = lire_config('inscription3');
52                if(($config == '') OR !is_array($config)){
53                        return $champs;
54                }
55
56                $champ_presents = array();
57
58                foreach($config as $clef => $val) {
59                        $cle = preg_replace("/_(obligatoire|fiche|table).*/", "", $clef);
60                        if(!in_array($cle,$champ_presents) && ($val == 'on')){
61                                if(!in_array($cle,$exceptions_des_champs_auteurs_elargis) and !preg_match(",(categories|zone|newsletter).*$,", $cle)  and ($val == 'on')){
62                                        $champ_presents[] = $cle;
63                                        if(array_key_exists($cle,$definitions_champs)){
64                                                $array_defaut = array(
65                                                        'table' => 'auteur', // sur quelle table ?
66                                                        'champ' => $cle, // nom sql
67                                                        'label' => 'inscription3:label_'.$cle, // chaine de langue 'prefix:cle'
68                                                        'saisie_externe' => true,
69                                                        'type' => 'input', // type de saisie
70                                                        'saisie_parametres' => (!test_espace_prive() && ($GLOBALS['visiteur_session']['statut'] != '0minirezo') && ($config[$cle.'_fiche_mod'] != 'on')) ? array('readonly'=>'oui','size'=>'30') : array('size'=>'30'),
71                                                        'sql' => "text NOT NULL", // declaration sql
72                                                        'obligatoire' => ($config[$cle.'_obligatoire'] == 'on') ? true : false
73                                                );
74                                                $array = array_merge($array_defaut,$definitions_champs[$cle]);
75                                                $champs[] = new ChampExtra($array);
76                                        }
77                                        else
78                                                $champs[] = new ChampExtra(array(
79                                                        'table' => 'auteur', // sur quelle table ?
80                                                        'champ' => $cle, // nom sql
81                                                        'label' => 'inscription3:label_'.$cle, // chaine de langue 'prefix:cle'
82                                                        'saisie_externe' => true,
83                                                        'type' => 'input', // type de saisie
84                                                        'saisie_parametres' => (!test_espace_prive() && ($GLOBALS['visiteur_session']['statut'] != '0minirezo') && ($config[$cle.'_fiche_mod'] != 'on')) ? array('readonly'=>'oui','size'=>'30') : array('size'=>'30'),
85                                                        'sql' => "text NOT NULL", // declaration sql
86                                                        'obligatoire' => ($config[$cle.'_obligatoire'] == 'on') ? true : false
87                                                ));
88                                }
89                        }
90                }
91        }
92        return $champs;
93}
94
95function inscription3_declarer_tables_auxiliaires($tables_auxiliaires){
96        $spip_auteurs_liens = array(
97                "id_auteur" => "bigint(21) NOT NULL",
98                "id_objet"      => "bigint(21) NOT NULL",
99                "objet"         => "VARCHAR(25) DEFAULT '' NOT NULL",
100                "type"          => "VARCHAR(25) DEFAULT '' NOT NULL");
101
102        $spip_auteurs_liens_key = array(
103                "PRIMARY KEY"   => "id_auteur,id_objet,objet",
104                "KEY id_objet" => "id_auteur");
105
106        $tables_auxiliaires['spip_auteurs_liens'] = array(
107                'field' => &$spip_auteurs_liens,
108                'key' => &$spip_auteurs_liens_key);
109
110        return $tables_auxiliaires;
111}
112
113?>
Note: See TracBrowser for help on using the repository browser.