Loading missing_module.drush.inc +46 −2 Changes for missing_module.drush.inc: 46 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -12,16 +12,29 @@ function missing_module_drush_command() { $items = array(); $items['list-missing-modules'] = array( 'description' => "Lists modules activated in database, that are missing in filesystem.", 'options' => array( 'only-enabled' => dt('Only include enabled modules.'), ), 'examples' => array( 'drush lmm' => 'Lists modules activated in database, that are missing in filesystem.', ), 'aliases' => array('lmm'), ); $items['remove-missing-modules'] = array( 'description' => "Remove modules from database, that are missing in filesystem.", 'options' => array( 'only-enabled' => dt('Only include enabled modules.'), ), 'examples' => array( 'drush rmm' => 'Remove modules from database, that are missing in filesystem.', ), 'aliases' => array('rmm'), ); return $items; } /** * Implements drush_hook(). * Implements drush_hook_COMMAND(). */ function drush_missing_module_list_missing_modules() { Loading @@ -30,7 +43,7 @@ function drush_missing_module_list_missing_modules() { include_once(dirname(__FILE__) . '/missing_module.module'); } $modules = missing_module_find_missing(); $modules = missing_module_find_missing(drush_get_option('only-enabled', FALSE)); if ($modules) { drush_log(count($modules) . " Missing module(s) found.", 'warning'); Loading @@ -44,3 +57,34 @@ function drush_missing_module_list_missing_modules() { drush_log("no missing modules found.", 'success'); } } /** * Implements drush_hook_COMMAND(). */ function drush_missing_module_remove_missing_modules() { // Include the module file directly when run from drush. if (!function_exists('missing_module_find_missing')) { include_once(dirname(__FILE__) . '/missing_module.module'); } $modules = missing_module_find_missing(drush_get_option('only-enabled', FALSE)); if ($modules) { drush_log(count($modules) . " Missing module(s) found.", 'warning'); foreach ($modules as $mm) { drush_log("MODULE: $mm", 'warning'); } drush_log("Removing system records for: " . implode(array_keys($modules), " "), 'warning'); // Delete if there is no modules. db_delete('system') ->condition('name', array_keys($modules), 'IN') ->execute(); } else { drush_log("no missing modules found.", 'success'); } } missing_module.form.inc +42 −0 Changes for missing_module.form.inc: 42 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -47,3 +47,45 @@ function missing_module_disable_confirm_submit($form, &$form_state) { $form_state['redirect'] = 'admin/reports/status'; } /** * Menu callback: Confirm remove module. */ function missing_module_remove_confirm($form, &$form_state, $module_name = FALSE) { $form_state['missing_modules']['modules'] = missing_module_find_missing(); if (array_key_exists($module_name, $form_state['missing_modules']['modules'])) { $form = confirm_form(array(), t('This action removes the @module_name module.', array('@module_name' => $module_name)), 'admin/reports/status', t('Are you sure you want to remove the @module_name module from the system tabel?', array('@module_name' => $module_name)), t('Remove module'), t('Cancel')); } else { drupal_set_message(t('%module_name is not a missing module and cannot be disabled.', array('%module_name' => $module_name)), 'error'); // This will exit out of the function. drupal_goto('admin/reports/status'); } return $form; } /** * Handler for module remove confirmation. */ function missing_module_remove_confirm_submit($form, &$form_state) { $module_name = $form_state['build_info']['args'][0]; if (array_key_exists($module_name, $form_state['missing_modules']['modules'])) { db_delete('system') ->condition('name', $module_name) ->execute(); } else { drupal_set_message(t('%module_name is not a missing module and cannot be removed.', array('%module_name' => $module_name)), 'error'); } $form_state['redirect'] = 'admin/reports/status'; } No newline at end of file missing_module.install +2 −1 Changes for missing_module.install: 2 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -31,12 +31,13 @@ function missing_module_requirements($phase) { array('@missing_count' => count($missing_modules))); foreach ($missing_modules as $mm_name => $mm_path) { $value .= $t('<li>@module_path | <a href="@module_url">link to module on drupal.org</a> | <a href="@module_disable">disable</a></li>', $value .= $t('<li>@module_path | <a href="@module_url">link to module on drupal.org</a> | <a href="@module_disable">disable</a> | <a href="@module_remove">remove</a></li>', array( '@module_path' => $mm_path, '@module_url' => "http://drupal.org/project/$mm_name", '@module_name' => $mm_name, '@module_disable' => '/admin/reports/status/disable_module/' . $mm_name, '@module_remove' => '/admin/reports/status/remove_module/' . $mm_name, )); } $value .= '</ul>'; Loading missing_module.module +17 −2 Changes for missing_module.module: 17 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -8,11 +8,18 @@ /** * Find modules that are missing from file system. */ function missing_module_find_missing() { function missing_module_find_missing($only_enabled = FALSE) { $missing = array(); // Select all active modules from current database. $result = db_select('system')->fields('system', array('filename'))->condition('status', '1', '=')->execute(); $q = db_select('system')->fields('system', array('filename')); if ($only_enabled) { // Thus only selecting all enabled modules. $q->condition('status', '1', '='); } $result = $q->execute(); foreach ($result as $node) { $path = DRUPAL_ROOT . '/' . $node->filename; Loading Loading @@ -41,6 +48,14 @@ function missing_module_menu() { 'access arguments' => array('administer modules'), 'type' => MENU_CALLBACK, 'file' => 'missing_module.form.inc', ); $items['admin/reports/status/remove_module/%'] = array( 'title' => 'Remove Module', 'page callback' => 'drupal_get_form', 'page arguments' => array('missing_module_remove_confirm', 4), 'access arguments' => array('administer modules'), 'type' => MENU_CALLBACK, 'file' => 'missing_module.form.inc', ); return $items; } Loading
missing_module.drush.inc +46 −2 Changes for missing_module.drush.inc: 46 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -12,16 +12,29 @@ function missing_module_drush_command() { $items = array(); $items['list-missing-modules'] = array( 'description' => "Lists modules activated in database, that are missing in filesystem.", 'options' => array( 'only-enabled' => dt('Only include enabled modules.'), ), 'examples' => array( 'drush lmm' => 'Lists modules activated in database, that are missing in filesystem.', ), 'aliases' => array('lmm'), ); $items['remove-missing-modules'] = array( 'description' => "Remove modules from database, that are missing in filesystem.", 'options' => array( 'only-enabled' => dt('Only include enabled modules.'), ), 'examples' => array( 'drush rmm' => 'Remove modules from database, that are missing in filesystem.', ), 'aliases' => array('rmm'), ); return $items; } /** * Implements drush_hook(). * Implements drush_hook_COMMAND(). */ function drush_missing_module_list_missing_modules() { Loading @@ -30,7 +43,7 @@ function drush_missing_module_list_missing_modules() { include_once(dirname(__FILE__) . '/missing_module.module'); } $modules = missing_module_find_missing(); $modules = missing_module_find_missing(drush_get_option('only-enabled', FALSE)); if ($modules) { drush_log(count($modules) . " Missing module(s) found.", 'warning'); Loading @@ -44,3 +57,34 @@ function drush_missing_module_list_missing_modules() { drush_log("no missing modules found.", 'success'); } } /** * Implements drush_hook_COMMAND(). */ function drush_missing_module_remove_missing_modules() { // Include the module file directly when run from drush. if (!function_exists('missing_module_find_missing')) { include_once(dirname(__FILE__) . '/missing_module.module'); } $modules = missing_module_find_missing(drush_get_option('only-enabled', FALSE)); if ($modules) { drush_log(count($modules) . " Missing module(s) found.", 'warning'); foreach ($modules as $mm) { drush_log("MODULE: $mm", 'warning'); } drush_log("Removing system records for: " . implode(array_keys($modules), " "), 'warning'); // Delete if there is no modules. db_delete('system') ->condition('name', array_keys($modules), 'IN') ->execute(); } else { drush_log("no missing modules found.", 'success'); } }
missing_module.form.inc +42 −0 Changes for missing_module.form.inc: 42 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -47,3 +47,45 @@ function missing_module_disable_confirm_submit($form, &$form_state) { $form_state['redirect'] = 'admin/reports/status'; } /** * Menu callback: Confirm remove module. */ function missing_module_remove_confirm($form, &$form_state, $module_name = FALSE) { $form_state['missing_modules']['modules'] = missing_module_find_missing(); if (array_key_exists($module_name, $form_state['missing_modules']['modules'])) { $form = confirm_form(array(), t('This action removes the @module_name module.', array('@module_name' => $module_name)), 'admin/reports/status', t('Are you sure you want to remove the @module_name module from the system tabel?', array('@module_name' => $module_name)), t('Remove module'), t('Cancel')); } else { drupal_set_message(t('%module_name is not a missing module and cannot be disabled.', array('%module_name' => $module_name)), 'error'); // This will exit out of the function. drupal_goto('admin/reports/status'); } return $form; } /** * Handler for module remove confirmation. */ function missing_module_remove_confirm_submit($form, &$form_state) { $module_name = $form_state['build_info']['args'][0]; if (array_key_exists($module_name, $form_state['missing_modules']['modules'])) { db_delete('system') ->condition('name', $module_name) ->execute(); } else { drupal_set_message(t('%module_name is not a missing module and cannot be removed.', array('%module_name' => $module_name)), 'error'); } $form_state['redirect'] = 'admin/reports/status'; } No newline at end of file
missing_module.install +2 −1 Changes for missing_module.install: 2 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -31,12 +31,13 @@ function missing_module_requirements($phase) { array('@missing_count' => count($missing_modules))); foreach ($missing_modules as $mm_name => $mm_path) { $value .= $t('<li>@module_path | <a href="@module_url">link to module on drupal.org</a> | <a href="@module_disable">disable</a></li>', $value .= $t('<li>@module_path | <a href="@module_url">link to module on drupal.org</a> | <a href="@module_disable">disable</a> | <a href="@module_remove">remove</a></li>', array( '@module_path' => $mm_path, '@module_url' => "http://drupal.org/project/$mm_name", '@module_name' => $mm_name, '@module_disable' => '/admin/reports/status/disable_module/' . $mm_name, '@module_remove' => '/admin/reports/status/remove_module/' . $mm_name, )); } $value .= '</ul>'; Loading
missing_module.module +17 −2 Changes for missing_module.module: 17 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -8,11 +8,18 @@ /** * Find modules that are missing from file system. */ function missing_module_find_missing() { function missing_module_find_missing($only_enabled = FALSE) { $missing = array(); // Select all active modules from current database. $result = db_select('system')->fields('system', array('filename'))->condition('status', '1', '=')->execute(); $q = db_select('system')->fields('system', array('filename')); if ($only_enabled) { // Thus only selecting all enabled modules. $q->condition('status', '1', '='); } $result = $q->execute(); foreach ($result as $node) { $path = DRUPAL_ROOT . '/' . $node->filename; Loading Loading @@ -41,6 +48,14 @@ function missing_module_menu() { 'access arguments' => array('administer modules'), 'type' => MENU_CALLBACK, 'file' => 'missing_module.form.inc', ); $items['admin/reports/status/remove_module/%'] = array( 'title' => 'Remove Module', 'page callback' => 'drupal_get_form', 'page arguments' => array('missing_module_remove_confirm', 4), 'access arguments' => array('administer modules'), 'type' => MENU_CALLBACK, 'file' => 'missing_module.form.inc', ); return $items; }