]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/galleryaction.php
abstraction for starting and ending a menu
[quix0rs-gnu-social.git] / lib / galleryaction.php
index b36f1ea34b15b9b55c6cde779521d2c71434d6c1..107134a09b205129e94dc87a78e61a3f6c34b147 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /**
- * Laconica - a distributed open-source microblogging tool
- * Copyright (C) 2008, Controlez-Vous, Inc.
+ * StatusNet - the distributed open-source microblogging tool
+ * Copyright (C) 2008, 2009, StatusNet, Inc.
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as published by
@@ -17,7 +17,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-if (!defined('LACONICA')) {
+if (!defined('STATUSNET') && !defined('LACONICA')) {
     exit(1);
 }
 
@@ -27,11 +27,11 @@ require_once INSTALLDIR.'/lib/profilelist.php';
 
 define('AVATARS_PER_PAGE', 80);
 
-class GalleryAction extends Action
+class GalleryAction extends OwnerDesignAction
 {
     var $profile = null;
-    var $user = null;
     var $page = null;
+    var $tag = null;
 
     function prepare($args)
     {
@@ -49,7 +49,7 @@ class GalleryAction extends Action
             if ($this->arg('page') && $this->arg('page') != 1) {
                 $args['page'] = $this->arg['page'];
             }
-            common_redirect(common_local_url('subscriptions', $args), 301);
+            common_redirect(common_local_url($this->trimmed('action'), $args), 301);
             return false;
         }
 
@@ -69,10 +69,13 @@ class GalleryAction extends Action
 
         $this->page = ($this->arg('page')) ? ($this->arg('page')+0) : 1;
 
+        $this->tag = $this->trimmed('tag');
+        $this->q   = $this->trimmed('q');
+
         return true;
     }
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
@@ -84,14 +87,14 @@ class GalleryAction extends Action
                # Post from the tag dropdown; redirect to a GET
 
                if ($_SERVER['REQUEST_METHOD'] == 'POST') {
-                   common_redirect($this->self_url(), 307);
+                   common_redirect($this->selfUrl(), 303);
             return;
                }
 
         $this->showPage();
     }
 
-    function showLocalNav()
+    function showObjectNav()
     {
         $nav = new SubGroupNav($this, $this->user);
         $nav->show();
@@ -114,9 +117,6 @@ class GalleryAction extends Action
             $content[$t] = $t;
         }
         if ($tags) {
-            $this->elementStart('dl', array('id'=>'filter_tags'));
-            $this->element('dt', null, _('Filter tags'));
-            $this->elementStart('dd');
             $this->elementStart('ul');
             $this->elementStart('li', array('id' => 'filter_tags_all',
                                              'class' => 'child_1'));
@@ -124,21 +124,24 @@ class GalleryAction extends Action
                            array('href' =>
                                  common_local_url($this->trimmed('action'),
                                                   array('nickname' =>
-                                                        $profile->nickname))),
+                                                        $this->user->nickname))),
                            _('All'));
             $this->elementEnd('li');
             $this->elementStart('li', array('id'=>'filter_tags_item'));
             $this->elementStart('form', array('name' => 'bytag',
-                                               'id' => 'bytag',
+                                               'id' => 'form_filter_bytag',
+                                              'action' => common_path('?action=' . $this->trimmed('action')),
                                                'method' => 'post'));
+            $this->elementStart('fieldset');
+            $this->element('legend', null, _('Select tag to filter'));
             $this->dropdown('tag', _('Tag'), $content,
                             _('Choose a tag to narrow list'), false, $tag);
-            $this->submit('go', _('Go'));
+            $this->hidden('nickname', $this->user->nickname);
+            $this->submit('submit', _('Go'));
+            $this->elementEnd('fieldset');
             $this->elementEnd('form');
             $this->elementEnd('li');
             $this->elementEnd('ul');
-            $this->elementEnd('dd');
-            $this->elementEnd('dl');
         }
     }
 
@@ -149,8 +152,8 @@ class GalleryAction extends Action
         $profile_tag = new Notice_tag();
         $profile_tag->query('SELECT DISTINCT(tag) ' .
                             'FROM profile_tag, subscription ' .
-                            'WHERE tagger = ' . $profile->id . ' ' .
-                            'AND ' . $usr . ' = ' . $profile->id . ' ' .
+                            'WHERE tagger = ' . $this->profile->id . ' ' .
+                            'AND ' . $usr . ' = ' . $this->profile->id . ' ' .
                             'AND ' . $lst . ' = tagged ' .
                             'AND tagger != tagged');
         $tags = array();
@@ -165,4 +168,4 @@ class GalleryAction extends Action
     {
         return array();
     }
-}
\ No newline at end of file
+}