-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathsearch_api_federated_solr.install
132 lines (108 loc) · 4.59 KB
/
search_api_federated_solr.install
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?php
/**
* @file
* Contains install and update hooks for the Federated Solr Search API Module.
*/
use Drupal\Core\Url;
/**
* Uninstalls dependencies.
*/
function search_api_federated_solr_uninstall() {
$entity = \Drupal::entityTypeManager()->getStorage('image_style')->load('search_api_federated_solr_image');
if (!empty($entity)) {
$entity->delete();
}
}
/**
* Sets default values for autocomplete-related config.
*/
function search_api_federated_solr_update_8001(&$sandbox) {
$config_factory = \Drupal::configFactory();
$config = $config_factory->getEditable('search_api_federated_solr.search_app.settings');
// Set the autocomplete config defaults.
$config->set('autocomplete.isEnabled', 0);
$config->set('autocomplete.url', '');
$config->set('autocomplete.appendWildcard', 0);
$config->set('autocomplete.suggestionRows', '');
$config->set('autocomplete.mode', 'result');
$config->set('autocomplete.result.titleText', '');
$config->set('autocomplete.result.hideDirectionsText', 0);
// Set the hidden facet/filter defaults.
$config->set('facet.site_name.is_hidden', false);
$config->set('facet.federated_terms.is_hidden', false);
$config->set('facet.federated_type.is_hidden', false);
$config->set('filter.federated_date.is_hidden', false);
// Set the index defaults for property flags.
$config->set('index.has_federated_date_property', false);
$config->set('index.has_federated_term_property', false);
$config->set('index.has_federated_type_property', false);
$config->save(TRUE);
}
/**
* Configures the search proxy (enabled) and app + block autocomplete proxies (disabled).
*/
function search_api_federated_solr_update_8002(&$sandbox) {
$config_factory = \Drupal::configFactory();
$config = $config_factory->getEditable('search_api_federated_solr.search_app.settings');
// Enable the proxy by default.
$config->set('proxy.isDisabled', 0);
// Set the autocomplete proxy config.
// Disable the autocomplete proxy to respect current endpoint?
$config->set('autocomplete.proxy.isDisabled', 0);
if ($config->get('autocomplete.isEnabled')) {
// If autocomplete enabled, respect current url by setting as direct url.
$direct_url = $config->get('autocomplete.url');
$config->set('autocomplete.proxy.isDisabled', 1);
$config->set('autocomplete.direct.url', $direct_url);
}
// Set autocomplete basic auth config.
$config->set('autocomplete.username', '');
$config->set('autocomplete.password', '');
$config->set('autocomplete.use_search_app_creds', 0);
$config->set('index.query_fields', []);
// Remove legacy stored urls as they are now computed.
$config->clear('autocomplete.url');
$config->clear('autocomplete.proxy.url');
$config->clear('index.server_url');
$config->clear('proxy.url');
$config->save(TRUE);
// Configure block autocomplete proxy.
if ($block = \Drupal\block\Entity\Block::load('federatedsearchpageformblock')) {
$block_config = $config_factory->getEditable('block.block.federatedsearchpageformblock');
$block_config->set('settings.autocomplete.proxyIsDisabled', 0);
// Add the string to be replaced with the query value to proxy url.
// Default direct url to server url + params.
if ($block_config->get('settings.autocomplete.isEnabled')) {
// If autocomplete enabled, respect current url by setting as direct url.
$block_direct_url = $block_config->get('settings.autocomplete.url');
$block_config->set('settings.autocomplete.proxyIsDisabled', 1);
$block_config->set('settings.autocomplete.directUrl', $block_direct_url);
}
// Remove legacy stored autocomplete.url as it is now computed.
$block_config->clear('settings.autocomplete.url');
$block_config->save(TRUE);
}
}
/**
* Configures debug (disabled) and query field validation (enabled) for the proxy.
*/
function search_api_federated_solr_update_8003(&$sandbox) {
$config_factory = \Drupal::configFactory();
$config = $config_factory->getEditable('search_api_federated_solr.search_app.settings');
// Enable the proxy by default.
$config->set('proxy.debug', FALSE);
// Enable validating custom query fields against the schema by default.
$config->set('index.validate_query_fields', TRUE);
$config->save(TRUE);
}
/**
* Configures the restricted site list..
*/
function search_api_federated_solr_update_8004(&$sandbox) {
$config_factory = \Drupal::configFactory();
$config = $config_factory->getEditable('search_api_federated_solr.search_app.settings');
// Set the new options.
$config->set('facet.site_name.allowed_sites', []);
$config->set('facet.site_name.site_list', []);
$config->save(TRUE);
}