From 94806c6f093ed94d70c5720d2ea1f1747440087f Mon Sep 17 00:00:00 2001 From: Chris Smith Date: Wed, 13 Aug 2008 14:59:29 +0200 Subject: add third parameter to plugin_load(), $new, to allow return of a new plugin object instance darcs-hash:20080813125929-f07c6-4f20e147334ebc5be006ec9f260331950ac2e4cb.gz --- inc/pluginutils.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'inc/pluginutils.php') diff --git a/inc/pluginutils.php b/inc/pluginutils.php index 55c03f4a5..100f781f2 100644 --- a/inc/pluginutils.php +++ b/inc/pluginutils.php @@ -60,16 +60,21 @@ function plugin_list($type='',$all=false){ * * @param $type string type of plugin to load * @param $name string name of the plugin to load + * @param $new bool true to return a new instance of the plugin, false to use an already loaded instance * @return objectreference the plugin object or null on failure */ -function &plugin_load($type,$name){ +function &plugin_load($type,$name,$new=false){ //we keep all loaded plugins available in global scope for reuse global $DOKU_PLUGINS; - //plugin already loaded? if(!empty($DOKU_PLUGINS[$type][$name])){ - return $DOKU_PLUGINS[$type][$name]; + if ($new) { + $class = $type.'_plugin_'.$name; + return class_exists($class) ? new $class : null; + } else { + return $DOKU_PLUGINS[$type][$name]; + } } //try to load the wanted plugin file -- cgit v1.2.3