Skip to content

Commit 6f5fd0b

Browse files
authored
Issue #5: add hook_config_info, add update hook and fix config (#7)
1 parent 140dbd4 commit 6f5fd0b

File tree

3 files changed

+56
-34
lines changed

3 files changed

+56
-34
lines changed
Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
{
2-
"_config_name": "search_api_solr.settings",
3-
"_module": "search_api_solr",
4-
"search_api_solr_tasks": "[]",
5-
"search_api_solr_last_optimize": "",
6-
"search_api_solr_site_hash": "",
7-
"search_api_solr_highlight_prefix": "tm_",
8-
"search_api_solr_autocomplete_max_occurrences": "0.9",
9-
"search_api_solr_connection_class": "[]",
10-
"search_api_solr_index_prefix": "",
11-
"search_api_solr_http_get_max_length": "4000",
12-
"search_api_solr_cron_action": "spellcheck",
13-
"search_api_solr_last_optimize": "0"
2+
"_config_name": "search_api_solr.settings",
3+
"_module": "search_api_solr",
4+
"search_api_solr_site_hash": "",
5+
"search_api_solr_highlight_prefix": "tm_",
6+
"search_api_solr_autocomplete_max_occurrences": "0.9",
7+
"search_api_solr_connection_class": "SearchApiSolrConnection",
8+
"search_api_solr_index_prefix": "",
9+
"search_api_solr_http_get_max_length": "4000",
10+
"search_api_solr_cron_action": "spellcheck"
1411
}

search_api_solr.install

Lines changed: 34 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -55,22 +55,6 @@ function search_api_solr_requirements($phase) {
5555
return $ret;
5656
}
5757

58-
/**
59-
* Implements hook_uninstall().
60-
*/
61-
function search_api_solr_uninstall() {
62-
config_clear('search_api_solr.settings', 'search_api_solr_last_optimize');
63-
config_clear('search_api_solr.settings', 'search_api_solr_autocomplete_max_occurrences');
64-
config_clear('search_api_solr.settings', 'search_api_solr_index_prefix');
65-
config_clear('search_api_solr.settings', 'search_api_solr_http_get_max_length');
66-
config_clear('search_api_solr.settings', 'search_api_solr_cron_action');
67-
config_clear('search_api_solr.settings', 'search_api_solr_site_hash');
68-
config_clear('search_api_solr.settings', 'search_api_solr_connection_class');
69-
config_clear('search_api_solr.settings', 'search_api_solr_tasks');
70-
config_clear('search_api_solr.settings', 'search_api_solr_last_optimize');
71-
config_clear('search_api_solr.settings', 'search_api_solr_highlight_prefix');
72-
}
73-
7458
/**
7559
* Implements hook_update_dependencies().
7660
*/
@@ -82,8 +66,38 @@ function search_api_solr_update_dependencies() {
8266
return $dependencies;
8367
}
8468

85-
// TODO The old hook_update_N functions cannot be applied to Backdrop.
86-
function search_api_solr_update_7101() { }
69+
/**
70+
* Implements hook_update_last_removed().
71+
*/
72+
function search_api_solr_update_last_removed() {
73+
return 7102;
74+
}
75+
76+
/**
77+
* Move settings from variables to config.
78+
*/
79+
function search_api_solr_update_1000() {
80+
// Migrate variables to config.
81+
$config = config('search_api_solr.settings');
82+
if ($config->isNew()) {
83+
$config->set('search_api_solr_site_hash', update_variable_get('search_api_solr_site_hash', ''));
84+
$config->set('search_api_solr_highlight_prefix', update_variable_get('search_api_solr_highlight_prefix', 'tm_'));
85+
$config->set('search_api_solr_autocomplete_max_occurrences', update_variable_get('search_api_solr_autocomplete_max_occurrences', '0.9'));
86+
$config->set('search_api_solr_connection_class', update_variable_get('search_api_solr_connection_class', 'SearchApiSolrConnection'));
87+
$config->set('search_api_solr_index_prefix', update_variable_get('search_api_solr_index_prefix', ''));
88+
$config->set('search_api_solr_http_get_max_length', update_variable_get('search_api_solr_http_get_max_length', '4000'));
89+
$config->set('search_api_solr_cron_action', update_variable_get('search_api_solr_cron_action', 'spellcheck'));
90+
$config->save();
91+
}
8792

88-
// TODO The old hook_update_N functions cannot be applied to Backdrop.
89-
function search_api_solr_update_7102() { }
93+
// Delete variables.
94+
update_variable_del('search_api_solr_site_hash');
95+
update_variable_del('search_api_solr_highlight_prefix');
96+
update_variable_del('search_api_solr_autocomplete_max_occurrences');
97+
update_variable_del('search_api_solr_connection_class');
98+
update_variable_del('search_api_solr_index_prefix');
99+
update_variable_del('search_api_solr_http_get_max_length');
100+
update_variable_del('search_api_solr_cron_action');
101+
update_variable_del('search_api_solr_cron_action');
102+
update_variable_del('search_api_solr_last_optimize');
103+
}

search_api_solr.module

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,17 @@
44
* Provides a Solr-based service class for the Search API.
55
*/
66

7+
/**
8+
* Implements hook_config_info().
9+
*/
10+
function search_api_solr_config_info() {
11+
$prefixes['search_api_solr.settings'] = array(
12+
'label' => t('Search API SOLR settings'),
13+
'group' => t('Configuration'),
14+
);
15+
return $prefixes;
16+
}
17+
718
/**
819
* Implements hook_menu().
920
*/
@@ -79,8 +90,8 @@ function search_api_solr_cron() {
7990
// 86400 seconds is one day. We use slightly less here to allow for some
8091
// variation in the request time of the cron run, so that the time of day will
8192
// (more or less) stay the same.
82-
if (REQUEST_TIME - config_get('search_api_solr.settings', 'search_api_solr_last_optimize') > 86340) {
83-
config_set('search_api_solr.settings', 'search_api_solr_last_optimize', REQUEST_TIME);
93+
if (REQUEST_TIME - state_get('search_api_solr_last_optimize') > 86340) {
94+
state_set('search_api_solr_last_optimize', REQUEST_TIME);
8495
$conditions = array('class' => 'search_api_solr_service', 'enabled' => TRUE);
8596
$count = 0;
8697
foreach (search_api_server_load_multiple(FALSE, $conditions) as $server) {

0 commit comments

Comments
 (0)