/home/sharedstore/.trash/modules/czproductsearch/classes
Edit: /home/sharedstore/.trash/modules/czproductsearch/classes/CZSearchProductSearchProvider.php (4236B)
* @copyright 2007-2018 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
use PrestaShop\PrestaShop\Core\Product\Search\ProductSearchProviderInterface;
use PrestaShop\PrestaShop\Core\Product\Search\ProductSearchContext;
use PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery;
use PrestaShop\PrestaShop\Core\Product\Search\ProductSearchResult;
use PrestaShop\PrestaShop\Core\Product\Search\SortOrderFactory;
use Symfony\Component\Translation\TranslatorInterface;
// use Search;
// use Tools;
if (file_exists(_PS_MODULE_DIR_.'czproductsearch/classes/ProductSearch.php')) {
require_once( _PS_MODULE_DIR_.'czproductsearch/classes/ProductSearch.php' );
}
// use ProductSearch\ProductSearch;
// if (file_exists(_PS_MODULE_DIR_.'czproductsearch/classes/ProductSearch.php')) {
// require_once( _PS_MODULE_DIR_.'czproductsearch/classes/ProductSearch.php' );
// }
class CzSearchProductSearchProvider implements ProductSearchProviderInterface
{
private $translator;
private $category;
private $sortOrderFactory;
public function __construct(
TranslatorInterface $translator
) {
$this->translator = $translator;
$this->sortOrderFactory = new SortOrderFactory($this->translator);
}
public function runQuery(
ProductSearchContext $context,
ProductSearchQuery $query
) {
$products = [];
$count = 0;
if (($string = $query->getSearchString())) {
// $class = new ProductSearch;
// echo '
';
// print_r();die();
$result = ProductSearch::find(
$context->getIdLang(),
Tools::replaceAccentedChars(urldecode($string)),
$query->getPage(),
$query->getResultsPerPage(),
$query->getSortOrder()->toLegacyOrderBy(),
$query->getSortOrder()->toLegacyOrderWay(),
false, // ajax, what's the link?
false, // $use_cookie, ignored anyway
null,
$query->getIdCategory()
);
$products = $result['result'];
$count = $result['total'];
} elseif (($tag = $query->getSearchTag())) {
// $class = new ProductSearch;
$products = ProductSearch::searchTag(
$context->getIdLang(),
urldecode($tag),
false,
$query->getPage(),
$query->getResultsPerPage(),
$query->getSortOrder()->toLegacyOrderBy(true),
$query->getSortOrder()->toLegacyOrderWay(),
false,
null
);
$count = ProductSearch::searchTag(
$context->getIdLang(),
urldecode($tag),
true,
$query->getPage(),
$query->getResultsPerPage(),
$query->getSortOrder()->toLegacyOrderBy(true),
$query->getSortOrder()->toLegacyOrderWay(),
false,
null
);
}
$result = new ProductSearchResult();
$result
->setProducts($products)
->setTotalProductsCount($count)
;
$result->setAvailableSortOrders(
$this->sortOrderFactory->getDefaultSortOrders()
);
return $result;
}
}