search_api-8.x-1.15/src/Plugin/views/filter/SearchApiLanguage.php
src/Plugin/views/filter/SearchApiLanguage.php
<?php namespace Drupal\search_api\Plugin\views\filter; use Drupal\views\Plugin\views\filter\LanguageFilter; /** * Defines a filter for filtering on the language of items. * * @ingroup views_filter_handlers * * @ViewsFilter("search_api_language") */ class SearchApiLanguage extends LanguageFilter { use SearchApiFilterTrait; /** * {@inheritdoc} */ public function query() { $substitutions = static::queryLanguageSubstitutions(); foreach ($this->value as $i => $value) { if (isset($substitutions[$value])) { $this->value[$i] = $substitutions[$value]; } } // Only set the languages using $query->setLanguages() if the condition // would be placed directly on the query, as an AND condition. $query = $this->getQuery(); $direct_language_condition = $this->realField === 'search_api_language' && $this->operator == 'in' && $query->getGroupType($this->options['group']) && $query->getGroupOperator() == 'AND'; if ($direct_language_condition) { $query->setLanguages($this->value); } else { parent::query(); } } }