function search_api_federated_solr_map_variables in Search API Federated Solr 7.2
Same name and namespace in other branches
- 7.3 search_api_federated_solr.module \search_api_federated_solr_map_variables()
1 call to search_api_federated_solr_map_variables()
- search_api_federated_solr_block_variables in ./
search_api_federated_solr.module - Gets and transforms D7 variables for use with the JS code.
File
- ./
search_api_federated_solr.module, line 776 - search_api_federated_solr.module Contains hook implementations for the Federated Solr Search API Module.
Code
function search_api_federated_solr_map_variables($variables) {
$mode = $variables['search_api_federated_solr_autocomplete_block_mode'];
$proxy_disabled = $variables['search_api_federated_solr_autocomplete_block_disable_query_proxy'];
$direct_url = $variables['search_api_federated_solr_autocomplete_block_url'];
if ($proxy_disabled) {
// Default to provided username and password.
$username = $variables['search_api_federated_solr_autocomplete_block_username'];
$password = $variables['search_api_federated_solr_autocomplete_block_password'];
// If we should use search app credentials, get them.
$use_search_app_creds = $variables['search_api_federated_solr_autocomplete_block_use_search_app_creds'];
if ($use_search_app_creds) {
$username = variable_get('search_api_federated_solr_search_index_basic_auth_username');
$password = variable_get('search_api_federated_solr_search_index_basic_auth_password');
}
// Set encoded credentials if provided.
if ($username && $password) {
// Set creds.
$autocomplete['userpass'] = base64_encode($username . ':' . $password);
}
// Supply the necessary search term + format params for the solr server endpoint.
$params = '?q=[val]&wt=json';
}
else {
// Supply the necessary search term + format params for the proxy endpoint.
$params = '?search=[val]&wt=json';
// Remove direct url value if the proxy is enabled.
$direct_url = '';
// @TODO: Add the sitename restriction logic from the proxy controller.
}
// Do not append params to directly supplied urls (i.e. views endpoints)
if ($direct_url) {
$params = '';
}
// Determine the autocomplete endpoint based on block config.
$url = search_api_federated_solr_get_endpoint_url($proxy_disabled, $direct_url, $params);
// Set autocomplete variables.
$autocomplete['url'] = $url;
$autocomplete['directUrl'] = $direct_url;
$autocomplete['isEnabled'] = $variables['search_api_federated_solr_autocomplete_block_is_enabled'];
$autocomplete['appendWildcard'] = $variables['search_api_federated_solr_autocomplete_block_is_append_wildcard'];
if ($variables['search_api_federated_solr_autocomplete_block_num_chars']) {
$autocomplete['numChars'] = $variables['search_api_federated_solr_autocomplete_block_num_chars'];
}
if ($variables['search_api_federated_solr_autocomplete_block_suggestion_rows']) {
$autocomplete['suggestionRows'] = $variables['search_api_federated_solr_autocomplete_block_suggestion_rows'];
}
$autocomplete['mode'] = $mode;
$autocomplete['result'] = [];
$title_text = $variables['search_api_federated_solr_autocomplete_block_' . $mode . '_title_text'] ? $variables['search_api_federated_solr_autocomplete_block_' . $mode . '_title_text'] : "What are you looking for?";
$autocomplete['result']['titleText'] = $title_text;
$autocomplete['result']['hideDirectionsText'] = $variables['search_api_federated_solr_autocomplete_block_' . $mode . '_hide_directions_text'];
// Set the constraints for allowed sites.
if ($allowed_sites = variable_get('search_api_federated_solr_allowed_sites')) {
$list = [];
$sites = array_keys(array_filter($allowed_sites));
foreach ($sites as $site) {
$list[] = '"' . $site . '"';
}
$autocomplete['sm_site_name'] = '(' . implode(' OR ', $list) . ')';
}
return $autocomplete;
}