ViewsSearchQuery.php

Same filename in this branch
  1. 10 core/tests/fixtures/database_drivers/module/core_fake/src/Driver/Database/CoreFakeWithAllCustomClasses/ViewsSearchQuery.php
Same filename in other branches
  1. 9 core/modules/search/src/ViewsSearchQuery.php
  2. 9 core/tests/fixtures/database_drivers/module/corefake/src/Driver/Database/corefakeWithAllCustomClasses/ViewsSearchQuery.php
  3. 8.9.x core/modules/search/src/ViewsSearchQuery.php
  4. 11.x core/modules/search/src/ViewsSearchQuery.php
  5. 11.x core/tests/fixtures/database_drivers/module/core_fake/src/Driver/Database/CoreFakeWithAllCustomClasses/ViewsSearchQuery.php

Namespace

Drupal\search

File

core/modules/search/src/ViewsSearchQuery.php

View source
<?php

namespace Drupal\search;

use Drupal\Core\Database\Query\ConditionInterface;

/**
 * Extends the core SearchQuery to be able to gets its protected values.
 */
class ViewsSearchQuery extends SearchQuery {
    
    /**
     * Returns the conditions property.
     *
     * @return array
     *   The query conditions.
     */
    public function &conditions() {
        return $this->conditions;
    }
    
    /**
     * Returns the words property.
     *
     * @return array
     *   The positive search keywords.
     */
    public function words() {
        return $this->words;
    }
    
    /**
     * Returns the simple property.
     *
     * @return bool
     *   TRUE if it is a simple query, and FALSE if it is complicated (phrases
     *   or LIKE).
     */
    public function simple() {
        return $this->simple;
    }
    
    /**
     * Returns the matches property.
     *
     * @return int
     *   The number of matches needed.
     */
    public function matches() {
        return $this->matches;
    }
    
    /**
     * Executes and returns the protected parseSearchExpression method.
     */
    public function publicParseSearchExpression() {
        return $this->parseSearchExpression();
    }
    
    /**
     * Replaces the original condition with a custom one from views recursively.
     *
     * @param string $search
     *   The searched value.
     * @param string $replace
     *   The value which replaces the search value.
     * @param array $condition
     *   The query conditions array in which the string is replaced. This is an
     *   item from a \Drupal\Core\Database\Query\Condition::conditions array,
     *   which must have a 'field' element.
     */
    public function conditionReplaceString($search, $replace, &$condition) {
        if ($condition['field'] instanceof ConditionInterface) {
            $conditions =& $condition['field']->conditions();
            foreach ($conditions as $key => &$subcondition) {
                if (is_numeric($key)) {
                    // As conditions can be nested, the function has to be called
                    // recursively.
                    $this->conditionReplaceString($search, $replace, $subcondition);
                }
            }
        }
        else {
            $condition['field'] = str_replace($search, $replace, $condition['field']);
        }
    }

}

Classes

Title Deprecated Summary
ViewsSearchQuery Extends the core SearchQuery to be able to gets its protected values.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.