2011-02-16 12 views
8

Cuando creo un nuevo guión en un archivo PHP independiente para la instalación de Drupal, tengo que añadir las siguientes líneas en la parte superior con el fin de tener acceso a todas las API de Drupal:Drupal: ¿cómo acceder a las API de Drupal con una secuencia de comandos php independiente?

require_once './includes/bootstrap.inc'; drupal_bootstrap (DRUPAL_BOOTSTRAP_FULL);

¿Es esto correcto?

+0

Es bastante fácil probarlo usted mismo. ¿Qué pasa cuando haces eso? –

+0

@Mark Trapp Sabes, a veces cargas más cosas de las necesarias, incluso si funciona – aneuryzm

+0

Mira update.php. Creo que funciona sin un bootstrap completo. Puede obtener algunos consejos allí. – Rimian

Respuesta

12

Sí, yo uso esto:

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

Y a continuación, sólo tiene que añadir cualquier código de Drupal-específico que necesita debajo de eso.

+0

Además, consulte la documentación de drupal_bootstrap para ver qué nivel de arranque realmente necesita. –

+0

La pregunta era sobre el acceso a "todas las API de Drupal": ¿es realmente así de simple o las dependencias muestran su fea cabeza? Ejemplo: usar Drupal Forms API en un script PHP externo (porque FAPI es impresionante). No por falta de intentos, pero no he encontrado ninguna publicación en el blog que demuestre el uso de la API de Drupal fuera de Drupal. Si alguien tiene tales enlaces, ¡está en el tema y es muy apreciado! :-) –

0

sí, es una forma de ingresar a drupal api.
En algún momento se requiere chdir("dir to drupal dir");, si llama a script php desde otro directorio.

4

este método todavía funciona con Drupal 7, pero en lugar de la broca chdir puede que tenga que añadir la siguiente línea antes de que la requieren y la llamada de arranque:

define('DRUPAL_ROOT','/path/to/drupal'); 
+2

o define ('DRUPAL_ROOT', getcwd()) –

1

Esto debería funcionar tanto para Drupal 6 y Drupal 7 :

define('DRUPAL_ROOT', 'path/to/drupal'); 
chdir(DRUPAL_ROOT); 
require './includes/bootstrap.inc'; 
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); 

no importa donde se coloca la secuencia de comandos que contiene este código. Simplemente asegúrese de reemplazar path/to/drupal con la ruta de instalación real de su sistema Drupal.

Cuestiones relacionadas