Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 6
CRAP
0.00% covered (danger)
0.00%
0 / 22
ViewsSearchQuery
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 6
90
0.00% covered (danger)
0.00%
0 / 22
 conditions
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 2
 words
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 2
 simple
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 2
 matches
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 2
 publicParseSearchExpression
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 2
 conditionReplaceString
0.00% covered (danger)
0.00%
0 / 1
20
0.00% covered (danger)
0.00%
0 / 12
<?php
/**
 * @file
 * Contains \Drupal\search\ViewsSearchQuery.
 */
namespace Drupal\search;
use Drupal\Core\Database\Query\Condition;
/**
 * 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.
   */
  function conditionReplaceString($search, $replace, &$condition) {
    if ($condition['field'] instanceof Condition) {
      $conditions =& $condition['field']->conditions();
      foreach ($conditions as $key => &$subcondition) {
        if (is_numeric($key)) {
          // As conditions can have subconditions, for example db_or(), the
          // function has to be called recursively.
          $this->conditionReplaceString($search, $replace, $subcondition);
        }
      }
    }
    else {
      $condition['field'] = str_replace($search, $replace, $condition['field']);
    }
  }
}