]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/userprofile.php
Remove UserProfile class
[quix0rs-gnu-social.git] / lib / userprofile.php
diff --git a/lib/userprofile.php b/lib/userprofile.php
deleted file mode 100644 (file)
index 9c563db..0000000
+++ /dev/null
@@ -1,408 +0,0 @@
-<?php
-/**
- * StatusNet, the distributed open-source microblogging tool
- *
- * Profile for a particular user
- *
- * PHP version 5
- *
- * LICENCE: 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
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * @category  Action
- * @package   StatusNet
- * @author    Evan Prodromou <evan@status.net>
- * @author    Sarven Capadisli <csarven@status.net>
- * @copyright 2008 StatusNet, Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://status.net/
- */
-
-if (!defined('STATUSNET') && !defined('LACONICA')) {
-    exit(1);
-}
-
-require_once INSTALLDIR.'/lib/widget.php';
-
-/**
- * Profile of a user
- *
- * Shows profile information about a particular user
- *
- * @category Output
- * @package  StatusNet
- * @author   Evan Prodromou <evan@status.net>
- * @author   Sarven Capadisli <csarven@status.net>
- * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link     http://status.net/
- *
- * @see      HTMLOutputter
- */
-class UserProfile extends Widget
-{
-    var $user = null;
-    var $profile = null;
-
-    function __construct($action=null, $user=null, $profile=null)
-    {
-        parent::__construct($action);
-        $this->user = $user;
-        $this->profile = $profile;
-    }
-
-    function show()
-    {
-        $this->showProfileData();
-        $this->showEntityActions();
-    }
-
-    function showProfileData()
-    {
-        if (Event::handle('StartProfilePageProfileSection', array(&$this->out, $this->profile))) {
-
-            $this->out->elementStart('div', array('id' => 'i',
-                                                  'class' => 'entity_profile vcard author'));
-            // TRANS: H2 for user profile information.
-            $this->out->element('h2', null, _('User profile'));
-
-            if (Event::handle('StartProfilePageProfileElements', array(&$this->out, $this->profile))) {
-
-                $this->showAvatar();
-                $this->showNickname();
-                $this->showFullName();
-                $this->showLocation();
-                $this->showHomepage();
-                $this->showBio();
-                $this->showProfileTags();
-
-                Event::handle('EndProfilePageProfileElements', array(&$this->out, $this->profile));
-            }
-
-            $this->out->elementEnd('div');
-            Event::handle('EndProfilePageProfileSection', array(&$this->out, $this->profile));
-        }
-    }
-
-    function showAvatar()
-    {
-        $this->out->elementStart('div', 'ur_face');
-
-        if (Event::handle('StartProfilePageAvatar', array($this->out, $this->profile))) {
-
-            $avatar = $this->profile->getAvatar(AVATAR_PROFILE_SIZE);
-            if (!$avatar) {
-                // hack for remote Twitter users: no 96px, but large Twitter size is 73px
-                $avatar = $this->profile->getAvatar(73);
-            }
-
-            $this->out->element('img', 
-                                array('src' => ($avatar) ? $avatar->displayUrl() : Avatar::defaultImage(AVATAR_PROFILE_SIZE),
-                                      'class' => 'photo avatar entity_depiction',
-                                      'width' => AVATAR_PROFILE_SIZE,
-                                      'height' => AVATAR_PROFILE_SIZE,
-                                      'alt' => $this->profile->nickname));
-            
-            $cur = common_current_user();
-
-            if ($cur && $cur->id == $this->profile->id) {
-                $this->out->element('a', array('href' => common_local_url('avatarsettings')), _('Edit Avatar'));
-            }
-
-            Event::handle('EndProfilePageAvatar',
-                          array($this->out, $this->profile));
-        }
-
-        $this->out->elementEnd('div');
-    }
-
-    function showNickname()
-    {
-        if (Event::handle('StartProfilePageNickname', array($this->out, $this->profile))) {
-
-            $hasFN = ($this->profile->fullname) ? 'entity_nickname nickname url uid' : 'entity_nickname fn nickname url uid';
-            $this->out->element('a',
-                                array('href' => $this->profile->profileurl,
-                                      'rel' => 'me',
-                                      'class' => $hasFN),
-                           $this->profile->nickname);
-
-            Event::handle('EndProfilePageNickname', array($this->out, $this->profile));
-        }
-    }
-
-    function showFullName()
-    {
-        if (Event::handle('StartProfilePageFullName', array($this->out, $this->profile))) {
-            if ($this->profile->fullname) {
-                $this->out->element('span',
-                                    'entity_fn fn',
-                                    $this->profile->fullname);
-            }
-            Event::handle('EndProfilePageFullName', array($this->out, $this->profile));
-        }
-    }
-
-    function showLocation()
-    {
-        if (Event::handle('StartProfilePageLocation', array($this->out, $this->profile))) {
-            if ($this->profile->location) {
-                $this->out->element('span',
-                                    'entity_location label',
-                                    $this->profile->location);
-            }
-            Event::handle('EndProfilePageLocation', array($this->out, $this->profile));
-        }
-    }
-
-    function showHomepage()
-    {
-        if (Event::handle('StartProfilePageHomepage', array($this->out, $this->profile))) {
-            if ($this->profile->homepage) {
-                $this->out->element('a',
-                                    array('href' => $this->profile->homepage,
-                                          'rel' => 'me',
-                                          'class' => 'url entity_url'),
-                               $this->profile->homepage);
-            }
-            Event::handle('EndProfilePageHomepage', array($this->out, $this->profile));
-        }
-    }
-
-    function showBio()
-    {
-        if (Event::handle('StartProfilePageBio', array($this->out, $this->profile))) {
-            if ($this->profile->bio) {
-                $this->out->element('div',
-                                    'note entity_note',
-                                    $this->profile->bio);
-            }
-            Event::handle('EndProfilePageBio', array($this->out, $this->profile));
-        }
-    }
-
-    function showProfileTags()
-    {
-        if (Event::handle('StartProfilePageProfileTags', array($this->out, $this->profile))) {
-            $tags = Profile_tag::getTags($this->profile->id, $this->profile->id);
-
-            if (count($tags) > 0) {
-                $this->out->elementStart('ul', 'tags xoxo entity_tags');
-                foreach ($tags as $tag) {
-                    $this->out->elementStart('li');
-                    // Avoid space by using raw output.
-                    $pt = '<span class="mark_hash">#</span><a rel="tag" href="' .
-                      common_local_url('peopletag', array('tag' => $tag)) .
-                      '">' . $tag . '</a>';
-                    $this->out->raw($pt);
-                    $this->out->elementEnd('li');
-                }
-                $this->out->elementEnd('ul');
-            }
-            Event::handle('EndProfilePageProfileTags', array($this->out, $this->profile));
-        }
-    }
-
-    function showEntityActions()
-    {
-        if ($this->profile->hasRole(Profile_role::DELETED)) {
-            $this->out->elementStart('div', 'entity_actions');
-            // TRANS: H2 for user actions in a profile.
-            $this->out->element('h2', null, _('User actions'));
-            $this->out->elementStart('ul');
-            $this->out->elementStart('p', array('class' => 'profile_deleted'));
-            // TRANS: Text shown in user profile of not yet compeltely deleted users.
-            $this->out->text(_('User deletion in progress...'));
-            $this->out->elementEnd('p');
-            $this->out->elementEnd('ul');
-            $this->out->elementEnd('div');
-            return;
-        }
-        if (Event::handle('StartProfilePageActionsSection', array($this->out, $this->profile))) {
-
-            $cur = common_current_user();
-
-            $this->out->elementStart('div', 'entity_actions');
-            // TRANS: H2 for entity actions in a profile.
-            $this->out->element('h2', null, _('User actions'));
-            $this->out->elementStart('ul');
-
-            if (Event::handle('StartProfilePageActionsElements', array($this->out, $this->profile))) {
-                if (empty($cur)) { // not logged in
-                    if (Event::handle('StartProfileRemoteSubscribe', array($this->out, $this->profile))) {
-                        $this->out->elementStart('li', 'entity_subscribe');
-                        $this->showRemoteSubscribeLink();
-                        $this->out->elementEnd('li');
-                        Event::handle('EndProfileRemoteSubscribe', array($this->out, $this->profile));
-                    }
-                } else {
-                    if ($cur->id == $this->profile->id) { // your own page
-                        $this->out->elementStart('li', 'entity_edit');
-                        $this->out->element('a', array('href' => common_local_url('profilesettings'),
-                                                  // TRANS: Link title for link on user profile.
-                                                  'title' => _('Edit profile settings')),
-                                       // TRANS: Link text for link on user profile.
-                                       _('Edit'));
-                        $this->out->elementEnd('li');
-                    } else { // someone else's page
-
-                        // subscribe/unsubscribe button
-
-                        $this->out->elementStart('li', 'entity_subscribe');
-
-                        if ($cur->isSubscribed($this->profile)) {
-                            $usf = new UnsubscribeForm($this->out, $this->profile);
-                            $usf->show();
-                        } else {
-                            $sf = new SubscribeForm($this->out, $this->profile);
-                            $sf->show();
-                        }
-                        $this->out->elementEnd('li');
-
-                        if ($cur->mutuallySubscribed($this->profile)) {
-
-                            // message
-
-                            $this->out->elementStart('li', 'entity_send-a-message');
-                            $this->out->element('a', array('href' => common_local_url('newmessage', array('to' => $this->user->id)),
-                                                      // TRANS: Link title for link on user profile.
-                                                      'title' => _('Send a direct message to this user')),
-                                           // TRANS: Link text for link on user profile.
-                                           _('Message'));
-                            $this->out->elementEnd('li');
-
-                            // nudge
-
-                            if ($this->user && $this->user->email && $this->user->emailnotifynudge) {
-                                $this->out->elementStart('li', 'entity_nudge');
-                                $nf = new NudgeForm($this->out, $this->user);
-                                $nf->show();
-                                $this->out->elementEnd('li');
-                            }
-                        }
-
-                        // return-to args, so we don't have to keep re-writing them
-
-                        list($action, $r2args) = $this->out->returnToArgs();
-
-                        // push the action into the list
-
-                        $r2args['action'] = $action;
-
-                        // block/unblock
-
-                        $blocked = $cur->hasBlocked($this->profile);
-                        $this->out->elementStart('li', 'entity_block');
-                        if ($blocked) {
-                            $ubf = new UnblockForm($this->out, $this->profile, $r2args);
-                            $ubf->show();
-                        } else {
-                            $bf = new BlockForm($this->out, $this->profile, $r2args);
-                            $bf->show();
-                        }
-                        $this->out->elementEnd('li');
-
-                        // Some actions won't be applicable to non-local users.
-                        $isLocal = !empty($this->user);
-
-                        if ($cur->hasRight(Right::SANDBOXUSER) ||
-                            $cur->hasRight(Right::SILENCEUSER) ||
-                            $cur->hasRight(Right::DELETEUSER)) {
-                            $this->out->elementStart('li', 'entity_moderation');
-                            // TRANS: Label text on user profile to select a user role.
-                            $this->out->element('p', null, _('Moderate'));
-                            $this->out->elementStart('ul');
-                            if ($cur->hasRight(Right::SANDBOXUSER)) {
-                                $this->out->elementStart('li', 'entity_sandbox');
-                                if ($this->profile->isSandboxed()) {
-                                    $usf = new UnSandboxForm($this->out, $this->profile, $r2args);
-                                    $usf->show();
-                                } else {
-                                    $sf = new SandboxForm($this->out, $this->profile, $r2args);
-                                    $sf->show();
-                                }
-                                $this->out->elementEnd('li');
-                            }
-
-                            if ($cur->hasRight(Right::SILENCEUSER)) {
-                                $this->out->elementStart('li', 'entity_silence');
-                                if ($this->profile->isSilenced()) {
-                                    $usf = new UnSilenceForm($this->out, $this->profile, $r2args);
-                                    $usf->show();
-                                } else {
-                                    $sf = new SilenceForm($this->out, $this->profile, $r2args);
-                                    $sf->show();
-                                }
-                                $this->out->elementEnd('li');
-                            }
-
-                            if ($isLocal && $cur->hasRight(Right::DELETEUSER)) {
-                                $this->out->elementStart('li', 'entity_delete');
-                                $df = new DeleteUserForm($this->out, $this->profile, $r2args);
-                                $df->show();
-                                $this->out->elementEnd('li');
-                            }
-                            $this->out->elementEnd('ul');
-                            $this->out->elementEnd('li');
-                        }
-
-                        if ($isLocal && $cur->hasRight(Right::GRANTROLE)) {
-                            $this->out->elementStart('li', 'entity_role');
-                            // TRANS: Label text on user profile to select a user role.
-                            $this->out->element('p', null, _('User role'));
-                            $this->out->elementStart('ul');
-                            // TRANS: Role that can be set for a user profile.
-                            $this->roleButton('administrator', _m('role', 'Administrator'));
-                            // TRANS: Role that can be set for a user profile.
-                            $this->roleButton('moderator', _m('role', 'Moderator'));
-                            $this->out->elementEnd('ul');
-                            $this->out->elementEnd('li');
-                        }
-                    }
-                }
-
-                Event::handle('EndProfilePageActionsElements', array($this->out, $this->profile));
-            }
-
-            $this->out->elementEnd('ul');
-            $this->out->elementEnd('div');
-
-            Event::handle('EndProfilePageActionsSection', array($this->out, $this->profile));
-        }
-    }
-
-    function roleButton($role, $label)
-    {
-        list($action, $r2args) = $this->out->returnToArgs();
-        $r2args['action'] = $action;
-
-        $this->out->elementStart('li', "entity_role_$role");
-        if ($this->profile->hasRole($role)) {
-            $rf = new RevokeRoleForm($role, $label, $this->out, $this->profile, $r2args);
-            $rf->show();
-        } else {
-            $rf = new GrantRoleForm($role, $label, $this->out, $this->profile, $r2args);
-            $rf->show();
-        }
-        $this->out->elementEnd('li');
-    }
-
-    function showRemoteSubscribeLink()
-    {
-        $url = common_local_url('remotesubscribe',
-                                array('nickname' => $this->profile->nickname));
-        $this->out->element('a', array('href' => $url,
-                                  'class' => 'entity_remote_subscribe'),
-                       // TRANS: Link text for link that will subscribe to a remote profile.
-                       _('Subscribe'));
-    }
-}