]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/GNUsocialProfileExtensions/GNUsocialProfileExtensionsPlugin.php
plugins onAutoload now only overloads if necessary (extlibs etc.)
[quix0rs-gnu-social.git] / plugins / GNUsocialProfileExtensions / GNUsocialProfileExtensionsPlugin.php
index 468bc192046f0d307e86f2b55e0861f6c11b980c..bfdcf3e42db05315c2be9c9d8122db1703e2097f 100644 (file)
@@ -22,7 +22,7 @@
  * @category  Widget
  * @package   GNU Social
  * @author    Max Shinn <trombonechamp@gmail.com>
- * @copyright 2010 Free Software Foundation, Inc.
+ * @copyright 2011 Free Software Foundation, Inc.
  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
  */
 
@@ -30,44 +30,16 @@ if (!defined('STATUSNET')) {
     exit(1);
 }
 
+include_once $dir . '/lib/profiletools.php';
+
 class GNUsocialProfileExtensionsPlugin extends Plugin
 {
 
-    function onAutoload($cls)
-    {
-        $dir = dirname(__FILE__);
-
-        switch ($cls)
-        {
-        case 'BioAction':
-            include_once $dir . '/actions/' . strtolower(mb_substr($cls, 0, -6)) . '.php';
-            break;
-        case 'ProfilefieldsAdminPanelAction':
-            include_once $dir . '/actions/' . strtolower(mb_substr($cls, 0, -16)) . '.php';
-            break;
-        default:
-            break;
-        }
-        include_once $dir . '/classes/GNUsocialProfileExtensionField.php';
-        include_once $dir . '/classes/GNUsocialProfileExtensionResponse.php';
-        include_once $dir . '/lib/profiletools.php';
-        return true;
-    }
-
     function onCheckSchema()
     {
         $schema = Schema::get();
-        $schema->ensureTable('GNUsocialProfileExtensionField',
-                                array(new ColumnDef('id', 'int(11)', null, false, 'PRI', null, null, true),
-                                      new ColumnDef('systemname', 'varchar(64)', null, false),
-                                      new ColumnDef('title', 'varchar(256)', null, false),
-                                      new ColumnDef('description', 'text', null, false),
-                                      new ColumnDef('type', 'varchar(256)', null, false)));
-        $schema->ensureTable('GNUsocialProfileExtensionResponse',
-                                array(new ColumnDef('id', 'int(11)', null, false, 'PRI', null, null, true),
-                                      new ColumnDef('extension_id', 'int(11)', null, false),
-                                      new ColumnDef('profile_id', 'int(11)', null, false),
-                                      new ColumnDef('value', 'text', null, false)));
+        $schema->ensureTable('GNUsocialProfileExtensionField', GNUsocialProfileExtensionField::schemaDef());
+        $schema->ensureTable('GNUsocialProfileExtensionResponse', GNUsocialProfileExtensionResponse::schemaDef());
                                           
     }
 
@@ -75,6 +47,7 @@ class GNUsocialProfileExtensionsPlugin extends Plugin
     {
         $m->connect(':nickname/bio', array('action' => 'bio'));
         $m->connect('admin/profilefields', array('action' => 'profilefieldsAdminPanel'));
+        $m->connect('notice/respond', array('action' => 'newresponse'));
         return true;
     }
 
@@ -135,6 +108,11 @@ class GNUsocialProfileExtensionsPlugin extends Plugin
         $action->cssLink('/plugins/GNUsocialProfileExtensions/res/style.css');
     }
 
+    function onEndShowScripts($action)
+    {
+        $action->script('plugins/GNUsocialProfileExtensions/js/profile.js');
+    }
+
     function onEndAdminPanelNav($nav)
     {
         if (AdminPanelAction::canAdmin('profilefields')) {
@@ -160,5 +138,20 @@ class GNUsocialProfileExtensionsPlugin extends Plugin
                            _('The user\'s extended profile'), $nav->action->trimmed('action') == 'bio', 'nav_bio');
     }
 
+    //Why the heck is this shoved into this plugin!?!?  It deserves its own!
+    function onShowStreamNoticeList($notice, $action, &$pnl)
+    {
+        //TODO: This function is called after the notices in $notice are superfluously retrieved in showstream.php
+        $newnotice = new Notice();
+        $newnotice->profile_id = $action->user->id;
+        $newnotice->orderBy('modified DESC');
+        $newnotice->whereAdd('reply_to IS NULL');
+        $newnotice->limit(($action->page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
+        $newnotice->find();
+
+        $pnl = new NoticeTree($newnotice, $action);
+        return false;
+    }
+
 }