diff options
Diffstat (limited to 'lib/statusnet.php')
-rw-r--r-- | lib/statusnet.php | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/lib/statusnet.php b/lib/statusnet.php index f8bf87960..63d8cb3da 100644 --- a/lib/statusnet.php +++ b/lib/statusnet.php @@ -34,6 +34,25 @@ class StatusNet protected static $plugins = array(); /** + * Return a list of possible filenames that plugin $name can be in. + * + * @param string $name class name & plugin file/subdir name + */ + public static function pluginFiles($name) { + $name = ucfirst($name); + $pluginclass = "{$name}Plugin"; + + $files = array("local/plugins/{$pluginclass}.php", + "local/plugins/{$name}/{$pluginclass}.php", + "local/{$pluginclass}.php", + "local/{$name}/{$pluginclass}.php", + "plugins/{$pluginclass}.php", + "plugins/{$name}/{$pluginclass}.php"); + + return $files; + } + + /** * Configure and instantiate a plugin into the current configuration. * Class definitions will be loaded from standard paths if necessary. * Note that initialization events won't be fired until later. @@ -50,12 +69,7 @@ class StatusNet if (!class_exists($pluginclass)) { - $files = array("local/plugins/{$pluginclass}.php", - "local/plugins/{$name}/{$pluginclass}.php", - "local/{$pluginclass}.php", - "local/{$name}/{$pluginclass}.php", - "plugins/{$pluginclass}.php", - "plugins/{$name}/{$pluginclass}.php"); + $files = self::pluginFiles($name); foreach ($files as $file) { $fullpath = INSTALLDIR.'/'.$file; |