diff --git a/core/lib/Thelia/Core/Template/Loop/Accessory.php b/core/lib/Thelia/Core/Template/Loop/Accessory.php index 69b2e09d9..6dc269b62 100755 --- a/core/lib/Thelia/Core/Template/Loop/Accessory.php +++ b/core/lib/Thelia/Core/Template/Loop/Accessory.php @@ -93,8 +93,10 @@ class Accessory extends Product $accessories = $this->search($search); $accessoryIdList = array(0); + $accessoryPosition = array(); foreach ($accessories as $accessory) { array_push($accessoryIdList, $accessory->getAccessory()); + $accessoryPosition[$accessory->getAccessory()] = $accessory->getPosition(); } $receivedIdList = $this->getId(); @@ -106,7 +108,15 @@ class Accessory extends Product $this->args->get('id')->setValue( implode(',', array_intersect($receivedIdList, $accessoryIdList)) ); } - return parent::exec($pagination); + $loopResult = parent::exec($pagination); + + foreach($loopResult as $loopResultRow) { + $loopResultRow + ->set("POSITION" , $accessoryPosition[$loopResultRow->get('ID')]) + ; + } + + return $loopResult; } } diff --git a/core/lib/Thelia/Core/Template/Smarty/Plugins/TheliaLoop.php b/core/lib/Thelia/Core/Template/Smarty/Plugins/TheliaLoop.php index 37801f4c8..bd2c10513 100755 --- a/core/lib/Thelia/Core/Template/Smarty/Plugins/TheliaLoop.php +++ b/core/lib/Thelia/Core/Template/Smarty/Plugins/TheliaLoop.php @@ -132,6 +132,8 @@ class TheliaLoop extends AbstractSmartyPlugin $loopResults = $loop->exec(self::$pagination[$name]); + $loopResults->rewind(); + $this->loopstack[$name] = $loopResults; // Pas de résultat ? la boucle est terminée, ne pas évaluer le contenu.