$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);
}
}
}
}
+ class mw_observer{
+
+ var $env;
+
+ function set_env(&$env){
+ $this->env = &$env;
+ }
+
+ function env(){
+ return $this->env;
+ }
+
+ }
+
?>
\ No newline at end of file