Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x

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.
RSS feed
Powered by Drupal