search_api_federated_solr.install in Search API Federated Solr 8.3
Contains install and update hooks for the Federated Solr Search API Module.
File
search_api_federated_solr.installView source
<?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);
}
Functions
Name | Description |
---|---|
search_api_federated_solr_uninstall | Uninstalls dependencies. |
search_api_federated_solr_update_8001 | Sets default values for autocomplete-related config. |
search_api_federated_solr_update_8002 | Configures the search proxy (enabled) and app + block autocomplete proxies (disabled). |
search_api_federated_solr_update_8003 | Configures debug (disabled) and query field validation (enabled) for the proxy. |
search_api_federated_solr_update_8004 | Configures the restricted site list.. |