Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 6 |
CRAP | |
0.00% |
0 / 22 |
ViewsSearchQuery | |
0.00% |
0 / 1 |
|
0.00% |
0 / 6 |
90 | |
0.00% |
0 / 22 |
conditions | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
words | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
simple | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
matches | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
publicParseSearchExpression | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
conditionReplaceString | |
0.00% |
0 / 1 |
20 | |
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']); | |
} | |
} | |
} |