From 20078e03cae2c6150dc22a19e4fb09528eef2fb8 Mon Sep 17 00:00:00 2001 From: Romain Ruaud Date: Fri, 7 Feb 2025 17:33:16 +0100 Subject: [PATCH] Do not apply the currentcategory filter in admin. --- .../Container/Filter/CurrentCategory.php | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/src/module-elasticsuite-catalog/Model/Product/Search/Request/Container/Filter/CurrentCategory.php b/src/module-elasticsuite-catalog/Model/Product/Search/Request/Container/Filter/CurrentCategory.php index d18bd7815..7b242ff08 100644 --- a/src/module-elasticsuite-catalog/Model/Product/Search/Request/Container/Filter/CurrentCategory.php +++ b/src/module-elasticsuite-catalog/Model/Product/Search/Request/Container/Filter/CurrentCategory.php @@ -14,6 +14,7 @@ namespace Smile\ElasticsuiteCatalog\Model\Product\Search\Request\Container\Filter; use Magento\Catalog\Model\Config\LayerCategoryConfig; +use Magento\Framework\App\State; use Smile\ElasticsuiteCore\Api\Search\ContextInterface; use Smile\ElasticsuiteCore\Api\Search\Request\Container\FilterInterface; use Smile\ElasticsuiteVirtualCategory\Model\Category\Filter\Provider; @@ -42,21 +43,29 @@ class CurrentCategory implements FilterInterface */ private $filterProvider; + /** + * @var \Magento\Framework\App\State + */ + private $appState; + /** * Current Category filter constructor. * * @param ContextInterface $searchContext Current search context. * @param LayerCategoryConfig $layerCategoryConfig Category LayerConfig * @param Provider $filterProvider Category Filter provider. + * @param State $appState Application state. */ public function __construct( ContextInterface $searchContext, LayerCategoryConfig $layerCategoryConfig, - Provider $filterProvider + Provider $filterProvider, + State $appState ) { $this->searchContext = $searchContext; $this->layerCategoryConfig = $layerCategoryConfig; $this->filterProvider = $filterProvider; + $this->appState = $appState; } /** @@ -66,7 +75,11 @@ public function getFilterQuery() { $query = null; - if (false === $this->isDisplayCategoryFilter() && $this->searchContext->getCurrentCategory()) { + if ($this->isAdminArea()) { + return null; + } + + if (false === $this->isDisplayCategoryFilter() && $this->searchContext->getCurrentCategory()) { $query = $this->filterProvider->getQueryFilter($this->searchContext->getCurrentCategory()); } @@ -82,4 +95,18 @@ private function isDisplayCategoryFilter() { return $this->layerCategoryConfig->isCategoryFilterVisibleInLayerNavigation(); } + + /** + * Check if we are in the admin area + * + * @return bool + */ + private function isAdminArea() + { + try { + return $this->appState->getAreaCode() === \Magento\Framework\App\Area::AREA_ADMINHTML; + } catch (\Magento\Framework\Exception\LocalizedException $exception) { + return false; + } + } }