]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/plugin.php
MessageCommand moved to DirectMessage plugin
[quix0rs-gnu-social.git] / lib / plugin.php
index f97a07fe5ae5cae34da4a9b1e56c9c7fce82bc69..5acdc1c2ba5e076be788deb9206010767be1606a 100644 (file)
@@ -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();