add function to list all plugins

This commit is contained in:
Robin Appelman 2010-09-28 22:03:02 +00:00
parent 1b5a0bb31e
commit f29e349412
1 changed files with 23 additions and 5 deletions

View File

@ -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;