Ignore:
Timestamp:
Sep 18, 2009, 11:23:52 AM (10 years ago)
Author:
kent1@…
Message:

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:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/inscription2/inscription2_2_0/inc/inscription2_verifier_tables.php

    r28059 r31637  
    11<?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 */
    213function inc_inscription2_verifier_tables_dist(){
    314        $exceptions_des_champs_auteurs_elargis = pipeline('i2_exceptions_des_champs_auteurs_elargis',array());
    415        spip_log('INCRIPTION 2 : verification des tables','inscription2');
    5        
     16
     17        include_spip('base/serial');
     18        global $tables_principales;
     19    base_serial($tables_principales);
     20
    621        //definition de la table cible
    7         $table_nom = "spip_auteurs_elargis";
    8         $desc = sql_showtable($table_nom,'', false);
    9                
    10         if(isset($desc['field']) and $desc['key']['PRIMARY KEY']!='id_auteur'){
    11                 if(!isset($desc['field']['id_auteur'])){
    12                         sql_alter("TABLE ".$table_nom." ADD id_auteur INT NOT NULL PRIMARY KEY");
     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");
    1327                }
    14                 sql_alter("TABLE ".$table_nom." DROP id, DROP INDEX id_auteur, ADD PRIMARY KEY (id_auteur)");
    15         }else if(!$desc){
    16                 sql_create($table_nom,
     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,
    1731                        array("id_auteur"=> "bigint(21) NOT NULL default '0'"),
    1832                        array('PRIMARY KEY' => "id_auteur")
    1933                );
    2034        }
    21        
     35
    2236        if (is_array(lire_config('inscription2'))){
    2337                $clef_passee = array();
    2438                foreach(lire_config('inscription2',array()) as $clef => $val) {
    25                         $cle = ereg_replace("_(obligatoire|fiche|table).*", "", $clef);
     39                        $cle = preg_replace("/_(obligatoire|fiche|table).*/", "", $clef);
    2640                        if(!in_array($cle,$clef_passee)){
    2741                                if(!in_array($cle,$exceptions_des_champs_auteurs_elargis) and !ereg("^(categories|zone|newsletter).*$", $cle) ){
    28                                         if($cle == 'naissance' and !isset($desc['field'][$cle]) and _request($clef)!=''){
    29                                                 sql_alter("TABLE ".$table_nom." ADD ".$cle." DATE DEFAULT '0000-00-00' NOT NULL");
    30                                                 $desc['field'][$cle] = "DATE DEFAULT '0000-00-00' NOT NULL";
    31                                         }elseif(_request($clef)!='' and !isset($desc['field'][$cle]) and $cle == 'validite'){
    32                                                 sql_alter("TABLE ".$table_nom." ADD ".$cle." datetime DEFAULT '0000-00-00 00:00:00' NOT NULL");
    33                                                 $desc['field'][$cle] = "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL";
    34                                         }elseif(_request($clef)!='' and !isset($desc['field'][$cle]) and $cle == 'pays'){
    35                                                 sql_alter("TABLE ".$table_nom." ADD ".$cle." int NOT NULL");
    36                                                 $desc['field'][$cle] = " int NOT NULL";
    37                                         }elseif(!isset($desc['field'][$cle]) and _request($clef)!=''){
    38                                                 sql_alter("TABLE ".$table_nom." ADD ".$cle." text NOT NULL");
    39                                                 $desc['field'][$cle] = "text NOT NULL";
     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";
    4050                                        }
    4151                                }
     
    4757                }
    4858        }
    49        
    50         if($GLOBALS['meta']['spiplistes_version'] and !isset($desc['field']['spip_listes_format']))
    51                 sql_alter("TABLE `".$table_nom."` ADD `spip_listes_format` VARCHAR(8) DEFAULT 'non' NOT NULL");
     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;
    5266}
    5367?>
Note: See TracChangeset for help on using the changeset viewer.