pluginhost: allow loading user plugins from plugins.local
This commit is contained in:
parent
c3dfc1bdb5
commit
7c0a2ab202
4 changed files with 26 additions and 3 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -3,6 +3,7 @@
|
|||
*.DS_Store
|
||||
#*
|
||||
.idea/*
|
||||
plugins.local/*
|
||||
config.php
|
||||
feed-icons/*
|
||||
cache/*/*
|
||||
|
|
|
@ -129,7 +129,15 @@ class PluginHost {
|
|||
}
|
||||
}
|
||||
function load_all($kind, $owner_uid = false) {
|
||||
$plugins = array_map("basename", glob("plugins/*"));
|
||||
$plugins = array_map("basename", array_filter(glob("plugins/*"), "is_dir"));
|
||||
|
||||
if (is_dir("plugins.local")) {
|
||||
$plugins = array_merge($plugins, array_map("basename",
|
||||
array_filter(glob("plugins.local/*"), "is_dir")));
|
||||
}
|
||||
|
||||
asort($plugins);
|
||||
|
||||
$this->load(join(",", $plugins), $kind, $owner_uid);
|
||||
}
|
||||
|
||||
|
@ -142,9 +150,15 @@ class PluginHost {
|
|||
$class = trim($class);
|
||||
$class_file = strtolower(basename($class));
|
||||
|
||||
if (!is_dir(dirname(__FILE__)."/../plugins/$class_file")) continue;
|
||||
if (!is_dir(__DIR__."/../plugins/$class_file") &&
|
||||
!is_dir(__DIR__."/../plugins.local/$class_file")) continue;
|
||||
|
||||
$file = dirname(__FILE__)."/../plugins/$class_file/init.php";
|
||||
// try system plugin directory first
|
||||
$file = __DIR__ . "/../plugins/$class_file/init.php";
|
||||
|
||||
if (!file_exists($file)) {
|
||||
$file = __DIR__ . "/../plugins.local/$class_file/init.php";
|
||||
}
|
||||
|
||||
if (!isset($this->plugins[$class])) {
|
||||
if (file_exists($file)) require_once $file;
|
||||
|
|
|
@ -2471,4 +2471,12 @@
|
|||
array("code" => $code, "message" => $message)));
|
||||
|
||||
}
|
||||
|
||||
function abs_to_rel_path($dir) {
|
||||
$tmp = str_replace(dirname(__DIR__), "", $dir);
|
||||
|
||||
if (strlen($tmp) > 0 && substr($tmp, 0, 1) == "/") $tmp = substr($tmp, 1);
|
||||
|
||||
return $tmp;
|
||||
}
|
||||
?>
|
||||
|
|
0
plugins.local/index.html
Normal file
0
plugins.local/index.html
Normal file
Loading…
Reference in a new issue