2011-06-29 36 views
10

Cómo puedo llamar a una función de Drupal u obtener la variable global en un archivo PHP que se encuentra debajo de la carpeta de instalación de drupal. Lo hago por primera vez. ¿Hay algún archivo que deba incluir en mi código para acceder a la función o variables de Drupal?Llamar a funciones de Drupal en un archivo PHP externo

+0

duplicado posible: http://stackoverflow.com/questions/5014244/drupal-how-to-access-to-drupals-apis-with-a-standalone-php-script – Laxman13

+2

I recmmend encarecidamente que se Considere escribir un módulo en lugar de agregar archivos PHP arbitrarios para cosas que deberían ser parte del sitio web. Y para los scripts, puede escribir scripts drush (http://drupal.org/project/drush). – Berdir

+0

@Berdir Lo estoy usando para fines de prueba. –

Respuesta

7

Tomado de la cuestión vinculada con el comentario anterior

Es necesario realizar el arranque de Drupal en el archivo PHP externa:

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

Asegúrese de cambiar la ruta de la instalación de Drupal, a continuación, añadir su código debajo del código publicado arriba.

+0

esto no funcionará en drupal 8 – tremor

10

ejemplo Si lo anterior no funciona explicó intente esto:

$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); 
+0

esto parece un híbrido de ambos drupal 6 y drupal 7 – ErichBSchulz

+1

Esto es bueno y me funciona en drupal 7 – zhilevan

1
define('DRUPAL_ROOT', getcwd()); 
require_once './includes/bootstrap.inc'; 
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); 

El código anterior funciona para mí, cuando el guión está en mi directorio raíz de Drupal. Esto carga absolutamente todo, no solo el núcleo de Drupal, incluidos los ganchos del módulo contribuido.

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

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

Esta pregunta ya tiene una respuesta aceptada. Si su respuesta es una mejora, debe agregar algunos detalles explicando por qué. –

Cuestiones relacionadas