Index: scanner.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/scanner/scanner.module,v retrieving revision 1.4 diff -u -r1.4 scanner.module --- scanner.module 4 Dec 2008 01:17:52 -0000 1.4 +++ scanner.module 9 Feb 2009 23:23:45 -0000 @@ -57,63 +57,52 @@ /** * Implementation of hook_menu(). */ -function scanner_menu($may_cache) { - global $user; - $items = array(); +function scanner_menu() { - if ($may_cache) { - $items[] = array( - 'path' => 'admin/content/scanner', - 'title' => t('Search and Replace Scanner'), - 'callback' => 'scanner_view', - 'access' => user_access('perform search and replace'), + $items['admin/content/scanner'] = array( + 'title' => 'Search and Replace Scanner', + 'page callback' => 'scanner_view', + 'access arguments' => array('perform search and replace'), ); - $items[] = array( - 'path' => 'admin/content/scanner/scan', - 'title' => t('Search'), - 'access' => user_access('perform search and replace'), + $items['admin/content/scanner/scan'] = array( + 'title' => 'Search', + 'access arguments' => array('perform search and replace'), 'type' => MENU_DEFAULT_LOCAL_TASK, ); - $items[] = array( - 'path' => 'admin/content/scanner/scan/confirm', - 'title' => t('Confirm Replace'), - 'access' => user_access('perform search and replace'), - 'callback' => 'drupal_get_form', - 'callback arguments' => array('scanner_confirm_form'), + $items['admin/content/scanner/scan/confirm'] = array( + 'title' => 'Confirm Replace', + 'access arguments' => array('perform search and replace'), + 'page callback' => 'drupal_get_form', + 'page arguments' => array('scanner_confirm_form'), 'type' => MENU_CALLBACK, ); - $items[] = array( - 'path' => 'admin/content/scanner/undo/confirm', - 'title' => t('Confirm Undo'), - 'access' => user_access('perform search and replace'), - 'callback' => 'drupal_get_form', - 'callback arguments' => array('scanner_undo_confirm_form'), + $items['admin/content/scanner/undo/confirm'] = array( + 'title' => 'Confirm Undo', + 'access arguments' => array('perform search and replace'), + 'page callback' => 'drupal_get_form', + 'page arguments' => array('scanner_undo_confirm_form'), 'type' => MENU_CALLBACK, ); - $items[] = array( // Shows up on scanner page as tab. - 'path' => 'admin/content/scanner/settings', - 'callback' => 'drupal_get_form', - 'callback arguments' => array('scanner_admin_form'), - 'access' => user_access('administer scanner settings'), + $items['admin/content/scanner/settings'] = array( // Shows up on scanner page as tab. + 'title' => 'Settings', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('scanner_admin_form'), + 'access arguments' => array('administer scanner settings'), 'type' => MENU_LOCAL_TASK, - 'title' => t('Settings'), 'weight' => 1, ); - $items[] = array( // Shows up on scanner page as tab. - 'path' => 'admin/content/scanner/undo', - 'callback' => 'scanner_undo_page', - 'access' => user_access('perform search and replace'), + $items['admin/content/scanner/undo'] = array( // Shows up on scanner page as tab. + 'title' => 'Undo', + 'page callback' => 'scanner_undo_page', + 'access arguments' => array('perform search and replace'), 'type' => MENU_LOCAL_TASK, - 'title' => t('Undo'), ); - $items[] = array( // Shows up on admin page. - 'path' => 'admin/settings/scanner', - 'callback' => 'drupal_get_form', - 'callback arguments' => array('scanner_admin_form'), - 'access' => user_access('administer scanner settings'), - 'title' => t('Search and Replace Scanner'), + $items['admin/settings/scanner'] = array( // Shows up on admin page. + 'title' => 'Search and Replace Scanner', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('scanner_admin_form'), + 'access arguments' => array('administer scanner settings'), ); - } return $items; } @@ -355,8 +344,8 @@ /** * Validate form input. */ -function scanner_form_validate($form_id, $form_values) { - $search = trim($form_values['search']); +function scanner_form_validate($form, &$form_state) { + $search = trim($form_state['values']['search']); if ($search == '') { form_set_error('search', t('Please enter some keywords.')); } @@ -365,32 +354,31 @@ /** * Handles submission of the search and replace form. * - * @param $form_id - * @param $form_values + * @param $form + * @param $form_state * @return the new path that will be goto'ed. */ -function scanner_form_submit($form_id, $form_values) { +function scanner_form_submit($form, &$form_state) { //save form input: - $_SESSION['scanner_search'] = $form_values['search']; - $_SESSION['scanner_preceded'] = $form_values['preceded']; - //$_SESSION['scanner_notpreceded'] = $form_values['notpreceded']; - $_SESSION['scanner_followed'] = $form_values['followed']; - //$_SESSION['scanner_notfollowed'] = $form_values['notfollowed']; - $_SESSION['scanner_mode'] = $form_values['mode']; - $_SESSION['scanner_wholeword'] = $form_values['wholeword']; - $_SESSION['scanner_published'] = $form_values['published']; - $_SESSION['scanner_regex'] = $form_values['regex']; - $_SESSION['scanner_terms'] = array_filter($form_values['terms']); - $_SESSION['scanner_replace'] = $form_values['replace']; + $_SESSION['scanner_search'] = $form_state['values']['search']; + $_SESSION['scanner_preceded'] = $form_state['values']['preceded']; + //$_SESSION['scanner_notpreceded'] = $form_state['values']['notpreceded']; + $_SESSION['scanner_followed'] = $form_state['values']['followed']; + //$_SESSION['scanner_notfollowed'] = $form_state['values']['notfollowed']; + $_SESSION['scanner_mode'] = $form_state['values']['mode']; + $_SESSION['scanner_wholeword'] = $form_state['values']['wholeword']; + $_SESSION['scanner_published'] = $form_state['values']['published']; + $_SESSION['scanner_regex'] = $form_state['values']['regex']; + $_SESSION['scanner_terms'] = array_filter($form_state['values']['terms']); + $_SESSION['scanner_replace'] = $form_state['values']['replace']; - if ($form_values['op'] == 'Replace') { + if ($form_state['values']['op'] == 'Replace') { $_SESSION['scanner_status'] = SCANNER_STATUS_GO_CONFIRM; } else { $_SESSION['scanner_status'] = SCANNER_STATUS_GO_SEARCH; } - - return 'admin/content/scanner'; + $form_state['redirect'] = 'admin/content/scanner'; } @@ -480,15 +468,15 @@ /** * Submission handling for scanner confirmation form. */ -function scanner_confirm_form_submit($form_id, $form_values) { - if ($form_values['op'] == t('Yes, Continue')) { +function scanner_confirm_form_submit($form, &$form_state) { + if ($form_state['values']['op'] == t('Yes, Continue')) { $_SESSION['scanner_status'] = SCANNER_STATUS_GO_REPLACE; } else { unset($_SESSION['scanner_status']); } - return 'admin/content/scanner'; + $form_state['redirect'] = 'admin/content/scanner'; } function scanner_undo_page() { @@ -500,10 +488,10 @@ $query = 'undo_id='. $sandr->undo_id; if ($sandr->undone) { - $operation = l('Redo', 'admin/content/scanner/undo/confirm', array(), $query); + $operation = l('Redo', 'admin/content/scanner/undo/confirm', array('query' => $query)); } else { - $operation = l('Undo', 'admin/content/scanner/undo/confirm', array(), $query); + $operation = l('Undo', 'admin/content/scanner/undo/confirm', array('query' => $query)); } $rows[] = array( @@ -560,10 +548,10 @@ return $form; } -function scanner_undo_confirm_form_submit($form_id, $form) { +function scanner_undo_confirm_form_submit($form, &$form_state) { - if ($form['op'] == t('Yes, Continue')) { - $undo = db_fetch_object(db_query('SELECT undo_data, undone FROM {scanner} WHERE undo_id = %d', $form['undo_id'])); + if ($form_state['values']['op'] == t('Yes, Continue')) { + $undo = db_fetch_object(db_query('SELECT undo_data, undone FROM {scanner} WHERE undo_id = %d', $form_state['values']['undo_id'])); $undos = unserialize($undo->undo_data); @@ -589,14 +577,15 @@ } drupal_set_message($count .' '. t('Nodes reverted')); - db_query('UPDATE {scanner} SET undone = %d WHERE undo_id = %d', $undone, $form['undo_id']); + db_query('UPDATE {scanner} SET undone = %d WHERE undo_id = %d', $undone, $form_state['values']['undo_id']); } else { drupal_set_message(t('Undo / Redo canceled')); } - return 'admin/content/scanner/undo'; + $form_state['redirect'] = 'admin/content/scanner/undo'; + $form_state['nid'] = $node->nid; } /** @@ -734,15 +723,15 @@ // checking for possible timeout // if within 5 seconds of timeout - attempt to expand environment if (time() >= ($start_time + $max_execution_time - 5)) { - if(!$expanded) { + if (!$expanded) { if ($user->uid > 0) { $verbose = TRUE; } else { $verbose = FALSE; } - if(_scanner_change_env('max_execution_time', '600', $verbose)) { - drupal_set_message(t('Default max_execution_time too small and changed to 10 minutes.'),'error'); + if (_scanner_change_env('max_execution_time', '600', $verbose)) { + drupal_set_message(t('Default max_execution_time too small and changed to 10 minutes.'), 'error'); $max_execution_time = 600; } $expanded = TRUE; @@ -752,11 +741,11 @@ $shutting_down = TRUE; variable_set('scanner_partially_processed_'. $user->uid, $processed); variable_set('scanner_partial_undo_'. $user->uid, $undo_data); - if($searchtype == 'search') { - drupal_set_message(t('Did not have enough time to complete search.'),'error'); + if ($searchtype == 'search') { + drupal_set_message(t('Did not have enough time to complete search.'), 'error'); } else { - drupal_set_message(t('Did not have enough time to complete. Please re-submit replace'),'error'); + drupal_set_message(t('Did not have enough time to complete. Please re-submit replace'), 'error'); } break 2; } @@ -848,7 +837,7 @@ } //end foreach // if completed - if(!$shutting_down) { + if (!$shutting_down) { variable_del('scanner_partially_processed_'. $user->uid); variable_del('scanner_partial_undo_'. $user->uid); } @@ -1122,7 +1111,7 @@ function theme_scanner_item($item) { $item['count'] = $item['count'] > 0 ? $item['count'] : 'One or more'; $output .= '
  • '; - $output .= ''. l($item['title'], 'node/' . $item['nid']) .'
    '; + $output .= ''. l($item['title'], 'node/'. $item['nid']) .'
    '; $output .= '['. $item['count'] .' matches in '. $item['type'] .' '. $item['field'] .'field:]
    '; $output .= ''. $item['text'] .''; $output .= '
  • ';