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

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

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.

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.