You are here

function views_system_rebuild_module_data in Views System 7.4

Same name and namespace in other branches
  1. 8 views_system.module \views_system_rebuild_module_data()

Helper function to rebuild module's data.

6 calls to views_system_rebuild_module_data()
views_system_enable in ./views_system.install
Implements hook_enable().
views_system_flush_caches in ./views_system.module
Implements hook_flush_caches().
views_system_form_system_modules_alter in ./views_system.module
Implements hook_form_FORM_ID_alter(); update data on modules page.
views_system_modules_disabled in ./views_system.module
Implements hook_modules_disabled().
views_system_modules_enabled in ./views_system.module
Implements hook_modules_enabled().

... See full list

File

./views_system.module, line 88
Extends the Views module and provides fields, filter criteria, and sort criteria for Modules/Themes/Theme engines.

Code

function views_system_rebuild_module_data() {
  db_query("DELETE FROM {views_system} WHERE type = 'module' OR type = 'profile'");
  $profile = drupal_get_profile();
  $query = db_insert('views_system')
    ->fields(array(
    'configure',
    'core',
    'datestamp',
    'dependencies',
    'description',
    'filename',
    'files',
    'label',
    'mtime',
    'operations',
    'origin',
    'package',
    'pathname',
    'php',
    'project',
    'project_status_url',
    'required',
    'required_by',
    'requires',
    'scripts',
    'stylesheets',
    'type',
    'version',
    'visible',
  ));
  $modules = system_rebuild_module_data();
  foreach ($modules as $module) {
    $core = preg_match('/^(modules\\/|profiles\\/minimal\\/minimal|profiles\\/standard\\/standard|profiles\\/testing\\/testing)/i', $module->filename);
    $contributed = !$core && isset($module->info['project']);
    $data = array();
    $data['configure'] = !empty($module->info['configure']) ? $module->info['configure'] : '';
    $data['core'] = !empty($module->info['core']) ? $module->info['core'] : '';
    $data['datestamp'] = !empty($module->info['datestamp']) ? (int) $module->info['datestamp'] : NULL;
    $dependencies = array();
    if (isset($module->info['dependencies'])) {
      foreach ($module->info['dependencies'] as $name) {
        $dependency = drupal_parse_dependency($name);
        $dependencies[$name] = array(
          'name' => $dependency['name'],
          'label' => isset($modules[$dependency['name']]->info['name']) ? $modules[$dependency['name']]->info['name'] : $dependency['name'],
          'version' => isset($dependency['original_version']) ? trim($dependency['original_version']) : '',
        );
      }
    }
    $data['dependencies'] = !empty($dependencies) ? serialize($dependencies) : '';
    $data['description'] = !empty($module->info['description']) ? $module->info['description'] : '';
    $data['filename'] = basename($module->filename);
    $data['files'] = !empty($module->info['files']) ? serialize($module->info['files']) : '';
    $data['label'] = $module->info['name'];
    $data['mtime'] = (int) $module->info['mtime'];
    $data['operations'] = $module->status && !empty($module->info['configure']) ? $module->info['configure'] : '';
    $data['origin'] = $core ? 'core' : ($contributed ? 'contributed' : 'custom');
    $data['package'] = !empty($module->info['package']) ? $module->info['package'] : '';
    $data['pathname'] = $module->filename;
    $data['php'] = !empty($module->info['php']) ? $module->info['php'] : '';
    $data['project'] = !empty($module->info['project']) ? $module->info['project'] : '';
    $data['project_status_url'] = !empty($module->info['project_status_url']) ? $module->info['project_status_url'] : '';
    $data['required'] = !empty($module->info['required']) ? (int) $module->info['required'] : 0;
    $required_by = array();
    foreach ($module->required_by as $name => $value) {
      $required_by[$name] = isset($modules[$name]->info['name']) ? $modules[$name]->info['name'] : $name;
    }
    $data['required_by'] = !empty($required_by) ? serialize($required_by) : '';
    $requires = array();
    foreach ($module->requires as $name => $value) {
      $requires[$name] = isset($modules[$name]->info['name']) ? $modules[$name]->info['name'] : $name;
    }
    $data['requires'] = !empty($requires) ? serialize($requires) : '';
    $data['scripts'] = !empty($module->info['scripts']) ? serialize($module->info['scripts']) : '';
    $data['stylesheets'] = !empty($module->info['stylesheets']) ? serialize($module->info['stylesheets']) : '';
    $data['type'] = $module->name != $profile ? $module->type : 'profile';
    $data['version'] = !empty($module->info['version']) ? $module->info['version'] : '';
    $data['visible'] = !empty($module->info['hidden']) ? (int) (!$module->info['hidden']) : 1;
    $query
      ->values($data);
  }
  $query
    ->execute();
}