X-Git-Url: http://git.dj3c1t.com/index.cgi?a=blobdiff_plain;f=mw%2Fenv%2Fmodules%2Fmw_env_observers.php;h=4184bc676acb7369bba55c973f2ef39b6c5fdaef;hb=0df77b6e0e0eee4060e73ca0d6955bf232aa23cc;hp=6b5a83c509b594a2394f374cb71a3b9f727b6b5b;hpb=e3d5bcff19bdf8bed721635096d71503f0a3fd6d;p=mtweb diff --git a/mw/env/modules/mw_env_observers.php b/mw/env/modules/mw_env_observers.php index 6b5a83c..4184bc6 100644 --- a/mw/env/modules/mw_env_observers.php +++ b/mw/env/modules/mw_env_observers.php @@ -51,23 +51,25 @@ $observers = array(); foreach($observers_files as $file => $observers_path){ $observer_name = substr($file, 0, -4); - if(class_exists($observer_name)) return false; - if(!file_exists($observer_file = $observers_path.$file)) return false; - require_once $observer_file; - if(!class_exists($observer_name)) return false; + if(!class_exists($observer_name)){ + if(!file_exists($observer_file = $observers_path.$file)) return false; + require_once $observer_file; + if(!class_exists($observer_name)) return false; + } $observers[$observer_name] = new $observer_name(); } return $observers; } - function call_observers($observer_call){ + function call_observers($observer_call, $params = array()){ if(!isset($this->observers)){ $this->observers = $this->init_observers(); } if($this->observers){ foreach($this->observers as $observer_name => $observer){ if(method_exists($observer, $observer_call)){ - $observer->$observer_call($this); + if(method_exists($observer, "set_env")) $observer->set_env($this); + $observer->$observer_call($params); } } } @@ -75,4 +77,18 @@ } + class mw_observer{ + + var $env; + + function set_env(&$env){ + $this->env = &$env; + } + + function env(){ + return $this->env; + } + + } + ?> \ No newline at end of file