diff --git a/contrib/current_search/current_search.block.inc b/contrib/current_search/current_search.block.inc index 759f650..f217805 100644 --- a/contrib/current_search/current_search.block.inc +++ b/contrib/current_search/current_search.block.inc @@ -26,16 +26,15 @@ function current_search_form_block_admin_configure_alter(&$form, &$form_state) { ); // Gets the default value for this block. - $searcher = db_query("SELECT searcher FROM {block_current_search} WHERE delta = :delta", array( - ':delta' => $form['delta']['#value'], - ))->fetchField(); + $searchers = variable_get('current_search_searchers', array()); + $searcher = isset($searchers[$form['delta']['#value']]) ? $searchers[$form['delta']['#value']] : current_search_get_default_searcher(); $form['visibility']['current_search']['searcher'] = array( '#type' => 'radios', '#title' => t('Search page'), '#options' => current_search_get_searcher_options(), '#description' => t('Select the search page this block is active on.'), - '#default_value' => ($searcher) ? $searcher : current_search_get_default_searcher(), + '#default_value' => $searcher, ); // Adds submit handler to save the searcher data. @@ -137,19 +136,10 @@ function current_search_block_view($delta = '') { * The machine readable name of the searcher. */ function current_search_set_block_searcher($name, $searcher) { - // Deletes current search data. - db_delete('block_current_search') - ->condition('delta', $name) - ->execute(); - - // Inserts new data into database. - db_insert('block_current_search') - ->fields(array('delta', 'searcher')) - ->values(array( - 'delta' => $name, - 'searcher' => $searcher, - )) - ->execute(); + // Inserts new data into variable. + $searchers = variable_get('current_search_searchers', array()); + $searchers[$name] = $searcher; + variable_set('current_search_searchers', $searchers); } /** @@ -208,11 +198,7 @@ function current_search_check_visibility($delta) { function current_search_get_block_searcher($delta) { $map = &drupal_static('current_search_delta_map'); if (NULL === $map) { - $map = array(); - $result = db_query('SELECT delta, searcher FROM {block_current_search}'); - foreach ($result as $record) { - $map[$record->delta] = $record->searcher; - } + $map = variable_get('current_search_searchers', array()); } if (!isset($map[$delta])) { $map[$delta] = current_search_get_default_searcher(); diff --git a/contrib/current_search/current_search.current_search.inc b/contrib/current_search/current_search.current_search.inc index 0fc1567..a51aff9 100644 --- a/contrib/current_search/current_search.current_search.inc +++ b/contrib/current_search/current_search.current_search.inc @@ -16,14 +16,6 @@ function current_search_export_crud_delete($object) { db_delete('current_search') ->condition('name', $object->name) ->execute(); - - // Only deletes the association with the searcher if we are not reverting a - // configuration setting. - if (!($object->export_type & EXPORT_IN_CODE && $object->export_type & EXPORT_IN_DATABASE)) { - db_delete('block_current_search') - ->condition('delta', $object->name) - ->execute(); - } } /** diff --git a/contrib/current_search/current_search.install b/contrib/current_search/current_search.install index fb69f16..4f35330 100644 --- a/contrib/current_search/current_search.install +++ b/contrib/current_search/current_search.install @@ -50,28 +50,6 @@ function current_search_schema() { 'primary key' => array('name'), ); - $schema['block_current_search'] = array( - 'description' => 'Sets up display criteria for blocks based on searcher', - 'fields' => array( - 'delta' => array( - 'type' => 'varchar', - 'length' => 32, - 'not null' => TRUE, - 'description' => "The block's unique delta within module, from {block}.delta.", - ), - 'searcher' => array( - 'type' => 'varchar', - 'length' => 128, - 'not null' => TRUE, - 'description' => "The machine-readable name of the searcher.", - ), - ), - 'primary key' => array('delta'), - 'indexes' => array( - 'searcher' => array('searcher'), - ), - ); - return $schema; } @@ -108,3 +86,18 @@ function current_search_update_7101() { } } } + +/** + * Migrate block current search to variable and remove table. + */ +function current_search_update_7102() { + $map = array(); + $result = db_query('SELECT delta, searcher FROM {block_current_search}'); + foreach ($result as $record) { + $map[$record->delta] = $record->searcher; + } + variable_set('current_search_searchers', $map); + + // Delete obsolete table. + db_drop_table('block_current_search'); +}