]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/userprofile.php
Rudimentary support for enclosures and some fiddling
[quix0rs-gnu-social.git] / lib / userprofile.php
index ca060842b6e9b44d2acf742f88bdd4fb2815d45f..8bd68ae3d74f1ba6f89bb6458ced884b2569811e 100644 (file)
@@ -48,7 +48,6 @@ require_once INSTALLDIR.'/lib/widget.php';
  *
  * @see      HTMLOutputter
  */
-
 class UserProfile extends Widget
 {
     var $user = null;
@@ -73,6 +72,7 @@ class UserProfile extends Widget
 
             $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))) {
@@ -98,8 +98,13 @@ class UserProfile extends Widget
         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->elementStart('dl', 'entity_depiction');
+            // TRANS: DT element in area for user avatar.
             $this->out->element('dt', null, _('Photo'));
             $this->out->elementStart('dd');
             $this->out->element('img', array('src' => ($avatar) ? $avatar->displayUrl() : Avatar::defaultImage(AVATAR_PROFILE_SIZE),
@@ -109,11 +114,10 @@ class UserProfile extends Widget
                                         'alt' => $this->profile->nickname));
             $this->out->elementEnd('dd');
 
-            $user = User::staticGet('id', $this->profile->id);
-
             $cur = common_current_user();
-            if ($cur && $cur->id == $user->id) {
+            if ($cur && $cur->id == $this->profile->id) {
                 $this->out->elementStart('dd');
+                // TRANS: Link text for changeing the avatar of the logged in user.
                 $this->out->element('a', array('href' => common_local_url('avatarsettings')), _('Edit Avatar'));
                 $this->out->elementEnd('dd');
             }
@@ -129,6 +133,7 @@ class UserProfile extends Widget
         if (Event::handle('StartProfilePageNickname', array($this->out, $this->profile))) {
 
             $this->out->elementStart('dl', 'entity_nickname');
+            // TRANS: DT for nick name in a profile.
             $this->out->element('dt', null, _('Nickname'));
             $this->out->elementStart('dd');
             $hasFN = ($this->profile->fullname) ? 'nickname url uid' : 'fn nickname url uid';
@@ -147,6 +152,7 @@ class UserProfile extends Widget
         if (Event::handle('StartProfilePageFullName', array($this->out, $this->profile))) {
             if ($this->profile->fullname) {
                 $this->out->elementStart('dl', 'entity_fn');
+                // TRANS: DT for full name in a profile.
                 $this->out->element('dt', null, _('Full name'));
                 $this->out->elementStart('dd');
                 $this->out->element('span', 'fn', $this->profile->fullname);
@@ -162,6 +168,7 @@ class UserProfile extends Widget
         if (Event::handle('StartProfilePageLocation', array($this->out, $this->profile))) {
             if ($this->profile->location) {
                 $this->out->elementStart('dl', 'entity_location');
+                // TRANS: DT for location in a profile.
                 $this->out->element('dt', null, _('Location'));
                 $this->out->element('dd', 'label', $this->profile->location);
                 $this->out->elementEnd('dl');
@@ -175,6 +182,7 @@ class UserProfile extends Widget
         if (Event::handle('StartProfilePageHomepage', array($this->out, $this->profile))) {
             if ($this->profile->homepage) {
                 $this->out->elementStart('dl', 'entity_url');
+                // TRANS: DT for URL in a profile.
                 $this->out->element('dt', null, _('URL'));
                 $this->out->elementStart('dd');
                 $this->out->element('a', array('href' => $this->profile->homepage,
@@ -192,6 +200,7 @@ class UserProfile extends Widget
         if (Event::handle('StartProfilePageBio', array($this->out, $this->profile))) {
             if ($this->profile->bio) {
                 $this->out->elementStart('dl', 'entity_note');
+                // TRANS: DT for note in a profile.
                 $this->out->element('dt', null, _('Note'));
                 $this->out->element('dd', 'note', $this->profile->bio);
                 $this->out->elementEnd('dl');
@@ -207,6 +216,7 @@ class UserProfile extends Widget
 
             if (count($tags) > 0) {
                 $this->out->elementStart('dl', 'entity_tags');
+                // TRANS: DT for tags in a profile.
                 $this->out->element('dt', null, _('Tags'));
                 $this->out->elementStart('dd');
                 $this->out->elementStart('ul', 'tags xoxo');
@@ -231,36 +241,41 @@ class UserProfile extends Widget
     {
         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))) {
+        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 (Event::handle('StartProfilePageActionsElements', array($this->out, $this->profile))) {
                 if (empty($cur)) { // not logged in
-                    if (Event::handle('StartProfileRemoteSubscribe', array(&$this->out, $this->profile))) {
+                    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));
+                        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
@@ -278,19 +293,21 @@ class UserProfile extends Widget
                         }
                         $this->out->elementEnd('li');
 
-                        if ($cur->mutuallySubscribed($this->user)) {
+                        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->email && $this->user->emailnotifynudge) {
+                            if ($this->user && $this->user->email && $this->user->emailnotifynudge) {
                                 $this->out->elementStart('li', 'entity_nudge');
                                 $nf = new NudgeForm($this->out, $this->user);
                                 $nf->show();
@@ -319,15 +336,19 @@ class UserProfile extends Widget
                         }
                         $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->user->isSandboxed()) {
+                                if ($this->profile->isSandboxed()) {
                                     $usf = new UnSandboxForm($this->out, $this->profile, $r2args);
                                     $usf->show();
                                 } else {
@@ -339,7 +360,7 @@ class UserProfile extends Widget
 
                             if ($cur->hasRight(Right::SILENCEUSER)) {
                                 $this->out->elementStart('li', 'entity_silence');
-                                if ($this->user->isSilenced()) {
+                                if ($this->profile->isSilenced()) {
                                     $usf = new UnSilenceForm($this->out, $this->profile, $r2args);
                                     $usf->show();
                                 } else {
@@ -349,7 +370,7 @@ class UserProfile extends Widget
                                 $this->out->elementEnd('li');
                             }
 
-                            if ($cur->hasRight(Right::DELETEUSER)) {
+                            if ($isLocal && $cur->hasRight(Right::DELETEUSER)) {
                                 $this->out->elementStart('li', 'entity_delete');
                                 $df = new DeleteUserForm($this->out, $this->profile, $r2args);
                                 $df->show();
@@ -358,12 +379,15 @@ class UserProfile extends Widget
                             $this->out->elementEnd('ul');
                             $this->out->elementEnd('li');
                         }
-                        
-                        if ($cur->hasRight(Right::GRANTROLE)) {
+
+                        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');
@@ -371,13 +395,13 @@ class UserProfile extends Widget
                     }
                 }
 
-                Event::handle('EndProfilePageActionsElements', array(&$this->out, $this->profile));
+                Event::handle('EndProfilePageActionsElements', array($this->out, $this->profile));
             }
 
             $this->out->elementEnd('ul');
             $this->out->elementEnd('div');
 
-            Event::handle('EndProfilePageActionsSection', array(&$this->out, $this->profile));
+            Event::handle('EndProfilePageActionsSection', array($this->out, $this->profile));
         }
     }
 
@@ -387,7 +411,7 @@ class UserProfile extends Widget
         $r2args['action'] = $action;
 
         $this->out->elementStart('li', "entity_role_$role");
-        if ($this->user->hasRole($role)) {
+        if ($this->profile->hasRole($role)) {
             $rf = new RevokeRoleForm($role, $label, $this->out, $this->profile, $r2args);
             $rf->show();
         } else {
@@ -403,6 +427,7 @@ class UserProfile extends Widget
                                 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'));
     }
 }