]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/UserFlag/UserFlagPlugin.php
call DB_DataObject::__destruct() if it exists
[quix0rs-gnu-social.git] / plugins / UserFlag / UserFlagPlugin.php
index b4d48c74bcf49a471344dd9b23d2cbc8f2a2551f..75dcca4fcb3eaba46b953cca453a39f448c542a3 100644 (file)
@@ -48,7 +48,16 @@ class UserFlagPlugin extends Plugin
         $schema = Schema::get();
 
         // For storing user-submitted flags on profiles
-        $schema->ensureDataObject('User_flag_profile');
+
+        $schema->ensureTable('user_flag_profile',
+                             array(new ColumnDef('profile_id', 'integer', null,
+                                                 false, 'PRI'),
+                                   new ColumnDef('user_id', 'integer', null,
+                                                 false, 'PRI'),
+                                   new ColumnDef('created', 'datetime', null,
+                                                 false, 'MUL'),
+                                   new ColumnDef('cleared', 'datetime', null,
+                                                 true, 'MUL')));
 
         return true;
     }
@@ -59,7 +68,7 @@ class UserFlagPlugin extends Plugin
         return true;
     }
 
-    function onRouterInitialized(&$m) {
+    function onRouterInitialized($m) {
         $m->connect('main/flag/profile', array('action' => 'flagprofile'));
         $m->connect('admin/profile/flag', array('action' => 'adminprofileflag'));
         return true;
@@ -88,7 +97,7 @@ class UserFlagPlugin extends Plugin
     {
         $user = common_current_user();
 
-        if (!empty($user)) {
+        if (!empty($user) && ($user->id != $profile->id)) {
 
             $action->elementStart('li', 'entity_flag');
 
@@ -113,9 +122,15 @@ class UserFlagPlugin extends Plugin
 
         if (!empty($user)) {
 
-            $form = new FlagProfileForm($item->action, $item->profile);
+            list($action, $args) = $item->action->returnToArgs();
+
+            $args['action'] = $action;
 
+            $form = new FlagProfileForm($item->action, $item->profile, $args);
+
+            $item->action->elementStart('li', 'entity_flag');
             $form->show();
+            $item->action->elementEnd('li');
         }
 
         return true;
@@ -123,20 +138,14 @@ class UserFlagPlugin extends Plugin
 
     function onEndShowStatusNetStyles($action)
     {
-        $action->elementStart('style', array('type' => 'text/css'));
-        $action->raw('.entity_flag input, .entity_flag p {'.
-            ' background:url('.common_path('plugins/UserFlag/flag.gif').') 5px 5px no-repeat;'.
-            ' }');
-        $action->elementEnd('style');
-
+        $action->cssLink(common_path('plugins/UserFlag/userflag.css'), 
+                         null, 'screen, projection, tv');
         return true;
     }
 
     function onEndShowScripts($action)
     {
-        $action->elementStart('script', array('type' => 'text/javascript'));
-        $action->raw('/*<![CDATA[*/ SN.U.FormXHR($(".form_entity_flag")); /*]]>*/');
-        $action->elementEnd('script');
+        $action->inlineScript('if ($(".form_entity_flag").length > 0) { SN.U.FormXHR($(".form_entity_flag")); }');
         return true;
     }
 }