]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/YammerImport/YammerImportPlugin.php
Merge branch '1.0.x' of git://gitorious.org/statusnet/mainline
[quix0rs-gnu-social.git] / plugins / YammerImport / YammerImportPlugin.php
index 02923493fbbeb0395e26bb340440983739826826..41d8d08a663b58f9d381405b861f5290c05bd870 100644 (file)
@@ -22,9 +22,7 @@
  * @maintainer Brion Vibber <brion@status.net>
  */
 
-if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
-
-set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/extlib/');
+if (!defined('STATUSNET')) { exit(1); }
 
 class YammerImportPlugin extends Plugin
 {
@@ -36,8 +34,10 @@ class YammerImportPlugin extends Plugin
      */
     function onRouterInitialized($m)
     {
-        $m->connect('admin/import/yammer',
-                    array('action' => 'importyammer'));
+        $m->connect('panel/yammer',
+                    array('action' => 'yammeradminpanel'));
+        $m->connect('panel/yammer/auth',
+                    array('action' => 'yammerauth'));
         return true;
     }
 
@@ -48,7 +48,58 @@ class YammerImportPlugin extends Plugin
      */
     function onEndInitializeQueueManager(QueueManager $qm)
     {
-        $qm->connect('importym', 'ImportYmQueueHandler');
+        $qm->connect('yammer', 'YammerQueueHandler');
+
+        return true;
+    }
+
+    /**
+     * Set up all our tables...
+     */
+    function onCheckSchema()
+    {
+        $schema = Schema::get();
+
+        $tables = array('Yammer_state',
+                        'Yammer_user',
+                        'Yammer_group',
+                        'Yammer_notice',
+                        'Yammer_notice_stub');
+        foreach ($tables as $table) {
+            $schemaDef = call_user_func(array($table, 'schemaDef'));
+            $schema->ensureTable(strtolower($table), $schemaDef);
+        }
+
+        return true;
+    }
+
+    /**
+     * If the plugin's installed, this should be accessible to admins.
+     */
+    function onAdminPanelCheck($name, &$isOK)
+    {
+        if ($name == 'yammer') {
+            $isOK = true;
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Add the Yammer admin panel to the list...
+     */
+    function onEndAdminPanelNav($nav)
+    {
+        if (AdminPanelAction::canAdmin('yammer')) {
+            $action_name = $nav->action->trimmed('action');
+
+            $nav->out->menuItem(common_local_url('yammeradminpanel'),
+                                _m('Yammer'),
+                                _m('Yammer import'),
+                                $action_name == 'yammeradminpanel',
+                                'nav_yammer_admin_panel');
+        }
 
         return true;
     }
@@ -65,10 +116,28 @@ class YammerImportPlugin extends Plugin
     {
         $base = dirname(__FILE__);
         $lower = strtolower($cls);
-        switch ($cls) {
-        case 'yammerimqueuehandler':
-        case 'importyammeraction':
-            require_once $base . $lower . '.php';
+        switch ($lower) {
+        case 'sn_yammerclient':
+        case 'yammerimporter':
+        case 'yammerrunner':
+        case 'yammerapikeyform':
+        case 'yammerauthinitform':
+        case 'yammerauthverifyform':
+        case 'yammerprogressform':
+        case 'yammerqueuehandler':
+            require_once "$base/lib/$lower.php";
+            return false;
+        case 'yammeradminpanelaction':
+            $crop = substr($lower, 0, strlen($lower) - strlen('action'));
+            require_once "$base/actions/$crop.php";
+            return false;
+        case 'yammer_state':
+        case 'yammer_notice_stub':
+        case 'yammer_common':
+        case 'yammer_user':
+        case 'yammer_group':
+        case 'yammer_notice':
+            require_once "$base/classes/$cls.php";
             return false;
         default:
             return true;