From 9ba291ad7dd03d4742ae7ab1144b9a797f50fab8 Mon Sep 17 00:00:00 2001 From: Romain Ruaud Date: Thu, 3 May 2018 14:59:11 +0200 Subject: [PATCH] Prevent assigning a cross-tree virtual category root. --- .../Source/VirtualCategoryRoot/CollectionFactory.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/module-elasticsuite-virtual-category/Model/Category/Attribute/Source/VirtualCategoryRoot/CollectionFactory.php b/src/module-elasticsuite-virtual-category/Model/Category/Attribute/Source/VirtualCategoryRoot/CollectionFactory.php index 446cb8ecb..1eb0d524e 100644 --- a/src/module-elasticsuite-virtual-category/Model/Category/Attribute/Source/VirtualCategoryRoot/CollectionFactory.php +++ b/src/module-elasticsuite-virtual-category/Model/Category/Attribute/Source/VirtualCategoryRoot/CollectionFactory.php @@ -55,6 +55,10 @@ public function create(array $data = []) if ($this->getCurrentCategory() && $this->getCurrentCategory()->getLevel() >= 2) { $collection->addAttributeToFilter('entity_id', ['neq' => (int) $this->getCurrentCategory()->getId()]); + + $rootPath = array_slice($this->getCurrentCategory()->getPathIds(), 0, 2); + $pathCondition = implode('/', $rootPath) . '%'; + $collection->addFieldToFilter('path', ['like' => $pathCondition]); } return $collection;