? d6_port.patch
Index: keyword_autocomplete.info
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/keyword_autocomplete/keyword_autocomplete.info,v
retrieving revision 1.3
diff -u -p -r1.3 keyword_autocomplete.info
--- keyword_autocomplete.info	6 Aug 2008 05:33:59 -0000	1.3
+++ keyword_autocomplete.info	27 Aug 2008 11:11:35 -0000
@@ -1,4 +1,4 @@
 ; $Id: keyword_autocomplete.info,v 1.3 2008/08/06 05:33:59 rszrama Exp $
 name = Keyword Autocomplete
 description = Adds autocomplete for search keywords to specified search forms.
-
+core = 6.x
Index: keyword_autocomplete.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/keyword_autocomplete/keyword_autocomplete.install,v
retrieving revision 1.1
diff -u -p -r1.1 keyword_autocomplete.install
--- keyword_autocomplete.install	6 Aug 2008 05:08:06 -0000	1.1
+++ keyword_autocomplete.install	27 Aug 2008 11:11:35 -0000
@@ -4,23 +4,49 @@
 /**
  * Implementation of hook_install().
  */
+function keyword_autocomplete_schema() {
+  $schema = array();
+
+  $schema['keyword_autocomplete_keywords'] = array(
+    'fields' => array(
+      'keyword_id' => array(
+        'type' => 'serial',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+      ),
+      'search_keywords' => array(
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+      ),
+      'search_count' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+      'sources' => array(
+        'type' => 'text',
+      ),
+      'last_search' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+      ),
+    ),
+    'indexes' => array(
+      'search_keywords' => array(array('search_keywords', 32)),
+    ),
+    'primary key' => array('keyword_id'),
+  );
+
+  return $schema;
+}
+
 function keyword_autocomplete_install() {
-  switch ($GLOBALS['db_type']) {
-    case 'mysql':
-    case 'mysqli':
-      db_query("CREATE TABLE {keyword_autocomplete_keywords} (
-        keyword_id int unsigned NOT NULL default '0',
-        search_keywords varchar(255) NOT NULL default '',
-        search_count int unsigned NOT NULL default '0',
-        sources text NOT NULL,
-        last_search int unsigned NOT NULL default '0',
-        PRIMARY KEY (keyword_id),
-        KEY search_keywords (search_keywords(32))
-      ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
-      break;
-    case 'pgsql':
-      break;
-  }
+  drupal_install_schema('keyword_autocomplete');
 }
 
 /**
@@ -28,7 +54,7 @@ function keyword_autocomplete_install() 
  */
 function keyword_autocomplete_uninstall() {
   // Get rid of the table.
-  db_query("DROP TABLE {keyword_autocomplete_keywords}");
+  drupal_install_schema('keyword_autocomplete');
 
   // Get rid of the module variables.
   variable_del('keyword_autocomplete_forms');
Index: keyword_autocomplete.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/keyword_autocomplete/keyword_autocomplete.module,v
retrieving revision 1.1
diff -u -p -r1.1 keyword_autocomplete.module
--- keyword_autocomplete.module	6 Aug 2008 05:08:06 -0000	1.1
+++ keyword_autocomplete.module	27 Aug 2008 11:11:36 -0000
@@ -11,71 +11,60 @@
 /**
  * Implementation of hook_menu().
  */
-function keyword_autocomplete_menu($may_cache) {
+function keyword_autocomplete_menu() {
   $items = array();
 
-  if ($may_cache) {
-    $items[] = array(
-      'path' => 'search/keyword-autocomplete',
-      'callback' => 'keyword_autocomplete_keywords',
-      'access' => user_access('view keyword autocomplete'),
-      'type' => MENU_CALLBACK,
-    );
-    $items[] = array(
-      'path' => 'admin/settings/keyword-autocomplete',
-      'title' => t('Keyword autocomplete'),
-      'description' => t('Administer searched keywords and settings.'),
-      'callback' => 'keyword_autocomplete_admin',
-      'access' => user_access('administer keyword autocomplete'),
-      'type' => MENU_NORMAL_ITEM,
-    );
-    $items[] = array(
-      'path' => 'admin/settings/keyword-autocomplete/keywords',
-      'title' => t('Keywords'),
-      'type' => MENU_DEFAULT_LOCAL_TASK,
-      'weight' => -10,
-    );
-    $items[] = array(
-      'path' => 'admin/settings/keyword-autocomplete/add',
-      'title' => t('Add keywords'),
-      'description' => t('Add keywords to the autocomplete table.'),
-      'callback' => 'drupal_get_form',
-      'callback arguments' => array('keyword_autocomplete_edit_form', 0),
-      'access' => user_access('administer keyword autocomplete'),
-      'type' => MENU_LOCAL_TASK,
-      'weight' => -5,
-    );
-    $items[] = array(
-      'path' => 'admin/settings/keyword-autocomplete/settings',
-      'title' => t('Settings'),
-      'description' => t('Adjust the settings for the keyword autocomplete module.'),
-      'callback' => 'drupal_get_form',
-      'callback arguments' => array('keyword_autocomplete_settings_form'),
-      'access' => user_access('administer keyword autocomplete'),
-      'type' => MENU_LOCAL_TASK,
-      'weight' => 0,
-    );
-  }
-  else {
-    $items[] = array(
-      'path' => 'admin/settings/keyword-autocomplete/'. arg(3) .'/edit',
-      'title' => t('Edit keywords'),
-      'description' => t('Update keywords in the autocomplete table.'),
-      'callback' => 'drupal_get_form',
-      'callback arguments' => array('keyword_autocomplete_edit_form', arg(3)),
-      'access' => user_access('administer keyword autocomplete'),
-      'type' => MENU_CALLBACK,
-    );
-    $items[] = array(
-      'path' => 'admin/settings/keyword-autocomplete/'. arg(3) .'/delete',
-      'title' => t('Delete keywords'),
-      'description' => t('Delete keywords from the autocomplete table.'),
-      'callback' => 'drupal_get_form',
-      'callback arguments' => array('keyword_autocomplete_delete_form', arg(3)),
-      'access' => user_access('administer keyword autocomplete'),
-      'type' => MENU_CALLBACK,
-    );
-  }
+  $items['search/keyword-autocomplete'] = array(
+    'page callback' => 'keyword_autocomplete_keywords',
+    'access arguments' => array('view keyword autocomplete'),
+    'type' => MENU_CALLBACK,
+  );
+  $items['admin/settings/keyword-autocomplete'] = array(
+    'title' => 'Keyword autocomplete',
+    'description' => 'Administer searched keywords and settings.',
+    'page callback' => 'keyword_autocomplete_admin',
+    'access arguments' => array('administer keyword autocomplete'),
+    'type' => MENU_NORMAL_ITEM,
+  );
+  $items['admin/settings/keyword-autocomplete/keywords'] = array(
+    'title' => 'Keywords',
+    'type' => MENU_DEFAULT_LOCAL_TASK,
+    'weight' => -10,
+  );
+  $items['admin/settings/keyword-autocomplete/add'] = array(
+    'title' => 'Add keywords',
+    'description' => 'Add keywords to the autocomplete table.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('keyword_autocomplete_edit_form', '0'),
+    'access arguments' => array('administer keyword autocomplete'),
+    'type' => MENU_LOCAL_TASK,
+    'weight' => -5,
+  );
+  $items['admin/settings/keyword-autocomplete/settings'] = array(
+    'title' => 'Settings',
+    'description' => 'Adjust the settings for the keyword autocomplete module.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('keyword_autocomplete_settings_form'),
+    'access arguments' => array('administer keyword autocomplete'),
+    'type' => MENU_LOCAL_TASK,
+    'weight' => 0,
+  );
+  $items['admin/settings/keyword-autocomplete/%/edit'] = array(
+    'title' => 'Edit keywords',
+    'description' => 'Update keywords in the autocomplete table.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('keyword_autocomplete_edit_form', 3),
+    'access arguments' => array('administer keyword autocomplete'),
+    'type' => MENU_CALLBACK,
+  );
+  $items['admin/settings/keyword-autocomplete/%/delete'] = array(
+    'title' => 'Delete keywords',
+    'description' => 'Delete keywords from the autocomplete table.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('keyword_autocomplete_delete_form', 3),
+    'access arguments' => array('administer keyword autocomplete'),
+    'type' => MENU_CALLBACK,
+  );
 
   return $items;
 }
@@ -90,7 +79,7 @@ function keyword_autocomplete_perm() {
 /**
  * Implementation of hook_form_alter().
  */
-function keyword_autocomplete_form_alter($form_id, &$form) {
+function keyword_autocomplete_form_alter(&$form, &$form_state, $form_id) {
   // Act only on search forms...
   if ($form_id == 'search_form' || $form_id == 'search_theme_form' || $form_id = 'search_block_form') {
     // Add the autocomplete path to the various keyword textfields.
@@ -105,33 +94,41 @@ function keyword_autocomplete_form_alter
 
       // The search form embedded in the theme.
       if ($form_id == 'search_theme_form' && $forms['search_theme_form'] === 'search_theme_form') {
-        $form['search_theme_form_keys']['#autocomplete_path'] = 'search/keyword-autocomplete';
+        $form['search_theme_form']['#autocomplete_path'] = 'search/keyword-autocomplete';
       }
 
       // The form in the search block.
       if ($form_id == 'search_block_form' && $forms['search_block_form'] === 'search_block_form') {
-        $form['search_block_form_keys']['#autocomplete_path'] = 'search/keyword-autocomplete';
+        $form['search_block_form']['#autocomplete_path'] = 'search/keyword-autocomplete';
       }
     }
 
     // Set a custom submit handler to store the keywords in the database.
-    $form['#submit']['keyword_autocomplete_search_form_submit'] = array();
+    $form['#submit'][] = 'keyword_autocomplete_search_form_submit';
   }
 }
 
+function keyword_autocomplete_theme() {
+  return array(
+    'total_keyword' => array(
+      'arguments' => array('count' => 0),
+    ),
+  );
+}
+
 // Stores keyword information in the database.
-function keyword_autocomplete_search_form_submit($form_id, $form_values) {
+function keyword_autocomplete_search_form_submit($form, &$form_state) {
   $keywords = '';
 
   // Get the search keywords based on the form.
-  if ($form_id == 'search_form') {
-    $keywords = trim($form_values['keys']);
+  if ($form_state['values']['form_id'] == 'search_form') {
+    $keywords = trim($form_state['values']['keys']);
   }
-  elseif ($form_id == 'search_theme_form') {
-    $keywords = trim($form_values['search_theme_form_keys']);
+  elseif ($form_state['values']['form_id'] == 'search_theme_form') {
+    $keywords = trim($form_state['values']['search_theme_form']);
   }
-  elseif ($form_id == 'search_block_form') {
-    $keywords = trim($form_values['search_block_form_keys']);
+  elseif ($form_state['values']['form_id'] == 'search_block_form') {
+    $keywords = trim($form_state['values']['search_block_form']);
   }
 
   // Save the keywords to the database if they're valid.
@@ -198,8 +195,8 @@ function keyword_autocomplete_save_keywo
     }
 
     // Save the row to the database.
-    db_query("INSERT INTO {keyword_autocomplete_keywords} (keyword_id, search_keywords, search_count, sources, last_search) VALUES (%d, '%s', %d, '%d', %d)",
-      db_next_id('{keyword_autocomplete_keywords}_keyword_id'), $keywords, $count, serialize($sources), time());
+    db_query("INSERT INTO {keyword_autocomplete_keywords} (search_keywords, search_count, sources, last_search) VALUES ('%s', %d, '%d', %d)",
+      $keywords, $count, serialize($sources), time());
   }
 }
 
@@ -245,8 +242,7 @@ function keyword_autocomplete_keywords($
   }
 
   // Print out the matches in the format expected by autocomplete.js.
-  print drupal_to_js($matches);
-  exit();
+  drupal_json($matches);
 }
 
 // Displays a table for viewing and administering saved keywords.
@@ -312,7 +308,7 @@ function theme_total_keywords($count) {
 }
 
 // Displays a form to filter keywords displayed in the admin table.
-function keyword_autocomplete_admin_filter_form($filter = '') {
+function keyword_autocomplete_admin_filter_form($form_state, $filter = '') {
   $form['filter'] = array(
     '#type' => 'fieldset',
     '#title' => t('Keywords filter'),
@@ -336,9 +332,9 @@ function keyword_autocomplete_admin_filt
   return $form;
 }
 
-function keyword_autocomplete_admin_filter_form_submit($form_id, $form_values) {
+function keyword_autocomplete_admin_filter_form_submit($form, &$form_state) {
   // Trim the input for the filter text.
-  $filter = trim($form_values['filter_text']);
+  $filter = trim($form_state['values']['filter_text']);
 
   // Redirect to the filtered URL.
   if (!empty($filter)) {
@@ -347,7 +343,7 @@ function keyword_autocomplete_admin_filt
 }
 
 // Displays the search keywords edit form.
-function keyword_autocomplete_edit_form($keyword_id) {
+function keyword_autocomplete_edit_form($form_state, $keyword_id) {
   $data = keyword_autocomplete_load_data($keyword_id);
 
   $form['keyword_id'] = array(
@@ -382,16 +378,16 @@ function keyword_autocomplete_edit_form(
   return $form;
 }
 
-function keyword_autocomplete_edit_form_validate($form_id, $form_values) {
-  if (!is_numeric($form_values['search_count']) || intval($form_values['search_count']) <= 0) {
+function keyword_autocomplete_edit_form_validate($form, &$form_state) {
+  if (!is_numeric($form_state['values']['search_count']) || intval($form_state['values']['search_count']) <= 0) {
     form_set_error('search_count', t('Search count must be a positive whole number.'));
   }
 }
 
-function keyword_autocomplete_edit_form_submit($form_id, $form_values) {
+function keyword_autocomplete_edit_form_submit($form, &$form_state) {
   // If the submission was for a new set of keywords...
-  if ($form_values['keyword_id'] == 0) {
-    $keywords = $form_values['search_keywords'];
+  if ($form_state['values']['keyword_id'] == 0) {
+    $keywords = $form_state['values']['search_keywords'];
 
     // Grab the keyword ID for the keyword string if it's already saved.
     $result = db_result(db_query("SELECT keyword_id FROM {keyword_autocomplete_keywords} WHERE search_keywords = '%s'", $keywords));
@@ -399,26 +395,26 @@ function keyword_autocomplete_edit_form_
     // If we found an ID, display a message and redirect to its edit form.
     if ($result > 0) {
       drupal_set_message(t('Those keywords have already been saved. You have been redirected to the edit form and may update its values accordingly.'));
-      return 'admin/settings/keyword-autocomplete/'. $result .'/edit';
+      $form_state['redirect'] = 'admin/settings/keyword-autocomplete/'. $result .'/edit';
     }
 
     // Otherwise save the new keyword string.
-    keyword_autocomplete_save_keywords($keywords, NULL, $form_values['search_count']);
+    keyword_autocomplete_save_keywords($keywords, NULL, $form_state['values']['search_count']);
 
     drupal_set_message(t('%keywords saved to the autocomplete table.', array('%keywords' => $keywords)));
-    return 'admin/settings/keyword-autocomplete';
+    $form_state['redirect'] = 'admin/settings/keyword-autocomplete';
   }
 
   // Update values for an existing keywords row.
   db_query("UPDATE {keyword_autocomplete_keywords} SET search_count = %d, last_search = %d WHERE keyword_id = %d",
-    intval($form_values['search_count']), time(), $form_values['keyword_id']);
+    intval($form_state['values']['search_count']), time(), $form_state['values']['keyword_id']);
 
-  drupal_set_message(t('%keywords values have been updated.', array('%keywords' => $form_values['search_keywords'])));
-  return 'admin/settings/keyword-autocomplete';
+  drupal_set_message(t('%keywords values have been updated.', array('%keywords' => $form_state['values']['search_keywords'])));
+  $form_state['redirect'] = 'admin/settings/keyword-autocomplete';
 }
 
 // Displays the delete confirmation form.
-function keyword_autocomplete_delete_form($keyword_id) {
+function keyword_autocomplete_delete_form($form_state, $keyword_id) {
   // Load the keywords data from the database.
   $data = keyword_autocomplete_load_data($keyword_id);
 
@@ -436,15 +432,15 @@ function keyword_autocomplete_delete_for
   return confirm_form($form, t('Are you sure you want to delete the data for %keywords?', array('%keywords' => $data['search_keywords'])), 'admin/settings/keyword-autocomplete', NULL, t('Delete'));
 }
 
-function keyword_autocomplete_delete_form_submit($form_id, $form_values) {
+function keyword_autocomplete_delete_form_submit($form, &$form_state) {
   // Load the keywords data from the database.
-  $data = keyword_autocomplete_load_data($form_values['keyword_id']);
+  $data = keyword_autocomplete_load_data($form_state['values']['keyword_id']);
 
   // Delete the data from the table and display a confirmation message.
   db_query("DELETE FROM {keyword_autocomplete_keywords} WHERE keyword_id = %d", $data['keyword_id']);
   drupal_set_message(t('%keywords data deleted from the autocomplete table.', array('%keywords' => $data['search_keywords'])));
 
-  return 'admin/settings/keyword-autocomplete';
+  $form_state['redirect'] = 'admin/settings/keyword-autocomplete';
 }
 
 // Displays the module settings form.
