php drupal drupal-7 cron php-include

Cómo incluir un archivo php en drupal 7



drupal-7 cron (4)

El directorio de bibliotecas solo debe usarse para almacenar archivos enviados como biblioteca a través del módulo de bibliotecas (ver aquí https://drupal.org/project/libraries ).

Para ambos ejemplos, supongamos que library.inc es nuestro archivo y relative_path_to es la ruta relativa basada en el directorio de módulos de nuestro archivo library.inc.

Para simplemente incluir un archivo, puede usar:

require(drupal_get_path(''module'', ''module_name'') . ''/relative_path_to/library.inc'');

Y para hacerlo de la manera Drupal ( https://api.drupal.org/api/drupal/includes!module.inc/function/module_load_include/7 ):

module_load_include(''inc'', ''module_name'', ''/relative_path_to/library'');

Saludos, j

Estoy codificando un formulario en Drupal 7, y quiero ''incluir'' un archivo php que agregue mis variables de conexión a mi código.

He probado mi código de varias maneras, y estoy seguro de que el ''incluir'' me hace obtener WSOD cuando ejecuto Cron en mi sitio.

Busqué en Google e intenté:

include("/sites/all/libraries/php/connection.inc"); include("./sites/all/libraries/php/connection.inc"); include"./sites/all/libraries/php/connection.inc";

También probé lo anterior con la extensión ''.php''.

Y mi último intento:

define(''__ROOT__'', dirname(dirname(__FILE__))); include(__ROOT__.''/sites/all/libraries/php/connection.inc'');

A veces obtengo un WSOD cuando trato de ejecutar Cron, y algunas veces los estilos de mi página se rompen cuando envío un formulario.

¿Cuál es la forma correcta de incluir un archivo PHP manualmente en Drupal? Tenga en cuenta que no quiero usar la ''forma de Drupal'' para hacer esto o para usar el módulo de formulario web. Quiero codificarlo manualmente con PHP.


En mi opinión, estas son las formas correctas de Drupal (7) para incluir código:

  1. module_load_include(); función - documentación de Drupal API - para incluir cualquier archivo PHP desde su u otros módulos donde sea necesario,
  2. files[] = ... en su archivo_module.info para autocargar incluyen clases e interfaces dentro de su propio módulo - Escritura de documentación del archivo .info .

El módulo de bibliotecas proporciona su propia forma de incluir archivos PHP externos de las bibliotecas.


La segunda respuesta es la correcta "forma de Drupal". El que fue aceptado como la respuesta tiene muchas dificultades potenciales si cambian las ubicaciones de las cosas. Usar drupal_get_path es la mejor manera. Esto también es especialmente cierto si está intentando incluir un archivo que puede no estar completamente iniciado durante un gancho de actualización del módulo.


Prueba esto

1) require ''includes/iso.inc''; 2) include_once ''includes/iso.inc''; 3) include (''includes/iso.inc'');

O Drupal Ways

include_once DRUPAL_ROOT . ''/includes/iso.inc'';