* @copyright 2007-2019 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ use PrestaShop\PrestaShop\Adapter\BestSales\BestSalesProductSearchProvider; use PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery; use PrestaShop\PrestaShop\Core\Product\Search\SortOrder; class BestSalesControllerCore extends ProductListingFrontController { public $php_self = 'best-sales'; /** * Initializes controller. * * @see FrontController::init() * * @throws PrestaShopException */ public function init() { if (Configuration::get('PS_DISPLAY_BEST_SELLERS')) { parent::init(); } else { Tools::redirect('index.php?controller=404'); } } /** * {@inheritdoc} */ public function initContent() { parent::initContent(); $this->doProductSearch('catalog/listing/best-sales'); } protected function getProductSearchQuery() { $query = new ProductSearchQuery(); $query ->setQueryType('best-sales') ->setSortOrder(new SortOrder('product', 'name', 'asc')); return $query; } protected function getDefaultProductSearchProvider() { return new BestSalesProductSearchProvider( $this->getTranslator() ); } public function getListingLabel() { return $this->getTranslator()->trans('Best sellers', array(), 'Shop.Theme.Catalog'); } }