You are here

class ExtendedSearchApiQuery in Views Contextual Filters OR 8

Object used to create a SELECT query.

Hierarchy

Expanded class hierarchy of ExtendedSearchApiQuery

File

src/Plugin/views/query/ExtendedSearchApiQuery.php, line 13

Namespace

Drupal\views_contextual_filters_or\Plugin\views\query
View source
class ExtendedSearchApiQuery extends SearchApiQuery {

  /**
   * {@inheritdoc}
   */
  public function defineOptions() {
    $options = parent::defineOptions();
    $options['contextual_filters_or'] = array(
      'default' => FALSE,
    );
    return $options;
  }

  /**
   * {@inheritdoc}
   */
  public function buildOptionsForm(&$form, FormStateInterface $form_state) {
    parent::buildOptionsForm($form, $form_state);
    $form['contextual_filters_or'] = array(
      '#title' => t('Contextual filters OR'),
      '#description' => t('Contextual filters applied to OR logic.'),
      '#type' => 'checkbox',
      '#default_value' => !empty($this->options['contextual_filters_or']),
    );
  }

  /**
   * {@inheritdoc}
   */
  public function build(ViewExecutable $view) {
    if (!empty($this->where) && $this->options['contextual_filters_or']) {
      $where = [];
      foreach ($this->where as $group_id => $group) {
        if (empty($group_id) && (!empty($group['conditions']) || !empty($group['condition_groups']))) {
          $group += [
            'type' => 'OR',
          ];
          if ($group_id === '') {
            $group_id = 0;
          }
        }
        $where[$group_id] = $group;
      }
      $this->where = $where;
    }
    parent::build($view);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
ExtendedSearchApiQuery::build public function Builds the necessary info to execute the query. Overrides SearchApiQuery::build
ExtendedSearchApiQuery::buildOptionsForm public function Provide a form to edit options for this plugin. Overrides SearchApiQuery::buildOptionsForm
ExtendedSearchApiQuery::defineOptions public function Information about options for all kinds of purposes will be held here. @code 'option_name' => array( Overrides SearchApiQuery::defineOptions
LoggerTrait::$logger protected property The logging channel to use.
LoggerTrait::getLogger public function Retrieves the logger.
LoggerTrait::logException protected function Logs an exception.
LoggerTrait::setLogger public function Sets the logger.
MessengerTrait::messenger public function Gets the messenger. 29
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$definition public property Plugins's definition
PluginBase::$displayHandler public property The display object this plugin is for.
PluginBase::$options public property Options for this plugin will be held here.
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::$renderer protected property Stores the render API renderer. 3
PluginBase::$usesOptions protected property Denotes whether the plugin has an additional options form. 8
PluginBase::$view public property The top object of a view. 1
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::destroy public function Clears a plugin. Overrides ViewsPluginInterface::destroy 2
PluginBase::doFilterByDefinedOptions protected function Do the work to filter out stored options depending on the defined options.
PluginBase::filterByDefinedOptions public function Filter out stored options depending on the defined options. Overrides ViewsPluginInterface::filterByDefinedOptions
PluginBase::getAvailableGlobalTokens public function Returns an array of available token replacements. Overrides ViewsPluginInterface::getAvailableGlobalTokens
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::getProvider public function Returns the plugin provider. Overrides ViewsPluginInterface::getProvider
PluginBase::getRenderer protected function Returns the render API renderer. 1
PluginBase::globalTokenForm public function Adds elements for available core tokens to a form. Overrides ViewsPluginInterface::globalTokenForm
PluginBase::globalTokenReplace public function Returns a string with any core tokens replaced. Overrides ViewsPluginInterface::globalTokenReplace
PluginBase::INCLUDE_ENTITY constant Include entity row languages when listing languages.
PluginBase::INCLUDE_NEGOTIATED constant Include negotiated languages when listing languages.
PluginBase::isConfigurable public function Determines if the plugin is configurable.
PluginBase::listLanguages protected function Makes an array of languages, optionally including special languages.
PluginBase::pluginTitle public function Return the human readable name of the display. Overrides ViewsPluginInterface::pluginTitle
PluginBase::preRenderAddFieldsetMarkup public static function Moves form elements into fieldsets for presentation purposes. Overrides ViewsPluginInterface::preRenderAddFieldsetMarkup
PluginBase::preRenderFlattenData public static function Flattens the structure of form elements. Overrides ViewsPluginInterface::preRenderFlattenData
PluginBase::queryLanguageSubstitutions public static function Returns substitutions for Views queries for languages.
PluginBase::setOptionDefaults protected function Fills up the options of the plugin with defaults.
PluginBase::themeFunctions public function Provide a full list of possible theme templates used by this style. Overrides ViewsPluginInterface::themeFunctions 1
PluginBase::trustedCallbacks public static function Lists the trusted callbacks provided by the implementing class. Overrides TrustedCallbackInterface::trustedCallbacks 6
PluginBase::unpackOptions public function Unpack options over our existing defaults, drilling down into arrays so that defaults don't get totally blown away. Overrides ViewsPluginInterface::unpackOptions
PluginBase::usesOptions public function Returns the usesOptions property. Overrides ViewsPluginInterface::usesOptions 8
PluginBase::validate public function Validate that the plugin is correct and can be saved. Overrides ViewsPluginInterface::validate 6
PluginBase::viewsTokenReplace protected function Replaces Views' tokens in a given string. The resulting string will be sanitized with Xss::filterAdmin. 1
PluginBase::VIEWS_QUERY_LANGUAGE_SITE_DEFAULT constant Query string to indicate the site default language.
PluginBase::__construct public function Constructs a PluginBase object. Overrides PluginBase::__construct
QueryPluginBase::$pager public property A pager plugin that should be provided by the display.
QueryPluginBase::addSignature public function Add a signature to the query, if such a thing is feasible. 1
QueryPluginBase::getAggregationInfo public function Get aggregation info for group by queries. 1
QueryPluginBase::getDateField public function Returns a Unix timestamp to database native timestamp expression. 1
QueryPluginBase::getDateFormat public function Creates cross-database date formatting. 1
QueryPluginBase::getEntityTableInfo public function Returns an array of all tables from the query that map to an entity type.
QueryPluginBase::getLimit public function Returns the limit of the query.
QueryPluginBase::getTimezoneOffset public function Get the timezone offset in seconds.
QueryPluginBase::loadEntities public function Loads all entities contained in the passed-in $results. . If the entity belongs to the base table, then it gets stored in $result->_entity. Otherwise, it gets stored in $result->_relationship_entities[$relationship_id]; 1
QueryPluginBase::setFieldTimezoneOffset public function Applies a timezone offset to the given field. 2
QueryPluginBase::setGroupOperator public function Control how all WHERE and HAVING groups are put together.
QueryPluginBase::setLimit public function Set a LIMIT on the query, specifying a maximum number of results.
QueryPluginBase::setOffset public function Set an OFFSET on the query, specifying a number of results to skip
QueryPluginBase::setupTimezone public function Set the database to the current user timezone. 1
QueryPluginBase::setWhereGroup public function Create a new grouping for the WHERE or HAVING clause.
QueryPluginBase::submitOptionsForm public function Handle any special handling on the validate form. Overrides PluginBase::submitOptionsForm 1
QueryPluginBase::summaryTitle public function Returns the summary of the settings in the display. Overrides PluginBase::summaryTitle
QueryPluginBase::validateOptionsForm public function Validate the options form. Overrides PluginBase::validateOptionsForm
SearchApiQuery::$abort protected property Whether to abort the search instead of executing it.
SearchApiQuery::$errors protected property Array of all encountered errors.
SearchApiQuery::$groupOperator protected property The conjunction with which multiple filter groups are combined.
SearchApiQuery::$index protected property The index this view accesses.
SearchApiQuery::$limit protected property Number of results to display. Overrides QueryPluginBase::$limit
SearchApiQuery::$messenger protected property The messenger. Overrides MessengerTrait::$messenger
SearchApiQuery::$moduleHandler protected property The module handler.
SearchApiQuery::$offset protected property Offset of first displayed result.
SearchApiQuery::$query protected property The query that will be executed.
SearchApiQuery::$retrievedFieldValues protected property The IDs of fields whose values should be retrieved by the backend.
SearchApiQuery::$where protected property The query's conditions representing the different Views filter groups.
SearchApiQuery::abort public function Aborts this search query.
SearchApiQuery::addCondition public function Adds a new ($field $operator $value) condition filter.
SearchApiQuery::addConditionGroup public function Adds a nested condition group.
SearchApiQuery::addField public function Adds a field to the table.
SearchApiQuery::addOrderBy public function Adds an ORDER BY clause to the query.
SearchApiQuery::addResults protected function Adds Search API result items to a view's result set.
SearchApiQuery::addRetrievedFieldValue public function Adds a field value to be retrieved.
SearchApiQuery::addRetrievedProperty Deprecated public function Adds a property to be retrieved.
SearchApiQuery::addWhere public function Adds a simple condition to the query.
SearchApiQuery::alter public function Let modules modify the query just prior to finalizing it. Overrides QueryPluginBase::alter
SearchApiQuery::calculateDependencies public function Calculates dependencies for the configured plugin. Overrides QueryPluginBase::calculateDependencies
SearchApiQuery::create public static function Creates an instance of the plugin. Overrides PluginBase::create
SearchApiQuery::createConditionGroup public function Creates a new condition group to use with this query object.
SearchApiQuery::ensureTable public function Ensures a table exists in the query.
SearchApiQuery::execute public function Executes the query and fills the associated view object with according values. Overrides QueryPluginBase::execute
SearchApiQuery::getAccessAccount public function Retrieves the account object to use for access checks for this query.
SearchApiQuery::getCacheContexts public function The cache contexts associated with this object. Overrides QueryPluginBase::getCacheContexts
SearchApiQuery::getCacheMaxAge public function The maximum age for which this object may be cached. Overrides QueryPluginBase::getCacheMaxAge
SearchApiQuery::getCacheTags public function The cache tags associated with this object. Overrides QueryPluginBase::getCacheTags
SearchApiQuery::getEntityFromRow public static function Retrieves the contained entity from a Views result row.
SearchApiQuery::getEntityTypes Deprecated public function Checks for entity types contained in the current view's index.
SearchApiQuery::getFilter public function Retrieves the filter object associated with this search query.
SearchApiQuery::getFulltextFields public function Retrieves the fulltext fields that will be searched for the search keys.
SearchApiQuery::getGroupOperator public function Retrieves the conjunction with which multiple filter groups are combined.
SearchApiQuery::getGroupType public function Returns the group type of the given group.
SearchApiQuery::getIndex public function Retrieves the index associated with this search.
SearchApiQuery::getIndexFromTable public static function Loads the search index belonging to the given Views base table.
SearchApiQuery::getKeys public function Retrieves the search keys for this query.
SearchApiQuery::getLanguages public function Retrieves the languages that will be searched by this query.
SearchApiQuery::getMessenger public function Retrieves the messenger.
SearchApiQuery::getModuleHandler public function Retrieves the module handler.
SearchApiQuery::getOption public function Retrieves an option set on this search query.
SearchApiQuery::getOptions public function Retrieves all options set for this search query.
SearchApiQuery::getOriginalKeys public function Retrieves the unparsed search keys for this query as originally entered.
SearchApiQuery::getParseMode public function Retrieves the parse mode.
SearchApiQuery::getSearchApiQuery public function Returns the Search API query object used by this Views query.
SearchApiQuery::getSearchApiResults public function Retrieves the Search API result set returned for this query.
SearchApiQuery::getSort public function Retrieves the sorts set for this query.
SearchApiQuery::getWhere public function Retrieves the conditions placed on this query.
SearchApiQuery::init public function Constructor; Create the basic query object and fill with default values. Overrides PluginBase::init
SearchApiQuery::keys public function Sets the keys to search for.
SearchApiQuery::query public function Generate a query and a countquery from all of the information supplied to the object. Overrides QueryPluginBase::query
SearchApiQuery::range public function Adds a range of results to return.
SearchApiQuery::sanitizeFieldId protected function Adapts a field ID for use in a Search API query.
SearchApiQuery::sanitizeOperator protected function Adapts an operator for use in a Search API query.
SearchApiQuery::setFulltextFields public function Sets the fields that will be searched for the search keys.
SearchApiQuery::setLanguages public function Sets the languages that should be searched by this query.
SearchApiQuery::setMessenger public function Sets the messenger. Overrides MessengerTrait::setMessenger
SearchApiQuery::setModuleHandler public function Sets the module handler.
SearchApiQuery::setOption public function Sets an option for this search query.
SearchApiQuery::setParseMode public function Sets the parse mode.
SearchApiQuery::setSearchApiQuery public function Sets the Search API query object.
SearchApiQuery::shouldAbort public function Checks whether this query should be aborted.
SearchApiQuery::sort public function Adds a sort directive to this search query.
SearchApiQuery::transformDbCondition protected function Transforms a database condition to an equivalent search filter.
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.
TrustedCallbackInterface::THROW_EXCEPTION constant Untrusted callbacks throw exceptions.
TrustedCallbackInterface::TRIGGER_SILENCED_DEPRECATION constant Untrusted callbacks trigger silenced E_USER_DEPRECATION errors.
TrustedCallbackInterface::TRIGGER_WARNING constant Untrusted callbacks trigger E_USER_WARNING errors.