public function FederatedSearchPageFormBlock::blockSubmit in Search API Federated Solr 4.x
Same name and namespace in other branches
- 8.3 src/Plugin/Block/FederatedSearchPageFormBlock.php \Drupal\search_api_federated_solr\Plugin\Block\FederatedSearchPageFormBlock::blockSubmit()
- 8.2 src/Plugin/Block/FederatedSearchPageFormBlock.php \Drupal\search_api_federated_solr\Plugin\Block\FederatedSearchPageFormBlock::blockSubmit()
Adds block type-specific submission handling for the block form.
Note that this method takes the form structure and form state for the full block configuration form as arguments, not just the elements defined in BlockPluginInterface::blockForm().
Parameters
array $form: The form definition array for the full block configuration form.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Overrides BlockPluginTrait::blockSubmit
See also
\Drupal\Core\Block\BlockPluginInterface::blockForm()
\Drupal\Core\Block\BlockPluginInterface::blockValidate()
File
- src/
Plugin/ Block/ FederatedSearchPageFormBlock.php, line 362
Class
- FederatedSearchPageFormBlock
- Provides a "Federated Search Page Form" block.
Namespace
Drupal\search_api_federated_solr\Plugin\BlockCode
public function blockSubmit($form, FormStateInterface $form_state) {
parent::blockSubmit($form, $form_state);
$values = $form_state
->getValues();
// Define return object.
$autocomplete = [];
// Set autocomplete options.
$autocomplete_is_enabled = $values['autocomplete']['autocomplete_is_enabled'];
// If enabled, set the autocomplete options.
if ($autocomplete_is_enabled) {
// Cache form values that we'll use more than once.
$autocomplete_mode = $values['autocomplete']['autocomplete_mode'];
// Default to the form values
$username = $values['autocomplete']['direct']['basic_auth']['username'];
$password = $values['autocomplete']['direct']['basic_auth']['password'];
$use_search_app_creds = $values['autocomplete']['direct']['basic_auth']['use_search_app_creds'];
// Add basic auth credentials
if ($use_search_app_creds) {
$app_config = \Drupal::config('search_api_federated_solr.search_app.settings');
$username = $app_config
->get('index.username');
$password = $app_config
->get('index.password');
}
// Set the actual autocomplete config options.
$autocomplete['isEnabled'] = $autocomplete_is_enabled;
$autocomplete['proxyIsDisabled'] = $values['autocomplete']['disable_query_proxy'];
$autocomplete['directUrl'] = $autocomplete['proxyIsDisabled'] ? $values['autocomplete']['direct']['autocomplete_url'] : '';
$autocomplete['use_search_app_creds'] = $use_search_app_creds;
if ($username) {
$autocomplete['username'] = $username;
}
if ($password) {
$autocomplete['password'] = $password;
}
if ($username && $password) {
$autocomplete['userpass'] = base64_encode($username . ':' . $password);
}
if ($values['autocomplete']['autocomplete_is_append_wildcard']) {
$autocomplete['appendWildcard'] = $values['autocomplete']['autocomplete_is_append_wildcard'];
}
if ($values['autocomplete']['autocomplete_suggestion_rows']) {
$autocomplete['suggestionRows'] = $values['autocomplete']['autocomplete_suggestion_rows'];
}
if ($values['autocomplete']['autocomplete_num_chars']) {
$autocomplete['numChars'] = $values['autocomplete']['autocomplete_num_chars'];
}
if ($autocomplete_mode) {
$autocomplete['mode'] = $autocomplete_mode;
if ($values['autocomplete']['autocomplete_mode_title_text']) {
$autocomplete[$autocomplete_mode]['titleText'] = $values['autocomplete']['autocomplete_mode_title_text'];
}
if ($values['autocomplete']['autocomplete_mode_hide_directions']) {
$autocomplete[$autocomplete_mode]['hideDirectionsText'] = $values['autocomplete']['autocomplete_mode_hide_directions'];
}
}
}
$this->configuration['autocomplete'] = $autocomplete;
}