Utiliser des données contenu dans une autre base de données à partir de Drupal.

Voila j'ai une base de données externe qui contient des clients chaque client possède un numéro d'identification qui lui permet de se connecter. J'aimerais savoir comment faire sous Drupal pour avoir un type d'utilisateur qui s'authentifie par un autre moyen que mot de passe et login (Dans mon cas c'est un code unique).
Et surtout comment connecter mon drupal à une autre base de données pour effectuer cette vérification.

Existe t'il un module ??

Forum : 

Salut,

A ma connaissance, il n'y a pas de module qui propose ça. C'est plutôt normal car les besoins sont trop spécifiques à chaque utilisateur (dans ton cas, c'est un code d'accès, pour qqn d'autre ça sera autre chose... le codage d'un module ne serait donc pas "rentable").

En revanche, tu peux créer ton propre module (ou le faire créer par un développeur) de sorte que l'identification soit réalisée comme tu le souhaites. Il y en a pour 0,5-1 jour de boulot.

Vincent

Salut,

Il a en effet été prévu de pouvoir se connecter à différentes base de donnée sous Drupal.

Pour cela, il faut toucher un peu au fichier de configuration (pas le choix), mais la modification est mineure et prévue.

dans le fichier /sites/default/settings.php

il faut remplacer :

<?php
$db_url
= 'mysql://user:pass@host/db_name';
?>

par

<?php
$db_url
['default'] = 'mysql://user:pass@host/db_name';
?>

et enfin ajouter à la suite :

<?php
$db_url
['db_2'] = "mysql://autre_user:autre_pass@autre_host/db_2_name";
?>

On obtient au final :

<?php
$db_url
['default'] = 'mysql://user:pass@host/db_name';
$db_url['db_2'] = "mysql://user_2:pass_2@host_2/db_2_name";
?>

Et enfin, lorsque tu veux effectuer des requêtes sur ton autre base de donnée dans ton code, il faut passer d'une base à l'autre comme ceci :

<?php
$query
= "SELECT machin FROM truc";
 
db_set_active('db_2');  //on passe sur l'autre base 
 
$result = db_query($query);  //on effectue la requête sur cette base
db_set_active('default');  //on repasse à la base par défaut
?>

Voila, j'espère avoir été assez clair pour t'aider. N'hésite pas si tu as des questions.