You are here

function missing_module_find_missing in missing module 7

Find modules that are missing from file system.

5 calls to missing_module_find_missing()
drush_missing_module_list_missing_modules in ./missing_module.drush.inc
Implements drush_hook_COMMAND().
drush_missing_module_remove_missing_modules in ./missing_module.drush.inc
Implements drush_hook_COMMAND().
missing_module_disable_confirm in ./missing_module.form.inc
Menu callback: Confirm disabling module.
missing_module_remove_confirm in ./missing_module.form.inc
Menu callback: Confirm remove module.
missing_module_requirements in ./missing_module.install
Implements hook_requirements().
2 string references to 'missing_module_find_missing'
drush_missing_module_list_missing_modules in ./missing_module.drush.inc
Implements drush_hook_COMMAND().
drush_missing_module_remove_missing_modules in ./missing_module.drush.inc
Implements drush_hook_COMMAND().

File

./missing_module.module, line 11
Find modules missing in file system.

Code

function missing_module_find_missing($only_enabled = FALSE) {
  $missing = array();

  // Select all active modules from current database.
  $query = db_select('system')
    ->fields('system', array(
    'filename',
    'name',
    'status',
    'info',
  ));
  if ($only_enabled) {
    $query
      ->condition('status', '1', '=');
  }
  else {
    $or = db_or();
    $or
      ->condition('status', '1', '=');
    $and = db_and();
    $and
      ->condition('status', '0', '=');
    $and
      ->condition('schema_version', '-1', '>');
    $or
      ->condition($and);
    $query
      ->condition($or);
  }
  $result = $query
    ->execute();
  foreach ($result as $node) {
    $path = DRUPAL_ROOT . '/' . $node->filename;
    if (!file_exists($path)) {
      $module_name = $node->name;
      $missing[$module_name] = array(
        'path' => $path,
        'status' => $node->status,
        'info' => unserialize($node->info),
      );
    }
  }
  return $missing;
}