diff --git a/linkchecker.admin.inc b/linkchecker.admin.inc index 37ed60a..8df7a10 100644 --- a/linkchecker.admin.inc +++ b/linkchecker.admin.inc @@ -291,6 +291,12 @@ function linkchecker_admin_settings_form_submit($form, &$form_state) { // Save form settings. system_settings_form_submit($form, $form_state); + + // If block scanning has been selected. + if ($form_state['values']['linkchecker_scan_blocks'] > $form['settings']['linkchecker_scan_blocks']['#default_value']) { + module_load_include('inc', 'linkchecker', 'linkchecker.batch'); + batch_set(_linkchecker_batch_import_block_custom()); + } } /** diff --git a/linkchecker.module b/linkchecker.module index b39d20d..5c80bd0 100644 --- a/linkchecker.module +++ b/linkchecker.module @@ -1026,6 +1026,7 @@ function linkchecker_form_alter(&$form, &$form_state, $form_id) { */ function linkchecker_form_node_type_form_alter(&$form, $form_state) { if (isset($form['type'])) { + $form['#submit'][] = 'linkchecker_node_type_form_submit'; $form['linkchecker'] = array( '#title' => t('Link checker'), '#type' => 'fieldset', @@ -1054,6 +1055,36 @@ function linkchecker_form_node_type_form_alter(&$form, $form_state) { } /** + * Submit handler for linkchecker_form_node_type_form_alter(). + */ +function linkchecker_node_type_form_submit($form, $form_state) { + $original_linkchecker_state = $form['linkchecker']['linkchecker_scan_node']['#default_value']; + // Default to TRUE if comment module isn't enabled, we don't care. + $original_linkchecker_comment_state = TRUE; + if (module_exists('comment')) { + $original_linkchecker_comment_state = $form['linkchecker']['linkchecker_scan_comment']['#default_value']; + } + $values = $form_state['values']; + $loaded = FALSE; + $node_type = $form['#node_type']->type; + if (!$original_linkchecker_state && $values['linkchecker_scan_node']) { + // We need to scan this node-type now. + module_load_include('inc', 'linkchecker', 'linkchecker.batch'); + batch_set(_linkchecker_batch_import_nodes([$node_type])); + $loaded = TRUE; + } + // Use !empty here for when comment module isn't enabled and there is no + // field. + if (!$original_linkchecker_comment_state && !empty($values['linkchecker_scan_comment'])) { + // We need to scan comments for this node-type now. + if (!$loaded) { + module_load_include('inc', 'linkchecker', 'linkchecker.batch'); + } + batch_set(_linkchecker_batch_import_comments([$node_type])); + } +} + +/** * Implements hook_form_BASE_FORM_ID_alter(). */ function linkchecker_form_comment_form_alter(&$form, &$form_state, $form_id) {