10
votes

Appeler des fonctions drupes dans le fichier PHP externe

Comment puis-je appeler une fonction Drupal ou obtenir la variable globale dans un fichier PHP qui est situé dans le dossier d'installation Drupal. Je le fais pour la première fois. Existe-t-il des fichiers que je dois inclure dans mon code afin d'accéder à la fonction Drupal ou aux variables?


3 commentaires

Duplicaté possible: Stackoverflow.com/Questtions/5014244/...


Je recommande fortement que vous envisagez d'écrire un module au lieu d'ajouter des fichiers PHP arbitraires pour des choses qui devraient faire partie du site Web. Et pour les scripts, vous pouvez écrire des scripts de drush ( drupal.org/project/drung ).


@Berdir je l'utilise à des fins de test.


4 Réponses :


7
votes

pris de la question liée dans le commentaire ci-dessus em>

Vous devez bootstrap Drupal dans le fichier PHP externe: p>

/** bootstrap Drupal **/
chdir("/path/to/drupal/site/htdocs");
require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);


0 commentaires

10
votes

Si l'exemple ci-dessus expliqué ne fonctionne pas, essayez ceci:

$path = $_SERVER['DOCUMENT_ROOT'];
chdir($path."/drupal");
define('DRUPAL_ROOT', getcwd()); //the most important line
require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);


2 commentaires

Cela ressemble à un hybride de Drupal 6 et Drupal 7


Comment faire pour Drupal8?



2
votes
define('DRUPAL_ROOT', getcwd());
require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
The above code works for me, when the script is in my Drupal root directory. This loads absolutely everything, not just Drupal core, including contributed module hooks.

0 commentaires

0
votes
define('DRUPAL_ROOT', getcwd());

require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
global $user;
print_r($user);

1 commentaires

Cette question a déjà une réponse acceptée. Si votre réponse est une amélioration, vous devez ajouter des détails expliquant pourquoi.