You are here

public function FederatedSearchPageFormBlock::blockValidate in Search API Federated Solr 8.2

Same name and namespace in other branches
  1. 8.3 src/Plugin/Block/FederatedSearchPageFormBlock.php \Drupal\search_api_federated_solr\Plugin\Block\FederatedSearchPageFormBlock::blockValidate()
  2. 4.x src/Plugin/Block/FederatedSearchPageFormBlock.php \Drupal\search_api_federated_solr\Plugin\Block\FederatedSearchPageFormBlock::blockValidate()

Validates that the provided autocomplete endpoint path is a valid relative or absolute URL.

Parameters

array $form: An associative array containing the structure of the form.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Overrides BlockPluginTrait::blockValidate

File

src/Plugin/Block/FederatedSearchPageFormBlock.php, line 344

Class

FederatedSearchPageFormBlock
Provides a "Federated Search Page Form" block.

Namespace

Drupal\search_api_federated_solr\Plugin\Block

Code

public function blockValidate($form, FormStateInterface $form_state) {
  $key = [
    'autocomplete',
    'direct',
    'autocomplete_url',
  ];
  $path = $form_state
    ->getValue($key);
  $proxy_is_disabled = $form_state
    ->getValue([
    'autocomplete',
    'disable_query_proxy',
  ]);
  if ($path && $proxy_is_disabled) {
    if ($path !== '' && !UrlHelper::isValid($path, FALSE)) {
      $element['#parents'] = $key;
      $form_state
        ->setError($element, t('The URL %url is not valid.', array(
        '%url' => $path,
      )));
    }
  }
}