source: spip-zone/_plugins_/inscription2/inscription2_2_0/inc/inscription2_verifier_tables.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: 2.7 KB
Line 
1<?php
2/**
3 * Plugin Inscription2 pour SPIP
4 * Licence GPL v3
5 *
6 */
7
8
9/**
10 * Fonction de vérification des tables pour inscription2
11 * Appelée à chaque validation du formulaire CFG
12 */
13function inc_inscription2_verifier_tables_dist(){
14        $exceptions_des_champs_auteurs_elargis = pipeline('i2_exceptions_des_champs_auteurs_elargis',array());
15        spip_log('INCRIPTION 2 : verification des tables','inscription2');
16
17        include_spip('base/serial');
18        global $tables_principales;
19    base_serial($tables_principales);
20
21        //definition de la table cible
22        $table = "spip_auteurs_elargis";
23
24        if(isset($tables_principales[$table]['field']) and $tables_principales[$table]['key']['PRIMARY KEY']!='id_auteur'){
25                if(!isset($tables_principales[$table]['field']['id_auteur'])){
26                        sql_alter("TABLE ".$table." ADD id_auteur INT NOT NULL PRIMARY KEY");
27                }
28                sql_alter("TABLE ".$table." DROP id, DROP INDEX id_auteur, ADD PRIMARY KEY (id_auteur)");
29        }else if(!$tables_principales[$table]){
30                sql_create($table,
31                        array("id_auteur"=> "bigint(21) NOT NULL default '0'"),
32                        array('PRIMARY KEY' => "id_auteur")
33                );
34        }
35
36        if (is_array(lire_config('inscription2'))){
37                $clef_passee = array();
38                foreach(lire_config('inscription2',array()) as $clef => $val) {
39                        $cle = preg_replace("/_(obligatoire|fiche|table).*/", "", $clef);
40                        if(!in_array($cle,$clef_passee)){
41                                if(!in_array($cle,$exceptions_des_champs_auteurs_elargis) and !ereg("^(categories|zone|newsletter).*$", $cle) ){
42                                        if($cle == 'naissance' and !isset($tables_principales[$table]['field'][$cle]) and _request($clef)!=''){
43                                                $tables_principales[$table]['field'][$cle] = "DATE DEFAULT '0000-00-00' NOT NULL";
44                                        }elseif(_request($clef)!='' and !isset($tables_principales[$table]['field'][$cle]) and $cle == 'validite'){
45                                                $tables_principales[$table]['field'][$cle] = "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL";
46                                        }elseif(_request($clef)!='' and !isset($tables_principales[$table]['field'][$cle]) and $cle == 'pays'){
47                                                $tables_principales[$table]['field'][$cle] = " int NOT NULL";
48                                        }elseif(!isset($tables_principales[$table]['field'][$cle]) and _request($clef)!=''){
49                                                $tables_principales[$table]['field'][$cle] = "text NOT NULL";
50                                        }
51                                }
52                                if(in_array($cle,$exceptions_des_champs_auteurs_elargis)){
53                                        spip_log("INSCRIPTION 2 : le champs $cle est dans les exception de creation de champs...",'inscription2');
54                                }
55                                $clef_passee[] = $cle;
56                        }
57                }
58        }
59
60        if($GLOBALS['meta']['spiplistes_version'] and !isset($tables_principales[$table]['field']['spip_listes_format']))
61                $tables_principales[$table]['field']['spip_listes_format'] = "VARCHAR(8) DEFAULT 'non' NOT NULL";
62
63        include_spip('base/create');
64        maj_tables($table);
65        return;
66}
67?>
Note: See TracBrowser for help on using the repository browser.