* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ use PrestaShop\PrestaShop\Adapter\NewProducts\NewProductsProductSearchProvider; use PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery; use PrestaShop\PrestaShop\Core\Product\Search\SortOrder; class NewProductsControllerCore extends ProductListingFrontController { /** @var string */ public $php_self = 'new-products'; public function getCanonicalURL(): string { return $this->buildPaginatedUrl($this->context->link->getPageLink('new-products')); } /** * {@inheritdoc} */ public function initContent() { parent::initContent(); $this->doProductSearch('catalog/listing/new-products', ['entity' => 'new-products']); } /** * @return ProductSearchQuery */ protected function getProductSearchQuery() { $query = new ProductSearchQuery(); $query ->setQueryType('new-products') ->setSortOrder(new SortOrder('product', 'date_add', 'desc')); return $query; } /** * @return NewProductsProductSearchProvider */ protected function getDefaultProductSearchProvider() { return new NewProductsProductSearchProvider( $this->getTranslator() ); } public function getListingLabel() { return $this->trans( 'New products', [], 'Shop.Theme.Catalog' ); } public function getBreadcrumbLinks() { $breadcrumb = parent::getBreadcrumbLinks(); $breadcrumb['links'][] = [ 'title' => $this->trans('New products', [], 'Shop.Theme.Catalog'), 'url' => $this->context->link->getPageLink('new-products'), ]; return $breadcrumb; } }