You are here

public function SocialSearchApiSplitProfileTerms::validateExposed in Open Social 10.3.x

Same name and namespace in other branches
  1. 10.2.x modules/social_features/social_profile/src/Plugin/views/filter/SocialSearchApiSplitProfileTerms.php \Drupal\social_profile\Plugin\views\filter\SocialSearchApiSplitProfileTerms::validateExposed()

File

modules/social_features/social_profile/src/Plugin/views/filter/SocialSearchApiSplitProfileTerms.php, line 122

Class

SocialSearchApiSplitProfileTerms
Defines a filter for filtering on taxonomy term references.

Namespace

Drupal\social_profile\Plugin\views\filter

Code

public function validateExposed(&$form, FormStateInterface $form_state) {
  if ($this->field !== 'field_profile_profile_tag' || !$this->profileTagService
    ->allowSplit()) {
    parent::validateExposed($form, $form_state);
    return;
  }
  $profile_tag_values = [];
  $identifier = $this->options['expose']['identifier'];

  // Get the main categories.
  $categories = $this->profileTagService
    ->getCategories();

  // Get form values.
  $form_values = $form_state
    ->getValues();
  foreach ($categories as $tid => $category) {
    $field_name = 'profile_tagging_' . $this->profileTagService
      ->tagLabelToMachineName($category);
    if (isset($form_values[$field_name])) {
      $profile_tag_values += $form_values[$field_name];
      unset($form_values[$field_name]);
    }
  }
  $form_values[$identifier] = $profile_tag_values;
  $form_state
    ->setValues($form_values);
  parent::validateExposed($form, $form_state);
}