From 9e4e84f95f1f11fd73b11d3cf4111f006aafcdb1 Mon Sep 17 00:00:00 2001 From: HectorJ Date: Sun, 23 Dec 2012 15:05:43 +0700 Subject: [PATCH] add a 'priority' parameter to observers --- app/code/core/Mage/Core/Model/App.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/code/core/Mage/Core/Model/App.php b/app/code/core/Mage/Core/Model/App.php index 73e2e6ec76cdb..431fa417b3613 100644 --- a/app/code/core/Mage/Core/Model/App.php +++ b/app/code/core/Mage/Core/Model/App.php @@ -1369,8 +1369,16 @@ public function dispatchEvent($eventName, $args) 'type' => (string)$obsConfig->type, 'model' => $obsConfig->class ? (string)$obsConfig->class : $obsConfig->getClassName(), 'method'=> (string)$obsConfig->method, + 'priority' => $obsConfig->priority ? (int)$obsConfig->priority : 0, ); } + usort($observers, function($a, $b){ + if($a['priority']==$b['priority']){ + return 0; + } else { + return $a['priority']<$b['priority'] ? -1 : 1; + } + }); $events[$eventName]['observers'] = $observers; $this->_events[$area][$eventName]['observers'] = $observers; }