Skip to content
Snippets Groups Projects
Commit 7c0a2ab2 authored by Andrew Dolgov's avatar Andrew Dolgov
Browse files

pluginhost: allow loading user plugins from plugins.local

parent c3dfc1bd
No related branches found
No related tags found
No related merge requests found
......@@ -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;
// try system plugin directory first
$file = __DIR__ . "/../plugins/$class_file/init.php";
$file = dirname(__FILE__)."/../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% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment