Changeset 2352 in spip-zone


Ignore:
Timestamp:
Mar 13, 2006, 6:10:07 PM (14 years ago)
Author:
phil@…
Message:

Modification de l'interface de configuration du plugin pour assister la configuration.

  • test de connexion au serveur de base de données;
  • récupération de la liste des tables directement en BD;
  • segmentation de la configuration en 3 étapes au lieu de 2;
  • récupération de la liste des champs directement dans le(s) table(s);
  • rechargement javascipt du formulaire si changement dans le(s) choix de(s) table(s)
  • remplacement des zones de saisie des tables et champs par des listes déroulantes;
Location:
_plugins_/authentification/auth_bd_externe
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/authentification/auth_bd_externe/auth_bd_externe.php

    r2342 r2352  
    77$bd_externe=lire_parametrage_auth_bd_externe ();
    88
    9 // Inclusion des fonctions d'accès à la BD basées : mysql ou Pear DB
    10 if ($bd_externe['serveur']=="mysql") require_once(dirname(__FILE__).'/inc/mysql_query.php');
    11 else require_once(dirname(__FILE__).'/inc/pear_query.php');
    129
    1310// Inclusion fonctions diverses
     
    283280                if (!$GLOBALS['bd_externe_present']) return false;
    284281               
     282                // Inclusion des fonctions d'accès à la BD basées : mysql ou Pear DB
     283                if ($bd_externe['serveur']=="mysql") require_once(dirname(__FILE__).'/inc/mysql_query.php');
     284                else require_once(dirname(__FILE__).'/inc/pear_query.php');
     285
    285286                return (bd_externe_connect());
    286287        }
     
    296297               
    297298                $cond_supp = '';
    298                 var_dump($bd_externe);
     299               
    299300                // Securite...
    300301                if (!$login || !$pass) return false;
     
    307308                                $local_pass = md5($pass);
    308309                                break;
    309                         case 'challenge_md5' :
    310                         var_dump($bd_externe);
     310                        case 'challenge_md5' :                 
    311311                                $cond_supp = ', '.$bd_externe['champ_alea'].' AS alea'; //Select des alea.
    312312                                break;
     
    340340                        }
    341341                        $cond_supp2=AjouteClauseCond($cond_supp2,"");
    342                 }
    343                
    344                 $query.=$cond_supp2;   
     342                        $query.=$cond_supp2;
     343                }
    345344
    346345                $result = bd_externe_query($query);
     
    390389                }
    391390                $query=AjouteClause($query,$bd_externe['champ_login_ext']."='".addslashes($this->login)."'");
    392                                
     391
     392
    393393                $result = bd_externe_query($query);
    394394
    395                 if ($rows = $row = bd_externe_fetch($result) ) {
     395                if ($rows = bd_externe_fetch($result) ) {
    396396                        $this->nom="";
    397397                        if ($bd_externe['champ_prenom']!="") $this->nom= ucwords(strtolower($rows[$bd_externe['champ_prenom']]))." ";
  • _plugins_/authentification/auth_bd_externe/exec/auth_bd_externe.php

    r2342 r2352  
    11<?php
    22require_once(dirname(__FILE__).'/../inc/meta_auth_bd_externe.php');
    3 
     3require_once(dirname(__FILE__).'/../inc/utils.php');
    44
    55function exec_auth_bd_externe(){
    66        global $connect_statut;
     7        global $bd_externe;
     8        global $bd_externe_link;
    79        global $connect_toutes_rubriques;
    810        global $spip_lang_right;
     
    3032        debut_droite();
    3133
    32         // TRAITEMENT DU FORMULAIRE DE CONNEXION AU SERVEUR DE BD
    33         if (($_POST['param_connexion_db']=="etape1") OR ($_POST['param_connexion_db']=="etape2")) {
     34
     35        // TRAITEMENT DU FORMULAIRE DE CONNEXION AU SERVEUR DE BD (etape1)
     36        if ( ($_POST['param_connexion_db']=="etape1") OR ($_POST['param_connexion_db']=="etape2") OR ($_POST['param_connexion_db']=="etape3") ) {
    3437                $bd_externe['serveur']=$_POST['bd_serveur_type'];
    3538                $bd_externe['hostname']=$_POST['bd_hostname'];
     
    3740                $bd_externe['password']=$_POST['bd_password'];
    3841                $bd_externe['database']=$_POST['bd_database'];
    39                
    40                 // TRAITEMENT DU FORMULAIRE TABLE ET CHAMPS DE LA BASE EXTERNE
    41                 if ($_POST['param_connexion_db']=="etape2") {
    42                         $bd_externe['table']=$_POST['bd_table'];
    43                         $bd_externe['champ_cle']=$_POST['bd_champ_cle'];
    44                         $bd_externe['table_jointure']=$_POST['bd_table_jointure'];
    45                        
    46                         $bd_externe['champ_login_ext']=$_POST['bd_champ_login_ext'];
    47                         $bd_externe['champ_passwd']=$_POST['bd_champ_passwd'];
    48                         $bd_externe['type_passwd']=$_POST['bd_type_passwd'];
    49                         $bd_externe['champ_alea']=$_POST['bd_champ_alea'];
    50                        
    51                         $bd_externe['champ_prenom']=$_POST['bd_champ_prenom'];
    52                         $bd_externe['champ_nom']=$_POST['bd_champ_nom'];
    53                         $bd_externe['champ_bio']=$_POST['bd_champ_bio'];
    54                         $bd_externe['champ_email']=$_POST['bd_champ_email'];
    55                         $bd_externe['champ_nom_site']=$_POST['bd_champ_nom_site'];
    56                         $bd_externe['champ_url_site']=$_POST['bd_champ_url_site'];
    57                         $bd_externe['champ_pgp']=$_POST['bd_champ_pgp'];
    58                        
    59                         $bd_externe['champ_statut']=$_POST['bd_champ_statut'];
    60                         $bd_externe['val_redacteur']=$_POST['bd_val_redacteur'];
    61                         $bd_externe['val_administrateur']=$_POST['bd_val_administrateur'];
    62                        
    63                
     42                $reinit_table=$_POST['reinit_table'];           
     43                if ($_POST['param_connexion_db']=="etape1") $bd_externe['table']=""; // Pour cohérence si on recommence tout à partir de l'etape 1
     44        }
     45        else $reinit_table=FALSE;
     46
     47        // TRAITEMENT DU FORMULAIRE TABLE(S) DE LA BASE EXTERNE (etape2)
     48        if (($_POST['param_connexion_db']=="etape2") OR ($_POST['param_connexion_db']=="etape3")) {
     49                $bd_externe['table']=$_POST['bd_table'];
     50                $bd_externe['champ_cle']=$_POST['bd_champ_cle'];
     51                $bd_externe['table_jointure']=$_POST['bd_table_jointure'];
     52        }
     53        else {$bd_externe['table']="";$bd_externe['champ_cle']="";$bd_externe['table_jointure']="";}
     54       
     55        // TRAITEMENT DU FORMULAIRE CHAMPS DE LA BASE EXTERNE (etape3)
     56        if ($_POST['param_connexion_db']=="etape3") {   
     57                $bd_externe['champ_login_ext']=$_POST['bd_champ_login_ext'];
     58                $bd_externe['champ_passwd']=$_POST['bd_champ_passwd'];
     59                $bd_externe['type_passwd']=$_POST['bd_type_passwd'];
     60                $bd_externe['champ_alea']=$_POST['bd_champ_alea'];
     61               
     62                $bd_externe['champ_prenom']=$_POST['bd_champ_prenom'];
     63                $bd_externe['champ_nom']=$_POST['bd_champ_nom'];
     64                $bd_externe['champ_bio']=$_POST['bd_champ_bio'];
     65                $bd_externe['champ_email']=$_POST['bd_champ_email'];
     66                $bd_externe['champ_nom_site']=$_POST['bd_champ_nom_site'];
     67                $bd_externe['champ_url_site']=$_POST['bd_champ_url_site'];
     68                $bd_externe['champ_pgp']=$_POST['bd_champ_pgp'];
     69               
     70                $bd_externe['champ_statut']=$_POST['bd_champ_statut'];
     71                $bd_externe['val_redacteur']=$_POST['bd_val_redacteur'];
     72                $bd_externe['val_administrateur']=$_POST['bd_val_administrateur'];
     73        }
     74
     75        // RAZ CHAMPS POUR COHERENCE PARAMETRAGE SUITE A UN CHANGEMENT DE TABLE
     76        if ($reinit_table=="oui") {             
     77                $bd_externe['champ_cle']="";
     78                $bd_externe['table_jointure']="";
     79                $bd_externe['champ_login_ext']="";
     80                $bd_externe['champ_passwd']="";
     81                $bd_externe['champ_alea']="";
     82                $bd_externe['champ_prenom']="";
     83                $bd_externe['champ_nom']="";
     84                $bd_externe['champ_bio']="";
     85                $bd_externe['champ_email']="";
     86                $bd_externe['champ_nom_site']="";
     87                $bd_externe['champ_url_site']="";
     88                $bd_externe['champ_pgp']="";
     89                $bd_externe['champ_statut']="";
     90                $bd_externe['val_redacteur']="";
     91                $bd_externe['val_administrateur']="";                   
     92        }
     93               
     94        // ENREGISTREMENT DES PARAMETRES SI POST DU FORMULAIRE
     95        if ( ($_POST['param_connexion_db']=="etape1") OR ($_POST['param_connexion_db']=="etape2") OR ($_POST['param_connexion_db']=="etape3") ) ecrire_parametrage_auth_bd_externe ($bd_externe);
     96
     97        // LECTURE DES PARAMETRES STOCKEES DANS spip_meta
     98        $bd_externe=lire_parametrage_auth_bd_externe ();
     99
     100        // VERIFICATION : PARAMETRAGE CONNEXION RENSEIGNE
     101        $bd_externe['parametrage_serveur_saisi']=FALSE;
     102        if (($bd_externe['login']) AND ($bd_externe['password']) AND ($bd_externe['database'])) $bd_externe['parametrage_serveur_saisi']=TRUE; 
     103
     104        // VERIFICATION : CONNEXION AU SERVEUR DE BD OK
     105        $bd_externe['parametrage_serveur_ok']=FALSE;
     106        if ($bd_externe['parametrage_serveur_saisi']) {         
     107                if ($bd_externe['serveur']=="mysql") require_once(dirname(__FILE__).'/../inc/mysql_query.php');
     108                else require_once(dirname(__FILE__).'/../inc/pear_query.php'); 
     109                $bd_externe['parametrage_serveur_ok']=bd_externe_connect(FALSE);
    64110                }
    65111       
    66                 ecrire_parametrage_auth_bd_externe ($bd_externe);
    67         }
    68 
    69 
    70        
    71         // BLOC PARAMETRAGE CONNEXION AU SERVEUR DE BD
    72         debut_cadre_relief("", false, "", _T('authbdexterne:titre_param_connexion_db'));
    73        
    74        
    75         echo generer_url_post_ecrire('auth_bd_externe');
    76                
    77 
    78         $bd_externe=lire_parametrage_auth_bd_externe ();
    79 
     112
     113        // AFFICHAGE ZONE DE PARAMETRAGE CONNEXION AU SERVEUR DE BD DU FORMULAIRE (etape1)
     114        debut_cadre_relief("", false, "", _T('authbdexterne:titre_param_connexion_db'));               
     115        echo generer_url_post_ecrire('auth_bd_externe','','auth_bd_externe_form');
     116                       
     117        // Affectation de la liste des serveurs pris en charge
    80118        if ($is_pearDB=@include_once("DB.php"))  $serveurs=array( "mysql"=>"MySQL",
    81119                                                                                                                                                                                                                                                "pgsql"=>"PostgreSQL",
     
    90128
    91129        else {         
     130                // Si Pear DB n'est pas atteignable, on ne propose que mysql et en informe l'utilisateur
    92131                $serveurs=array( "mysql"=>"MySQL");
    93132                $bd_externe['serveur']="mysql";
     
    97136                                        "</p><br />";
    98137                }
    99        
    100         $serveurs=array("mysql"=>"MySQL",
    101                                                                         "pgsql"=>"PostgreSQL",
    102                                                                         "ibase"=>"InterBase",
    103                                                                         "msql"=>"Mini SQL",
    104                                                                         "mssql"=>"Microsoft SQL Server",
    105                                                                         "oci8"=>"Oracle 7/8/8i",
    106                                                                         "odbc"=>"ODBC (Open Database Connectivity)",
    107                                                                         "sybase"=>"SyBase",
    108                                                                         "ifx"=>"Informix",
    109                                                                         "fbsql"=>"FrontBase");
    110        
    111        
    112         // Sélection du serveur de BD   
    113         echo _T('authbdexterne:info_serveur')." : ";
    114         echo "\n<select name='bd_serveur_type' class='fondl' align='middle'>\n";
    115         echo "<option value='".$bd_externe['serveur']."' selected>".$serveurs[$bd_externe['serveur']]."</option>\n";
    116         reset ($serveurs);
    117         while (list($key,$val) = each ($serveurs)) {
    118                 if ($key <> $bd_externe['serveur'])
    119                         echo "<option value='$key'>$val</option>\n";
    120         }
    121         echo "</select>";
    122 
    123         // Paramètres de connexion     
     138               
     139        // Liste de sélection du serveur de BD 
     140        afficheListeAvecLabel(_T('authbdexterne:info_serveur'),'bd_serveur_type',$serveurs,$bd_externe['serveur']);
     141       
     142        // Zones de saisie des parametres de connexion au serveur de BD
    124143        echo "<p>"._T('authbdexterne:info_serveur_hostname')." : ";
    125144        echo "<INPUT TYPE='text' NAME='bd_hostname' CLASS='fondl' VALUE=\"".$bd_externe['hostname']."\" SIZE='15' $onfocus></p>";
     
    131150        echo "<INPUT TYPE='text' NAME='bd_database' CLASS='fondl' VALUE=\"".$bd_externe['database']."\" SIZE='15' $onfocus></p>";
    132151       
    133         // Validation étape 1
     152        // Bouton de validation de l'etape 1
    134153        echo "<INPUT NAME='param_connexion_db' VALUE='etape1' TYPE='hidden'>\n";
    135154        echo "<INPUT TYPE='submit' NAME='Valider' VALUE='"._T('bouton_valider')."' CLASS='fondo'>";
    136        
    137        
     155               
     156        // Affichage d'un avertissement si la connexion echoue alors que les parametres sont renseignes
     157        if (($bd_externe['parametrage_serveur_saisi']) AND (!$bd_externe['parametrage_serveur_ok'])) echo "<p align='justify'>",http_img_pack('warning.gif', _T('info_avertissement'), "width='48' height='48' align='right'"),_T('authbdexterne:db_connect_warning'),"</p><br />";     
     158
    138159        fin_cadre_relief();
    139        
     160        echo "<br />";
     161               
     162
     163        // AFFICHAGE DU FORMULAIRE TABLE(S) DE LA BASE EXTERNE (etape2)
    140164        if ($bd_externe['parametrage_serveur_ok']) {
    141                
    142                 // BLOC PARAMETRAGE BD
    143                 echo "<br /><br />";
     165                                               
    144166                debut_cadre_relief("", false, "", _T('authbdexterne:titre_param_db'));         
    145                
    146                
    147                 // Specification de(s) table(s)
    148                 echo "<p style='font-weight:bold'>"._T('authbdexterne:titre_section1')."</p>";
     167                               
     168                // Affichage Aide               
    149169                echo "<p style='font-size:9px;align:justify'>"._T('authbdexterne:aide1')."</p>";
    150                 echo "<p>"._T('authbdexterne:info_bd_table')." : ";
    151                 echo "<INPUT TYPE='text' NAME='bd_table' CLASS='fondl' VALUE=\"".$bd_externe['table']."\" SIZE='15' $onfocus></p>";
    152                 echo "<p>"._T('authbdexterne:info_bd_champ_cle')." : ";
    153                 echo "<INPUT TYPE='text' NAME='bd_champ_cle' CLASS='fondl' VALUE=\"".$bd_externe['champ_cle']."\" SIZE='15' $onfocus></p>";
    154                 echo "<p>"._T('authbdexterne:info_bd_table_jointure')." : ";
    155                 echo "<INPUT TYPE='text' NAME='bd_table_jointure' CLASS='fondl' VALUE=\"".$bd_externe['table_jointure']."\" SIZE='15' $onfocus></p>";
    156                 echo "<hr />";
    157 
    158                 $cryptage=array("clear_text"=>"mot de passe en clair",
    159                                                                                 "md5"=>"cryptage en md5",
    160                                                                                 "challenge_md5"=>"challenge md5 (spip)",
    161                                                                                 "crypt"=>"cryptage en crypt",
    162                                                                                 "unix"=>"cryptage unix (crypt+salt)");
    163                                                                                                                                                                  
    164                                                                                        
    165                 // Specification des champs pour l'authentification et type de cryptage du mot de passe
    166                 echo "<p style='font-weight:bold'>"._T('authbdexterne:titre_section2')."</p>";
    167                 echo "<p>"._T('authbdexterne:info_bd_champ_login_ext')." : ";
    168                 echo "<INPUT TYPE='text' NAME='bd_champ_login_ext' CLASS='fondl' VALUE=\"".$bd_externe['champ_login_ext']."\" SIZE='15' $onfocus></p>";
    169                 echo "<p>"._T('authbdexterne:info_bd_champ_passwd')." : ";
    170                 echo "<INPUT TYPE='text' NAME='bd_champ_passwd' CLASS='fondl' VALUE=\"".$bd_externe['champ_passwd']."\" SIZE='15' $onfocus></p>";
    171                
    172                 // Sélection cryptage password
    173                 echo _T('authbdexterne:info_bd_type_passwd')." : ";
    174                 echo "\n<select name='bd_type_passwd' class='fondl' align='middle'>\n";
    175                 echo "<option value='".$bd_externe['type_passwd']."' selected>".$cryptage[$bd_externe['type_passwd']]."</option>\n";
    176                 reset ($cryptage);
    177                 while (list($key,$val) = each ($cryptage)) {
    178                         if ($key <> $bd_externe['type_passwd'])
    179                                 echo "<option value='$key'>$val</option>\n";
     170               
     171                // Liste de selection de la table
     172                $tables=bd_externe_show_tables();               
     173                afficheListeAvecLabel(_T('authbdexterne:info_bd_table'),'bd_table',$tables,$bd_externe['table'],'onChange="javascript:document.auth_bd_externe_form.reinit_table.value=\'oui\';this.form.submit();"');
     174               
     175                // Liste de selection du champ clef parmi les champs existants de la table
     176                if ($bd_externe['table']!="") $columns=bd_externe_show_columns($bd_externe['table']);
     177                else $columns[""]="";
     178                afficheListeAvecLabel(_T('authbdexterne:info_bd_champ_cle'),'bd_champ_cle',$columns,$bd_externe['champ_cle']);
     179               
     180                // Liste de selection de la table utilise pour la jointure
     181                afficheListeAvecLabel(_T('authbdexterne:info_bd_table_jointure'),'bd_table_jointure',$tables,$bd_externe['table_jointure'],'onChange="javascript:this.form.submit();"');
     182               
     183                // Bouton de validation etape 2                         
     184                echo "<INPUT NAME='param_connexion_db' VALUE='etape2' TYPE='hidden'>\n";
     185                echo "<INPUT NAME='reinit_table' VALUE='non' TYPE='hidden'>\n";
     186                echo "<INPUT TYPE='submit' NAME='Valider' VALUE='"._T('bouton_valider')."' CLASS='fondo'>";
     187               
     188                fin_cadre_relief();
     189                echo "<br />";
     190               
     191               
     192                // AFFICHAGE DU FORMULAIRE CHAMPS DE LA BASE EXTERNE (etape3)
     193               
     194                if (($bd_externe['table']!="") AND ($bd_externe['champ_cle']!="") ) {
     195                       
     196                        debut_cadre_relief("", false, "", _T('authbdexterne:titre_param_champs'));     
     197                       
     198                        // Affectation de la liste des champs possibles : cas d'une seconde table
     199                        if ($bd_externe['table_jointure']!="")
     200                        $columns=array_merge($columns,bd_externe_show_columns($bd_externe['table_jointure'])); 
     201                                                                                                                       
     202                        // Titre section                       
     203                        echo "<p style='font-weight:bold'>"._T('authbdexterne:titre_section2')."</p>";
     204                       
     205                        // Liste de selection du champ login parmi les champs existants
     206                        afficheListeAvecLabel(_T('authbdexterne:info_bd_champ_login_ext'),'bd_champ_login_ext',$columns,$bd_externe['champ_login_ext']);
     207                       
     208                        // Liste de selection du champ password parmi les champs existants
     209                        afficheListeAvecLabel(_T('authbdexterne:info_bd_champ_passwd'),'bd_champ_passwd',$columns,$bd_externe['champ_passwd']);
     210                       
     211                        // Liste de selection du type de cryptage du password
     212                        $cryptage=array("clear_text"=>"mot de passe en clair",
     213                                                                                        "md5"=>"cryptage en md5",
     214                                                                                        "challenge_md5"=>"challenge md5 (spip)",
     215                                                                                        "crypt"=>"cryptage en crypt",
     216                                                                                        "unix"=>"cryptage unix (crypt+salt)");
     217                        afficheListeAvecLabel(_T('authbdexterne:info_bd_type_passwd'),'bd_type_passwd',$cryptage,$bd_externe['type_passwd']);
     218                       
     219                        // Liste de selection du champ alea parmi les champs existants
     220                        afficheListeAvecLabel(_T('authbdexterne:info_bd_champ_alea'),'bd_champ_alea',$columns,$bd_externe['champ_alea']);
     221                       
     222                        echo "<hr />";
     223                       
     224                        // Aide
     225                        echo "<p style='font-weight:bold'>"._T('authbdexterne:titre_section3')."</p>";
     226                        echo "<p style='font-size:9px;align:justify'>"._T('authbdexterne:aide3')."</p>";
     227               
     228                        // Listes de selection des champs optionnels relatifs aux informations personnelles
     229                        afficheListeAvecLabel(_T('authbdexterne:info_bd_champ_prenom'),'bd_champ_prenom',$columns,$bd_externe['champ_prenom']);
     230                        afficheListeAvecLabel(_T('authbdexterne:info_bd_champ_nom'),'bd_champ_nom',$columns,$bd_externe['champ_nom']);
     231                        afficheListeAvecLabel(_T('authbdexterne:info_bd_champ_bio'),'bd_champ_bio',$columns,$bd_externe['champ_bio']);
     232                        afficheListeAvecLabel(_T('authbdexterne:info_bd_champ_email'),'bd_champ_email',$columns,$bd_externe['champ_email']);
     233                        afficheListeAvecLabel(_T('authbdexterne:info_bd_champ_nom_site'),'bd_champ_nom_site',$columns,$bd_externe['champ_nom_site']);
     234                        afficheListeAvecLabel(_T('authbdexterne:info_bd_champ_url_site'),'bd_champ_url_site',$columns,$bd_externe['champ_url_site']);
     235                        afficheListeAvecLabel(_T('authbdexterne:info_bd_champ_pgp'),'bd_champ_pgp',$columns,$bd_externe['champ_pgp']);
     236                        echo "<hr />";
     237                       
     238                        // Aide
     239                        echo "<p style='font-weight:bold'>"._T('authbdexterne:titre_section4')."</p>";
     240                        echo "<p style='font-size:9px;align:justify'>"._T('authbdexterne:aide4')."</p>";
     241                       
     242                        // Liste de selection du champ statut parmi les champs existants
     243                        afficheListeAvecLabel(_T('authbdexterne:info_bd_champ_statut'),'bd_champ_statut',$columns,$bd_externe['champ_statut']);
     244
     245                        // Zones de saisies des valeurs associees aux statuts de redacteurs et d'administrateurs
     246                        echo "<p>"._T('authbdexterne:info_bd_val_redacteur')." : ";
     247                        echo "<INPUT TYPE='text' NAME='bd_val_redacteur' CLASS='fondl' VALUE=\"".$bd_externe['val_redacteur']."\" SIZE='15' $onfocus></p>";
     248                        echo "<p>"._T('authbdexterne:info_bd_val_administrateur')." : ";
     249                        echo "<INPUT TYPE='text' NAME='bd_val_administrateur' CLASS='fondl' VALUE=\"".$bd_externe['val_administrateur']."\" SIZE='15' $onfocus></p>";
     250                       
     251                        // Bouton de validation etape 3
     252                        echo "<INPUT NAME='param_connexion_db' VALUE='etape3' TYPE='hidden'>\n";
     253                        echo "<INPUT TYPE='submit' NAME='Valider' VALUE='"._T('bouton_valider')."' CLASS='fondo'>";
     254                       
     255                        fin_cadre_relief();
    180256                }
    181                 echo "</select>";               
    182                
    183                 echo "<p>"._T('authbdexterne:info_bd_champ_alea')." : ";
    184                 echo "<INPUT TYPE='text' NAME='bd_champ_alea' CLASS='fondl' VALUE=\"".$bd_externe['champ_alea']."\" SIZE='15' $onfocus></p>";
    185                 echo "<hr />";
    186        
    187                 // Specification des champs optionnels relatifs aux informations personnelles
    188                 echo "<p style='font-weight:bold'>"._T('authbdexterne:titre_section3')."</p>";
    189                 echo "<p style='font-size:9px;align:justify'>"._T('authbdexterne:aide3')."</p>";
    190                 echo "<p>"._T('authbdexterne:info_bd_champ_prenom')." : ";
    191                 echo "<INPUT TYPE='text' NAME='bd_champ_prenom' CLASS='fondl' VALUE=\"".$bd_externe['champ_prenom']."\" SIZE='15' $onfocus></p>";
    192                 echo "<p>"._T('authbdexterne:info_bd_champ_nom')." : ";
    193                 echo "<INPUT TYPE='text' NAME='bd_champ_nom' CLASS='fondl' VALUE=\"".$bd_externe['champ_nom']."\" SIZE='15' $onfocus></p>";
    194                 echo "<p>"._T('authbdexterne:info_bd_champ_bio')." : ";
    195                 echo "<INPUT TYPE='text' NAME='bd_champ_bio' CLASS='fondl' VALUE=\"".$bd_externe['champ_bio']."\" SIZE='15' $onfocus></p>";
    196                 echo "<p>"._T('authbdexterne:info_bd_champ_email')." : ";
    197                 echo "<INPUT TYPE='text' NAME='bd_champ_email' CLASS='fondl' VALUE=\"".$bd_externe['champ_email']."\" SIZE='15' $onfocus></p>";
    198                 echo "<p>"._T('authbdexterne:info_bd_champ_nom_site')." : ";
    199                 echo "<INPUT TYPE='text' NAME='bd_champ_nom_site' CLASS='fondl' VALUE=\"".$bd_externe['champ_nom_site']."\" SIZE='15' $onfocus></p>";
    200                 echo "<p>"._T('authbdexterne:info_bd_champ_url_site')." : ";
    201                 echo "<INPUT TYPE='text' NAME='bd_champ_url_site' CLASS='fondl' VALUE=\"".$bd_externe['champ_url_site']."\" SIZE='15' $onfocus></p>";
    202                 echo "<p>"._T('authbdexterne:info_bd_champ_pgp')." : ";
    203                 echo "<INPUT TYPE='text' NAME='bd_champ_pgp' CLASS='fondl' VALUE=\"".$bd_externe['champ_pgp']."\" SIZE='15' $onfocus></p>";
    204                 echo "<hr />";
    205                
    206                 // Spécification des champs optionnels relatifs à la détermination du statut
    207                 echo "<p style='font-weight:bold'>"._T('authbdexterne:titre_section4')."</p>";
    208                 echo "<p style='font-size:9px;align:justify'>"._T('authbdexterne:aide4')."</p>";
    209                 echo "<p>"._T('authbdexterne:info_bd_champ_statut')." : ";
    210                 echo "<INPUT TYPE='text' NAME='bd_champ_statut' CLASS='fondl' VALUE=\"".$bd_externe['champ_statut']."\" SIZE='15' $onfocus></p>";
    211                 echo "<p>"._T('authbdexterne:info_bd_val_redacteur')." : ";
    212                 echo "<INPUT TYPE='text' NAME='bd_val_redacteur' CLASS='fondl' VALUE=\"".$bd_externe['val_redacteur']."\" SIZE='15' $onfocus></p>";
    213                 echo "<p>"._T('authbdexterne:info_bd_val_administrateur')." : ";
    214                 echo "<INPUT TYPE='text' NAME='bd_val_administrateur' CLASS='fondl' VALUE=\"".$bd_externe['val_administrateur']."\" SIZE='15' $onfocus></p>";
    215                 // Validation étape 2
    216                 echo "<INPUT NAME='param_connexion_db' VALUE='etape2' TYPE='hidden'>\n";
    217                 echo "<INPUT TYPE='submit' NAME='Valider' VALUE='"._T('bouton_valider')."' CLASS='fondo'>";
    218                
    219                 fin_cadre_relief();
     257               
    220258        }
    221259       
  • _plugins_/authentification/auth_bd_externe/inc/meta_auth_bd_externe.php

    r2342 r2352  
    66        lire_metas();
    77       
    8         $bd_externe['serveur']=$GLOBALS['meta']['auth_bd_externe_serveur'];
     8        if (!$bd_externe['serveur']=$GLOBALS['meta']['auth_bd_externe_serveur']) $bd_externe['serveur']="mysql";
    99        if (!($bd_externe['hostname']=$GLOBALS['meta']['auth_bd_externe_hostname'])) $bd_externe['hostname']="localhost";
    1010        if (!$bd_externe['login']=$GLOBALS['meta']['auth_bd_externe_login']) $bd_externe['login']="";
    1111        if (!$bd_externe['password']=$GLOBALS['meta']['auth_bd_externe_password']) $bd_externe['password']="";
    1212        if (!$bd_externe['database']=$GLOBALS['meta']['auth_bd_externe_database']) $bd_externe['database']="";
    13 
    14         $bd_externe['parametrage_serveur_ok']=FALSE;
    15         if (($bd_externe['login']) AND ($bd_externe['password']) AND ($bd_externe['database'])) $bd_externe['parametrage_serveur_ok']=TRUE;
    1613
    1714        if (!($bd_externe['table']=$GLOBALS['meta']['auth_bd_externe_table'])) $bd_externe['table']="";
  • _plugins_/authentification/auth_bd_externe/inc/mysql_query.php

    r2342 r2352  
    11<?
    2 function bd_externe_connect() {
     2function bd_externe_connect($afficherErreur=TRUE) {
    33        global $bd_externe;
    44
    55        $message_erreur="<font face='Verdana,Arial,Sans,sans-serif' size='4' color='#970038'><B>Problème de connexion BD</b></font><p>Attention&nbsp;: un probl&egrave;me (Base de données authentification externe) emp&ecirc;che l'acc&egrave;s &agrave; cette partie du site. Merci de votre compr&eacute;hension.";
    6         $bd_externe_link = @mysql_connect($bd_externe['hostname'],$bd_externe['login'],$bd_externe['password']) or die($message_erreur);
     6        if ((!($bd_externe_link = @mysql_connect($bd_externe['hostname'],$bd_externe['login'],$bd_externe['password']))) AND ($afficherErreur) ) die($message_erreur);
    77       
    8         @mysql_select_db($bd_externe['database']) or die($message_erreur);
     8        if ((!@mysql_select_db($bd_externe['database'])) AND ($afficherErreur)) die($message_erreur);
    99       
    1010        $GLOBALS['bd_externe_link']=$bd_externe_link;   
     
    2222
    2323function bd_externe_fetch($result) {
     24        global $bd_externe_link;
    2425       
    2526        return (mysql_fetch_array($result));
    2627}
     28
     29function bd_externe_show_tables() {
     30        global $bd_externe_link;
     31               
     32        $result=bd_externe_query("SHOW TABLES");
     33               
     34        $tables=array();
     35        while($row=bd_externe_fetch($result)) $tables[$row[0]]=$row[0];
     36        return($tables);
     37}
     38
     39function bd_externe_show_columns($table) {
     40        global $bd_externe_link;
     41               
     42        $result=bd_externe_query("SHOW COLUMNS FROM $table");
     43               
     44        $columns=array();
     45        while($row=bd_externe_fetch($result)) $columns[$row[0]]=$row[0];
     46        return($columns);
     47}
    2748?>
  • _plugins_/authentification/auth_bd_externe/inc/pear_query.php

    r2342 r2352  
    33require_once('DB.php');
    44
    5 function bd_externe_connect() {
     5function bd_externe_connect($afficherErreur=TRUE) {
    66        global $bd_externe;
    77
     
    99        $bd_externe_link = @DB::connect($dsn); 
    1010       
    11         if (DB::isError($bd_externe_link)) echo ("<font face='Verdana,Arial,Sans,sans-serif' size='4' color='#970038'><B>Problème de connexion BD</b></font><p>Attention&nbsp;: un probl&egrave;me (Base de données authentification externe) emp&ecirc;che l'acc&egrave;s &agrave; cette partie du site. Merci de votre compr&eacute;hension.<p><tt>".$bd_externe_link->getMessage())."</tt></p>";     
     11        if (DB::isError($bd_externe_link)) {
     12                if ($afficherErreur) die("<font face='Verdana,Arial,Sans,sans-serif' size='4' color='#970038'><B>Probl&egrave;me de connexion BD externe</b></font><p>Attention : un probl&egrave;me (Base de donn&eacute;es authentification externe) emp&ecirc;che l'acc&egrave;s &agrave; cette partie du site. Merci de votre compr&eacute;hension.<p><tt>".$bd_externe_link->getMessage())."</tt></p>";                   
     13                return FALSE;
     14        }
    1215       
    1316        $GLOBALS['bd_externe_link']=$bd_externe_link;
    1417       
    15         return $GLOBALS['bd_externe_link'];
     18        return TRUE;
    1619}
    1720
     
    2427
    2528function bd_externe_fetch($result) {
     29        global $bd_externe_link;
    2630       
    2731        return ($result->fetchRow(DB_FETCHMODE_ASSOC));
    2832}
    2933
     34function bd_externe_show_tables() {
     35        global $bd_externe_link;
     36               
     37        $info = @$bd_externe_link->getListOf('tables');
     38       
     39        $tables=array();
     40        foreach($info as $val) $tables[$val]=$val;
     41        return($tables);
     42}
     43
     44function bd_externe_show_columns($table) {
     45        global $bd_externe_link;
     46
     47        $info = @$bd_externe_link->tableInfo($table);
     48
     49        $columns=array();
     50        foreach($info as $val) $columns[$val['name']]=$val['name'];
     51       
     52        return($columns);
     53}
    3054?>
  • _plugins_/authentification/auth_bd_externe/inc/utils.php

    r2342 r2352  
    1313        }       
    1414
     15function afficheListeAvecLabel($label,$nom,$tableau,$valDefaut,$options="") {
     16        echo "<p>$label : ";
     17        afficheListe($nom,$tableau,$valDefaut,$options);
     18        echo "</p>";
     19}
     20       
     21function afficheListe($nom,$tableau,$valDefaut,$options="") {
     22       
     23        echo "\n<select name='$nom' class='fondl' align='middle' $options>\n";
     24        echo "<option value='$valDefaut' selected>".$tableau[$valDefaut]."</option>\n";
     25        reset ($tableau);
     26        while (list($key,$val) = each ($tableau)) {
     27                if ($key <> $valDefaut)
     28                        echo "<option value='$key'>$val</option>\n";
     29        }
     30        echo "</select>";
     31}       
    1532?>
  • _plugins_/authentification/auth_bd_externe/lang/authbdexterne_fr.php

    r2342 r2352  
    55$GLOBALS[$GLOBALS['idx_lang']] = array(
    66'titre_plugin' => 'Authentification des auteurs via une BD externe',
    7 'titre_param_connexion_db' => 'Etape 1/2 : parametrage de la connexion au serveur de BD',
     7'titre_param_connexion_db' => 'Etape 1/3 : parametrage de la connexion au serveur de BD',
    88'info_serveur' => 'Type de serveur de BD',
    99'pear_warning' => 'La librairie Pear DB n\'est pas installée ou accessible. L\'authentification externe ne peut s\'effectuer que via un serveur MySQL. Installez le <a href="http://pear.php.net/package/DBDB">package Pear DB</a> si vous avez besoin de mettre en place une authentification sur un des serveurs suivants : PostgreSQL, InterBase, Mini SQL, Microsoft SQL Server, Oracle 7/8/8i, ODBC (Open Database Connectivity), SyBase, Informix, FrontBase.',
     
    1212'info_serveur_password' => 'Mot de passe de connexions',
    1313'info_serveur_database' => 'Nom de la base',
    14 'titre_param_db' => 'Etape 2/2 : parametrage table(s) et champs de la base externe',
    15 'titre_section1' => 'Specification de(s) table(s)',
     14'db_connect_warning' => 'La connexion au serveur de base de donnees a echoue. Verifiez les parametres de connexion que vous avez saisis !',
     15'titre_param_db' => 'Etape 2/3 : parametrage table(s) de la base externe',
    1616'aide1' => 'Un profil utilisateur doit être associé à une clé unique. Si les profils sont stockés dans deux tables (cas par exemple d\'une table pour les identifiants de connexion et d\'une seconde table contenant les informations personnelles), il est possible de réaliser une jointure sur la clef.',
    1717'info_bd_table' => 'Table auteurs',
    1818'info_bd_champ_cle' => 'Champ clef (identifiant unique)',
    1919'info_bd_table_jointure' => 'Table pour jointure [optionnel]',
     20'titre_param_champs' => 'Etape 3/3 : parametrage des champs de la base externe',
    2021'titre_section2' => 'Specification des champs pour l\'authentification et type de cryptage du mot de passe',
    2122'info_bd_champ_login_ext' => 'Champ login',
  • _plugins_/authentification/auth_bd_externe/to-do.txt

    r2342 r2352  
    11Interface de configuration du plugin (exec/auth_bd_externe.php) :
    22
    3 - vérifier connexion serveur étape 1
    4 - vérifier la cohérence du paramétrage de l'étape 2 et afficher des messages d'erreurs parlants pour assister la configuration
    5 - remplacer les zones à saisir par des listes déroulantes contenant les différents champs possibles
     3- vérifier connexion serveur étape 1 : ok effectué le 13/03/2006
     4- vérifier la cohérence du paramétrage de l'étape 2 et afficher des messages d'erreurs parlants pour assister la configuration : ok effectué le 13/03/2006
     5- remplacer les zones à saisir par des listes déroulantes contenant les différents champs possibles :  : ok effectué le 13/03/2006 mais vérifier que l'utilisation de la méthode tableInfo de Pear (pour retrouver la liste des champs d'une table) ne pose par de problème de compatibilité avec certains types de serveurs, auquel cas remettre des zones de saisies pour ces types de serveurs
    66- cryptage de type unix : permettre un paramétrage plus précis. Actuellement cryptage unix = $1+salt 8 caractères+crypt(password)
    77
Note: See TracChangeset for help on using the changeset viewer.