Skip to content

Commit

Permalink
Fix issue #2516 loop search_in param doesn't work (#2776)
Browse files Browse the repository at this point in the history
* fix issue #2516

fix issue #2516

takes into account the parameter "search_in".

* Improve PR

- Improve efficiency with in_array instead of foreach in foreach
- Add missing php doc
- Fix when `$search->_or();` was added even on first search

* Fix missing function

Co-authored-by: Vincent Lopes-Vicente <vlopesvicente@gmail.com>
  • Loading branch information
zzuutt and lopes-vincent committed Oct 8, 2020
1 parent 0226515 commit 9b7de01
Show file tree
Hide file tree
Showing 7 changed files with 20 additions and 14 deletions.
Expand Up @@ -25,25 +25,32 @@ trait StandardI18nFieldsSearchTrait
"description",
"postscriptum"
];

protected function getStandardI18nSearchFields()
{
return self::$standardI18nSearchFields;
{
return self::$standardI18nSearchFields;
}

/**
/**
* @param ModelCriteria $search
* @param $searchTerm
* @param $searchCriteria
* @param string[] $searchIn
*/
protected function addStandardI18nSearch(&$search, $searchTerm, $searchCriteria)
protected function addStandardI18nSearch(&$search, $searchTerm, $searchCriteria, $searchIn = [ "title", "chapo", "description", "postscriptum" ])
{
foreach (self::$standardI18nSearchFields as $index => $searchInElement) {
if ($index > 0) {
$firstSearch = true;
foreach (self::$standardI18nSearchFields as $searchInElement) {
if (!in_array($searchInElement, $searchIn, true)) {
continue;
}

if (!$firstSearch) {
$search->_or();
}

$this->addSearchInI18nColumn($search, strtoupper($searchInElement), $searchCriteria, $searchTerm);
$firstSearch = false;
}
}
}
2 changes: 1 addition & 1 deletion core/lib/Thelia/Core/Template/Loop/Brand.php
Expand Up @@ -108,7 +108,7 @@ public function doSearch(&$search, $searchTerm, $searchIn, $searchCriteria)
{
$search->_and();

$this->addStandardI18nSearch($search, $searchTerm, $searchCriteria);
$this->addStandardI18nSearch($search, $searchTerm, $searchCriteria, $searchIn);
}

public function buildModelCriteria()
Expand Down
2 changes: 1 addition & 1 deletion core/lib/Thelia/Core/Template/Loop/Category.php
Expand Up @@ -126,7 +126,7 @@ public function doSearch(&$search, $searchTerm, $searchIn, $searchCriteria)
{
$search->_and();

$this->addStandardI18nSearch($search, $searchTerm, $searchCriteria);
$this->addStandardI18nSearch($search, $searchTerm, $searchCriteria, $searchIn);
}

public function buildModelCriteria()
Expand Down
2 changes: 1 addition & 1 deletion core/lib/Thelia/Core/Template/Loop/Content.php
Expand Up @@ -117,7 +117,7 @@ public function doSearch(&$search, $searchTerm, $searchIn, $searchCriteria)
{
$search->_and();

$this->addStandardI18nSearch($search, $searchTerm, $searchCriteria);
$this->addStandardI18nSearch($search, $searchTerm, $searchCriteria, $searchIn);
}

public function buildModelCriteria()
Expand Down
3 changes: 1 addition & 2 deletions core/lib/Thelia/Core/Template/Loop/Folder.php
Expand Up @@ -109,8 +109,7 @@ public function getSearchIn()
public function doSearch(&$search, $searchTerm, $searchIn, $searchCriteria)
{
$search->_and();

$this->addStandardI18nSearch($search, $searchTerm, $searchCriteria);
$this->addStandardI18nSearch($search, $searchTerm, $searchCriteria, $searchIn);
}

public function buildModelCriteria()
Expand Down
2 changes: 1 addition & 1 deletion core/lib/Thelia/Core/Template/Loop/Product.php
Expand Up @@ -211,7 +211,7 @@ public function doSearch(&$search, $searchTerm, $searchIn, $searchCriteria)
}
}

$this->addStandardI18nSearch($search, $searchTerm, $searchCriteria);
$this->addStandardI18nSearch($search, $searchTerm, $searchCriteria, $searchIn);
}

/**
Expand Down
2 changes: 1 addition & 1 deletion core/lib/Thelia/Core/Template/Loop/Sale.php
Expand Up @@ -119,7 +119,7 @@ public function doSearch(&$search, $searchTerm, $searchIn, $searchCriteria)
}
}

$this->addStandardI18nSearch($search, $searchTerm, $searchCriteria);
$this->addStandardI18nSearch($search, $searchTerm, $searchCriteria, $searchIn);
}

public function buildModelCriteria()
Expand Down

0 comments on commit 9b7de01

Please sign in to comment.