3 class mw_env_observers extends mw_env{
7 function init_observers(){
8 $observers_files = array();
9 if(($plugins = $this->plugins()) !== false){
10 foreach($plugins as $plugin_name => $plugin){
11 $observers_path = $this->path("mw_dir")."plugins/".$plugin_name."/app/observers/";
15 && file_exists($observers_path)
16 && is_dir($observers_path)
18 if($dh = opendir($observers_path)){
19 while(($file = readdir($dh)) !== false){
21 substr($file, 0, 1) != "."
22 && !is_dir($observers_path.$file)
23 && strcmp(substr($file, -4), ".php") == 0
24 && !isset($observers_files[$file])
25 ) $observers_files[$file] = $observers_path;
32 $observers_path = $this->path("mw_dir")."app/observers/";
34 file_exists($observers_path)
35 && is_dir($observers_path)
37 if($dh = opendir($observers_path)){
38 while(($file = readdir($dh)) !== false){
40 substr($file, 0, 1) != "."
41 && !is_dir($observers_path.$file)
42 && strcmp(substr($file, -4), ".php") == 0
43 && !isset($observers_files[$file])
44 ) $observers_files[$file] = $observers_path;
52 foreach($observers_files as $file => $observers_path){
53 $observer_name = substr($file, 0, -4);
54 if(!class_exists($observer_name)){
55 if(!file_exists($observer_file = $observers_path.$file)) return false;
56 require_once $observer_file;
57 if(!class_exists($observer_name)) return false;
59 $observers[$observer_name] = new $observer_name();
64 function call_observers($observer_call, $params = array()){
65 if(!isset($this->observers)){
66 $this->observers = $this->init_observers();
69 foreach($this->observers as $observer_name => $observer){
70 if(method_exists($observer, $observer_call)){
71 if(method_exists($observer, "set_env")) $observer->set_env($this);
72 $observer->$observer_call($params);
84 function set_env(&$env){