From f4038a2160d55a7f519a3b42be1aa96e29e9a908 Mon Sep 17 00:00:00 2001 From: ftimme <ft@falkotimme.com> Date: Wed, 27 Feb 2013 09:01:40 -0500 Subject: [PATCH] - Fixed "FUNCTION databasename.CONCAT does not exist" error for older MySQL versions. --- interface/lib/classes/plugin.inc.php | 28 +++++++++++++++++----------- 1 files changed, 17 insertions(+), 11 deletions(-) diff --git a/interface/lib/classes/plugin.inc.php b/interface/lib/classes/plugin.inc.php index 50efb90..341b186 100644 --- a/interface/lib/classes/plugin.inc.php +++ b/interface/lib/classes/plugin.inc.php @@ -31,7 +31,7 @@ class plugin { private $subscribed_events = array(); - private $debug = true; + private $debug = false; /* @@ -63,15 +63,15 @@ //** load the plugins foreach($tmp_plugins as $plugin_name => $file) { include_once($plugins_dir.$file); - if($this->debug) $app->log("Loading Plugin: $plugin_name",LOGLEVEL_DEBUG); + if($this->debug) $app->log('Loading plugin: '.$plugin_name,LOGLEVEL_DEBUG); $app->loaded_plugins[$plugin_name] = new $plugin_name; $app->loaded_plugins[$plugin_name]->onLoad(); } } else { - $app->log("Unable to open the plugin directory: $plugins_dir",LOGLEVEL_ERROR); + $app->log('Unable to open the plugins directory: '.$plugins_dir,LOGLEVEL_ERROR); } } else { - $app->log("Plugin directory missing: $plugins_dir",LOGLEVEL_ERROR); + $app->log('Plugins directory missing: '.$plugins_dir,LOGLEVEL_ERROR); } } @@ -86,7 +86,6 @@ $_SESSION['s']['plugin_cache'][$event_name][] = array('plugin' => $plugin_name, 'function' => $function_name); if($this->debug) $app->log("Plugin '$plugin_name' has registered the function '$function_name' for the event '$event_name'",LOGLEVEL_DEBUG); - } /* @@ -98,7 +97,7 @@ if(!isset($_SESSION['s']['plugin_cache'])) { $this->loadPluginCache(); - if($this->debug) $app->log("Loaded the plugin cache.",LOGLEVEL_DEBUG); + if($this->debug) $app->log('Loaded the plugin cache.',LOGLEVEL_DEBUG); } @@ -131,31 +130,38 @@ } } // end function raiseEvent - + //* Internal function to load the plugin and call the event function in the plugin. private function callPluginEvent($event_name,$data) { global $app; - + //* execute the functions for the events - if(is_array($_SESSION['s']['plugin_cache'][$event_name])) { + if(@is_array($_SESSION['s']['plugin_cache'][$event_name])) { foreach($_SESSION['s']['plugin_cache'][$event_name] as $rec) { $plugin_name = $rec['plugin']; $function_name = $rec['function']; $plugin_file = ISPC_LIB_PATH.FS_DIV.'plugins'.FS_DIV.$plugin_name.'.inc.php'; + + if(is_file($plugin_file)) { if(!isset($app->loaded_plugins[$plugin_name])) { include_once($plugin_file); $app->loaded_plugins[$plugin_name] = new $plugin_name; } + if($this->debug) $app->log("Called method: '$function_name' in plugin '$plugin_name' for event '$event_name'",LOGLEVEL_DEBUG); - call_user_method($function_name,$app->loaded_plugins[$plugin_name],$event_name,$data); + // call_user_method($function_name,$app->loaded_plugins[$plugin_name],$event_name,$data); + + call_user_func(array($app->loaded_plugins[$plugin_name],$function_name),$event_name,$data); + } } } + } // end functiom callPluginEvent } -?> \ No newline at end of file +?> -- Gitblit v1.9.1