X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fplugin.php;h=5acdc1c2ba5e076be788deb9206010767be1606a;hb=ce91f1c0e6a001c1e43ee52dfd26789ac4f83d45;hp=f97a07fe5ae5cae34da4a9b1e56c9c7fce82bc69;hpb=de55d8f83bb2ecf9461510768fe7147aec592055;p=quix0rs-gnu-social.git diff --git a/lib/plugin.php b/lib/plugin.php index f97a07fe5a..5acdc1c2ba 100644 --- a/lib/plugin.php +++ b/lib/plugin.php @@ -99,17 +99,25 @@ class Plugin */ public function onAutoload($cls) { $cls = basename($cls); - $basedir = INSTALLDIR . '/plugins/' . mb_substr(get_called_class(), 0, -6); + $basedir = INSTALLDIR . '/local/plugins/' . mb_substr(get_called_class(), 0, -6); + if (!file_exists($basedir)) { + $basedir = INSTALLDIR . '/plugins/' . mb_substr(get_called_class(), 0, -6); + } + $file = null; if (preg_match('/^(\w+)(Action|Form)$/', $cls, $type)) { $type = array_map('strtolower', $type); $file = "$basedir/{$type[2]}s/{$type[1]}.php"; - } else { + } + if (!file_exists($file)) { $file = "$basedir/classes/{$cls}.php"; + // library files can be put into subdirs ('_'->'/' conversion) + // such as LRDDMethod_WebFinger -> lib/lrddmethod/webfinger.php if (!file_exists($file)) { $type = strtolower($cls); + $type = str_replace('_', '/', $type); $file = "$basedir/lib/{$type}.php"; } } @@ -154,12 +162,22 @@ class Plugin $this->log(LOG_DEBUG, $msg); } - function name() + public function name() { $cls = get_class($this); return mb_substr($cls, 0, -6); } + public function version() + { + return GNUSOCIAL_VERSION; + } + + protected function userAgent() { + return HTTPClient::userAgent() + . ' (' . get_class($this) . ' v' . $this->version() . ')'; + } + function onPluginVersion(&$versions) { $name = $this->name();