Changeset 26990 in spip-zone


Ignore:
Timestamp:
Mar 2, 2009, 3:54:57 AM (10 years ago)
Author:
kent1@…
Message:

ATTENTION : méthode ultra pas élégante mais qui devrait fonctionner ...

Utilisation d'une globale pour définir des inputs du formulaire de configuration qui ne doivent pas créer de champs dans la base, mais simplement être utilisable avec #CONFIG par exemple...

Ceci est utilisé notamment pour les champs qui existent déjà dans la table spip_auteurs par exemple...

Un sous-plugin peut rajouter un champs dans cette liste en faisant quelque chose qui ressemblerait à cela :

$exceptions_des_champs_auteurs_elargis[] = 'Mon_nouveau_champs_exception';

N'hésitez pas à signaler si cela pose quelque problème de sécurité ou autre ...

PS: Vous avez vu? j'essaie de faire des commits à la ESJ en expliquant ce que je fais et tout et tout ... Bon ok ... en terme de code ca n'a rien à voir... AH? en terme de language non plus? ;)

Location:
_plugins_/_test_/inscription2/inscription2_193
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_test_/inscription2/inscription2_193/base/inscription2.php

    r26933 r26990  
    1212
    1313function inscription2_declarer_tables_principales($tables_principales){
     14        global $exceptions_des_champs_auteurs_elargis;
    1415        $spip_auteurs_elargis['id_auteur'] = "bigint(21) NOT NULL";
    1516               
     
    1718                foreach(lire_config('inscription2',array()) as $cle => $val) {
    1819                        $cle = ereg_replace("_(obligatoire|fiche|table).*", "", $cle);
    19                         if($val!='' and $clef != 'login' and $cle != 'nom' and $cle != 'statut_nouveau' and $cle != 'email' and $cle != 'username' and $cle != 'statut_int'  and $cle != 'accesrestreint' and !ereg("^(categories|zone|newsletter).*$", $cle) ){
     20                        if($val!='' and !in_array($cle,$exceptions_des_champs_auteurs_elargis) and !ereg("^(categories|zone|newsletter).*$", $cle) ){
    2021                                if($cle == 'naissance' )
    2122                                        $spip_auteurs_elargis[$cle] = "DATE DEFAULT '0000-00-00' NOT NULL";
  • _plugins_/_test_/inscription2/inscription2_193/base/inscription2_installer.php

    r26933 r26990  
    44
    55function inscription2_upgrade(){
    6        
     6        global $exceptions_des_champs_auteurs_elargis;
    77    include_spip('cfg_options');
    88       
     
    242242                                        spip_query("ALTER TABLE ".$table_nom." ADD ".$cle." int NOT NULL");
    243243                                        $desc['field'][$cle] = " int NOT NULL";
    244                                 }elseif($val!='' and !isset($desc['field'][$cle]) and $cle != 'statut_nouveau' and $cle != 'nom' and $cle != 'login' and $cle != 'email' and $cle != 'username' and $cle != 'statut_relances'  and $cle != 'accesrestreint'){
     244                                }elseif($val!='' and !isset($desc['field'][$cle]) and !in_array($cle,$exceptions_des_champs_auteurs_elargis)){
    245245                                        spip_query("ALTER TABLE ".$table_nom." ADD ".$cle." text NOT NULL");
    246246                                        $desc['field'][$cle] = " text NOT NULL ";
  • _plugins_/_test_/inscription2/inscription2_193/inc/inscription2_form_fonctions.php

    r24846 r26990  
    44 */
    55function inscription2_champs_formulaire() {
    6 
    76        //charge les valeurs de chaque champs proposés dans le formulaire   
    87        foreach (lire_config('inscription2/') as $clef => $valeur) {
     
    1716                preg_match('/^(.*)(?:_obligatoire)/i', $clef, $resultat);
    1817       
    19                 if ((!empty($resultat[1])) && (lire_config('inscription2/'.$resultat[1]) == 'on')) {
     18                if ((!empty($resultat[1])) && (lire_config('inscription2/'.$resultat[1]) == 'on') && ($resultat[1] != 'password')) {
    2019                        $valeurs[] = $resultat[1];
    2120                }
  • _plugins_/_test_/inscription2/inscription2_193/inc/inscription2_verifier_tables.php

    r25509 r26990  
    11<?php
    22function inc_inscription2_verifier_tables_dist(){
     3        global $exceptions_des_champs_auteurs_elargis;
    34        spip_log('verification des tables pour inscription2','inscription2');
    45       
     
    67        $table_nom = "spip_auteurs_elargis";
    78        $desc = sql_showtable($table_nom, true, '');
    8         sql_create($table_nom,
    9                                 array('id_auteur'=> 'bigint NOT NULL'),
    10                                 array('KEY' => 'id_auteur')
    11         );
     9        if(!$desc){
     10                sql_create($table_nom,
     11                        array('id_auteur'=> 'bigint NOT NULL'),
     12                        array('KEY' => 'id_auteur')
     13                );
     14        }
    1215        foreach(lire_config('inscription2',array()) as $clef => $val) {
    1316                $cle = ereg_replace("_(obligatoire|fiche|table).*", "", $clef);
    14                 if($cle != 'nom'and $cle != 'login' and $cle != 'email' and $cle != 'password' and $cle != 'username' and $cle != 'statut_nouveau' and $cle != 'statut_int'  and $cle != 'accesrestreint' and !ereg("^(categories|zone|newsletter).*$", $cle) ){
     17                if(!in_array($cle,$exceptions_des_champs_auteurs_elargis) and !ereg("^(categories|zone|newsletter).*$", $cle) ){
    1518                        if($cle == 'naissance' and !isset($desc['field'][$cle]) and _request($clef)!=''){
    1619                                sql_alter("TABLE ".$table_nom." ADD ".$cle." DATE DEFAULT '0000-00-00' NOT NULL");
     
    2730                        }
    2831                }
     32                if(in_array($cle,$exceptions_des_champs_auteurs_elargis)){
     33                        spip_log("le champs $cle est dans les exception de creation de champs....");
     34                }
    2935        }
    3036        $listes = lire_config('plugin/SPIPLISTES');
  • _plugins_/_test_/inscription2/inscription2_193/inscription2_mes_options.php

    r26744 r26990  
    22
    33include_spip('base/abstract_sql');
     4
     5// liste des champs pour lesquels on ne doit pas créer de champs dans la table spip_auteurs_elargis
     6
     7// Principalement les champs déjà présents dans spip_auteurs
     8$exceptions_des_champs_auteurs_elargis[] = 'bio';
     9$exceptions_des_champs_auteurs_elargis[] = 'nom';
     10$exceptions_des_champs_auteurs_elargis[] = 'pass';
     11$exceptions_des_champs_auteurs_elargis[] = 'login';
     12$exceptions_des_champs_auteurs_elargis[] = 'email';
     13$exceptions_des_champs_auteurs_elargis[] = 'statut';
     14$exceptions_des_champs_auteurs_elargis[] = 'gpg';
     15
     16// Des choses spécifiques à inscription2
     17$exceptions_des_champs_auteurs_elargis[] = 'username';
     18$exceptions_des_champs_auteurs_elargis[] = 'statut_nouveau';
     19$exceptions_des_champs_auteurs_elargis[] = 'statut_int';
     20$exceptions_des_champs_auteurs_elargis[] = 'accesrestreint';
     21$exceptions_des_champs_auteurs_elargis[] = 'password';
    422
    523//
Note: See TracChangeset for help on using the changeset viewer.