pluginhost: allow loading user plugins from plugins.local
This commit is contained in:
parent
c3dfc1bdb5
commit
7c0a2ab202
|
@ -3,6 +3,7 @@
|
||||||
*.DS_Store
|
*.DS_Store
|
||||||
#*
|
#*
|
||||||
.idea/*
|
.idea/*
|
||||||
|
plugins.local/*
|
||||||
config.php
|
config.php
|
||||||
feed-icons/*
|
feed-icons/*
|
||||||
cache/*/*
|
cache/*/*
|
||||||
|
|
|
@ -129,7 +129,15 @@ class PluginHost {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function load_all($kind, $owner_uid = false) {
|
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);
|
$this->load(join(",", $plugins), $kind, $owner_uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -142,9 +150,15 @@ class PluginHost {
|
||||||
$class = trim($class);
|
$class = trim($class);
|
||||||
$class_file = strtolower(basename($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 (!isset($this->plugins[$class])) {
|
||||||
if (file_exists($file)) require_once $file;
|
if (file_exists($file)) require_once $file;
|
||||||
|
|
|
@ -2471,4 +2471,12 @@
|
||||||
array("code" => $code, "message" => $message)));
|
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;
|
||||||
|
}
|
||||||
?>
|
?>
|
||||||
|
|
Loading…
Reference in New Issue