You are here

function xautoload_enable in X Autoload 7.3

Same name and namespace in other branches
  1. 7.4 xautoload.install \xautoload_enable()

Implements hook_enable()

File

./xautoload.install, line 21

Code

function xautoload_enable() {

  // This could be a process of enabling multiple modules.
  // The database does not have these other modules as enabled yet.
  // So we get them from the stack trace.
  $trace = debug_backtrace(0);
  if (1 && isset($trace[3]['function']) && 'module_enable' === $trace[3]['function'] && is_array($trace[3]['args'][0])) {
    foreach (array_unique($trace[3]['args'][0]) as $module) {
      $modules = array();
      if (!empty($module)) {
        $modules[] = $module;
      }

      // Register modules in autoloader.
      $q = db_select('system', 's');
      $q
        ->fields('s', array(
        'name',
        'filename',
        'type',
      ));
      $q
        ->condition('s.name', $modules);
      $extensions = $q
        ->execute()
        ->fetchAll();
      xautoload('registrationHelper')
        ->registerExtensions($extensions);
    }
  }
}