Remove UserProfile class
This commit is contained in:
		| @@ -33,7 +33,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { | ||||
| } | ||||
|  | ||||
| require_once INSTALLDIR.'/lib/personalgroupnav.php'; | ||||
| require_once INSTALLDIR.'/lib/userprofile.php'; | ||||
| require_once INSTALLDIR.'/lib/noticelist.php'; | ||||
| require_once INSTALLDIR.'/lib/profileminilist.php'; | ||||
| require_once INSTALLDIR.'/lib/groupminilist.php'; | ||||
| @@ -100,7 +99,6 @@ class ShowstreamAction extends ProfileAction | ||||
|  | ||||
|     function showContent() | ||||
|     { | ||||
|         $this->showProfile(); | ||||
|         $this->showNotices(); | ||||
|     } | ||||
|  | ||||
| @@ -199,12 +197,6 @@ class ShowstreamAction extends ProfileAction | ||||
|                                      'href' => $rsd)); | ||||
|     } | ||||
|  | ||||
|     function showProfile() | ||||
|     { | ||||
|         $profile = new UserProfile($this, $this->user, $this->profile); | ||||
|         $profile->show(); | ||||
|     } | ||||
|  | ||||
|     function showEmptyListMessage() | ||||
|     { | ||||
|         // TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. | ||||
|   | ||||
| @@ -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')); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user