From 9d0a803561f4404006eec769ac2a6b707b6f534e Mon Sep 17 00:00:00 2001 From: Sam Mousa Date: Wed, 4 Sep 2013 09:27:27 +0200 Subject: [PATCH] Dev Fixed some bugs reported by @seracom. --- .../models/behaviors/PluginEventBehavior.php | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/application/models/behaviors/PluginEventBehavior.php b/application/models/behaviors/PluginEventBehavior.php index fea7d28608a..772484f0cdb 100644 --- a/application/models/behaviors/PluginEventBehavior.php +++ b/application/models/behaviors/PluginEventBehavior.php @@ -4,28 +4,38 @@ class PluginEventBehavior extends CModelBehavior public function events() { return array_merge(parent::events(), array( - 'onBeforeSave' => 'beforeSave', + 'onAfterDelete' => 'afterDelete', 'onAfterSave' => 'afterSave', 'onBeforeDelete' => 'beforeDelete', + 'onBeforeSave' => 'beforeSave', + + )); } - public function afterSave(CModelEvent $event) + public function afterDelete(CEvent $event) + { + $this->dispatchPluginModelEvent('after'.get_class($this->owner).'Delete'); + $this->dispatchPluginModelEvent('afterModelDelete'); + } + public function afterSave(CEvent $event) { $this->dispatchPluginModelEvent('after'.get_class($this->owner).'Save'); $this->dispatchPluginModelEvent('afterModelSave'); } + public function beforeDelete(CModelEvent $event) + { + $this->dispatchPluginModelEvent('before'.get_class($this->owner).'Delete'); + $this->dispatchPluginModelEvent('beforeModelDelete'); + } + public function beforeSave(CModelEvent $event) { $this->dispatchPluginModelEvent('before'.get_class($this->owner).'Save'); $this->dispatchPluginModelEvent('beforeModelSave'); } - public function beforeDelete(CModelEvent $event) - { - $this->dispatchPluginModelEvent('before'.get_class($this->owner).'Delete'); - $this->dispatchPluginModelEvent('beforeModelDelete'); - } + /** * method for dispatching plugin events @@ -35,7 +45,7 @@ public function beforeDelete(CModelEvent $event) * @param array $criteria array containing attributes, conditions and params for the filter query * @return PluginEvent the dispatched event */ - private function dispatchPluginModelEvent($sEventName, $criteria = null) + public function dispatchPluginModelEvent($sEventName, $criteria = null) { $oPluginEvent = new PluginEvent($sEventName, $this); $oPluginEvent->set('model', $this->owner);