Bonjour,
Je cherche à afficher, au survol des régions d’une carte de France, les informations relatives à ces régions.
Ces informations sont contenues dans une base de données externe à Drupal.
Dans le fichiers settings.php, j’ai le code suivant :
<?php
$databases = array (
'default' =>
array (
'default' =>
array (
'database' => 'drupal2',
'username' => 'root',
'password' => 'MAY@M9z1rT',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
),
),
'extra' =>
array(
'default' =>
array(
'database' => 'extraf',
'username'=> 'username',
'password' => 'password',
'host' => 'xx.xx.xx.xx',
'driver' => 'mysql',
),
),
);
?>Dans mon template, une fonction javascript contient la ligne de code suivante :
$.get("<?php echo $base_path . path_to_theme() ?>/actions.php"...Le fichier actions.php se situe sous sites/all/themes/monTheme/actions.php et contient le code suivant :
<?php
db_set_active('extra');
$sSQL = "SELECT monChamp FROM maTable";
$query = db_query($sSQL);
...
db_set_active('default');
?>Or, quand je passe la souris sur une région, j’obtiens l’erreur :
Fatal error : Call to undefined function db_set_active() in \sites\all\themes\monTheme\actions.php on line 3
Quelqu’un saurait-il d’où vient le problème ?
Merci,
- Vous devez vous identifier ou créer un compte pour écrire des commentaires

Il est probable qu’il manque un include dans le fichier de thème pour que les fonctions de BD soient accessibles.
A vue de nez : http://api.drupal.org/api/drupal/includes—database—database.inc/functi… , je dirais qu’il faudrait faire un include_once sur includes/database/database.inc
Numerizen
1822
C’était bien le problème, entre autres.
Il fallait en fait ajouter au début de mon fichier actions.php les lignes :
<?phpdefine('DRUPAL_ROOT','../../../../../drupal'); //chemin vers drupal
include DRUPAL_ROOT.'/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
?>
Donc le include mais aussi définir la constante DRUPAL_ROOT.
Merci de votre réponse !
Kerhael
39