get = strip($_GET); if(is_dir($plugindirectory)) { $handle = opendir($plugindirectory); while( false !== ( $file = readdir ($handle) ) ) { if(substr($file, -10) === '.jplug.php') { include_once $plugindirectory.$file; $this->register( substr($file, 0, -10) ); } } closedir($handle); } } function register($plugin) { $this->plugins[] = new $plugin; } // Aufruf $JLogPluginManagerInstanz->callHook('eins', $param1[, $param2, ...]); // $param1 = Pflicht-Parameter, alle anderen optional function callHook($hook) { $hook = 'hook_' . $hook; $parameters = func_get_args(); array_shift($parameters); // $hook entfernen if (!isset($parameters[0])) die('fatal error - no parameters'); $hookresult = $parameters[0]; foreach ($this->plugins as $plugin) { $parameters[0] = $hookresult; if($hook == 'hook_adminTitle' OR $hook == 'hook_adminContent') { if(strtolower($this->get['jplug']) === strtolower(get_class($plugin))) $hookresult = call_user_func_array(array($plugin, $hook), $parameters); } else $hookresult = call_user_func_array(array($plugin, $hook), $parameters); } return $hookresult; } } ?>