From f29e3494128cb384fc8595e423994aeb9c0a2100 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 28 Sep 2010 22:03:02 +0000 Subject: [PATCH] add function to list all plugins --- inc/lib_plugin.php | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/inc/lib_plugin.php b/inc/lib_plugin.php index c846fe2560..1e75a51e30 100644 --- a/inc/lib_plugin.php +++ b/inc/lib_plugin.php @@ -56,17 +56,35 @@ class OC_PLUGIN{ return false; } + /** + * Get a list of all installed plugins + */ + public static function listPlugins() { + global $SERVERROOT; + $plugins = array(); + $fd = opendir($SERVERROOT . '/plugins'); + while ( false !== ($filename = readdir($fd)) ) { + if ( $filename<>'.' AND $filename<>'..' AND ('.' != substr($filename, 0, 1))) { + if(file_exists($SERVERROOT . '/plugins/'.$filename.'/plugin.xml')){ + $plugins[]=$filename; + } + } + } + closedir($fd); + return $plugins; + } + /** * Load all plugins that aren't blacklisted */ public static function loadPlugins() { global $SERVERROOT; - $plugins = array(); + $plugins = self::listPlugins(); $blacklist=self::loadBlacklist(); $fd = opendir($SERVERROOT . '/plugins'); - while ( false !== ($filename = readdir($fd)) ) { - if ( $filename<>'.' AND $filename<>'..' AND ('.' != substr($filename, 0, 1)) AND array_search($filename,$blacklist)===false) { - self::load($filename); + foreach($plugins as $plugin){ + if (array_search($plugin,$blacklist)===false) { + self::load($plugin); } } closedir($fd); @@ -76,7 +94,7 @@ class OC_PLUGIN{ * load the blacklist from blacklist.txt * @return array */ - private static function loadBlacklist(){ + public static function loadBlacklist(){ global $SERVERROOT; if(count(self::$blacklist)>0){ return self::$blacklist;