[development] Require external files from module.install

Cameron B. Prince cplists at teslauniverse.com
Wed Mar 7 09:31:14 UTC 2012


Hello,

I am working on a module with a rather large install file. This module is
more like a cross between an installation profile and a set of features than
it is a normal module. One of its functions is to create numerous content
types and fields at activation. The arrays that are needed to handle this
are pretty large and I'd like to store them as multiple external files (one
for each content type).

The bundle_copy and features modules are being used to create the arrays and
import code from bundle_copy is used to process the arrays and create the
entities from a master $data array in each file.

The code looks like this:

/**
 * Implements hook_enable().
 */
function baseline_enable() {

  foreach(glob(drupal_get_path('module', 'baseline') .
'/includes/install/{*.entities}', GLOB_BRACE) as $file) {
    require_once DRUPAL_ROOT . '/' . $file;

    /* IMPORT CODE */

  }
}

When the module is enabled via drush the contents of each file are printed
to the screen and the $data variable is not populated. When enabled from the
UI, there is no output or errors and the module is enabled, but no content
types or fields are generated.

I thought there might be an issue with glob, so I changed the code to read
the directory to this:

  $handle = opendir(drupal_get_path('module', 'baseline') .
'/includes/install/');
  while (false !== ($file = readdir($handle))) {
    if (strpos($file, '.entities')) {
      require_once DRUPAL_ROOT . '/' . drupal_get_path('module', 'baseline')
. '/includes/install/' . $file;

    }
  }

This produces the same results.

Can someone help me understand what's going on here?

Thanks,
Cameron











More information about the development mailing list