]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/groupaction.php
Merge branch 'profile' into 'nightly'
[quix0rs-gnu-social.git] / lib / groupaction.php
index ede0e3100f4439f393f1ae7d2e15a47cacb1f166..2fcec360bcd6f8af0ad1c60422436919e843b9d9 100644 (file)
@@ -27,9 +27,7 @@
  * @link      http://status.net/
  */
 
-if (!defined('STATUSNET') && !defined('LACONICA')) {
-    exit(1);
-}
+if (!defined('GNUSOCIAL')) { exit(1); }
 
 define('MEMBERS_PER_SECTION', 27);
 
@@ -42,32 +40,28 @@ define('MEMBERS_PER_SECTION', 27);
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-class GroupAction extends Action
+class GroupAction extends ShowstreamAction
 {
     protected $group;
 
-    function prepare($args)
+    protected function doPreparation()
     {
-        parent::prepare($args);
-
         $nickname_arg = $this->arg('nickname');
         $nickname = common_canonical_nickname($nickname_arg);
 
         // Permanent redirect on non-canonical nickname
 
-        if ($nickname_arg != $nickname) {
+        if ($nickname_arg !== $nickname) {
             $args = array('nickname' => $nickname);
             if ($this->page != 1) {
                 $args['page'] = $this->page;
             }
-            common_redirect(common_local_url('showgroup', $args), 301);
-            return false;
+            common_redirect(common_local_url($this->getActionName(), $args), 301);
         }
 
         if (!$nickname) {
             // TRANS: Client error displayed if no nickname argument was given requesting a group page.
             $this->clientError(_('No nickname.'), 404);
-            return false;
         }
 
         $local = Local_group::getKV('nickname', $nickname);
@@ -80,21 +74,19 @@ class GroupAction extends Action
                     $args['page'] = $this->page;
                 }
                 common_redirect(common_local_url('groupbyid', $args), 301);
-                return false;
             } else {
                 common_log(LOG_NOTICE, "Couldn't find local group for nickname '$nickname'");
                 // TRANS: Client error displayed if no remote group with a given name was found requesting group page.
-                $this->clientError(_('No such group.'), 404);
-                return false;
+                throw new ClientException(_('No such group.'), 404);
             }
         }
 
         $this->group = User_group::getKV('id', $local->group_id);
+        $this->target = $this->group->getProfile();
 
-        if (!$this->group) {
+        if (!$this->group instanceof User_group) {
             // TRANS: Client error displayed if no local group with a given name was found requesting group page.
-            $this->clientError(_('No such group.'), 404);
-            return false;
+            throw new ClientException(_('No such group.'), 404);
         }
     }
 
@@ -112,18 +104,12 @@ class GroupAction extends Action
     function showSections()
     {
         $this->showMembers();
-        $cur = common_current_user();
-        if ($cur && $cur->isAdmin($this->group)) {
+        if ($this->scoped instanceof Profile && $this->scoped->isAdmin($this->group)) {
             $this->showPending();
             $this->showBlocked();
         }
 
         $this->showAdmins();
-
-        if (!common_config('performance', 'high')) {
-            $cloud = new GroupTagCloudSection($this, $this->group);
-            $cloud->show();
-        }
     }
 
     /**
@@ -289,88 +275,9 @@ class GroupAction extends Action
 
         return $options;
     }
-}
-
-class GroupAdminSection extends ProfileSection
-{
-    var $group;
-
-    function __construct($out, $group)
-    {
-        parent::__construct($out);
-        $this->group = $group;
-    }
-
-    function getProfiles()
-    {
-        return $this->group->getAdmins();
-    }
-
-    function title()
-    {
-        // TRANS: Title for list of group administrators on a group page.
-        return _m('TITLE','Admins');
-    }
-
-    function divId()
-    {
-        return 'group_admins';
-    }
 
-    function moreUrl()
-    {
-        return null;
-    }
-}
-
-class GroupMembersMiniList extends ProfileMiniList
-{
-    function newListItem($profile)
-    {
-        return new GroupMembersMiniListItem($profile, $this->action);
-    }
-}
-
-class GroupMembersMiniListItem extends ProfileMiniListItem
-{
-    function linkAttributes()
-    {
-        $aAttrs = parent::linkAttributes();
-
-        if (common_config('nofollow', 'members')) {
-            $aAttrs['rel'] .= ' nofollow';
-        }
-
-        return $aAttrs;
-    }
-}
-
-class GroupBlockedMiniList extends ProfileMiniList
-{
-    function newListItem($profile)
-    {
-        return new GroupBlockedMiniListItem($profile, $this->action);
-    }
-}
-
-class GroupBlockedMiniListItem extends ProfileMiniListItem
-{
-    function linkAttributes()
-    {
-        $aAttrs = parent::linkAttributes();
-
-        if (common_config('nofollow', 'members')) {
-            $aAttrs['rel'] .= ' nofollow';
-        }
-
-        return $aAttrs;
-    }
-}
-
-class ThreadingGroupNoticeStream extends ThreadingNoticeStream
-{
-    function __construct($group, $profile)
+    function getGroup()
     {
-        parent::__construct(new GroupNoticeStream($group, $profile));
+        return $this->group;
     }
 }