]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/userprofile.php
Cleanup stray PHP 4-style references in hook calls for navigation bars. We can't...
[quix0rs-gnu-social.git] / lib / userprofile.php
index 8464c2446499556a8fd8bb7812121f2f32f8e32d..91c5fb413a94a999f42960017ce459153e33bb56 100644 (file)
@@ -71,7 +71,8 @@ class UserProfile extends Widget
     {
         if (Event::handle('StartProfilePageProfileSection', array(&$this->out, $this->profile))) {
 
-            $this->out->elementStart('div', 'entity_profile vcard author');
+            $this->out->elementStart('div', array('id' => 'i',
+                                                  'class' => 'entity_profile vcard author'));
             $this->out->element('h2', null, _('User profile'));
 
             if (Event::handle('StartProfilePageProfileElements', array(&$this->out, $this->profile))) {
@@ -97,6 +98,10 @@ 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');
             $this->out->element('dt', null, _('Photo'));
@@ -108,10 +113,8 @@ 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');
                 $this->out->element('a', array('href' => common_local_url('avatarsettings')), _('Edit Avatar'));
                 $this->out->elementEnd('dd');
@@ -228,7 +231,18 @@ class UserProfile extends Widget
 
     function showEntityActions()
     {
-        if (Event::handle('StartProfilePageActionsSection', array(&$this->out, $this->profile))) {
+        if ($this->profile->hasRole(Profile_role::DELETED)) {
+            $this->out->elementStart('div', 'entity_actions');
+            $this->out->element('h2', null, _('User actions'));
+            $this->out->elementStart('ul');
+            $this->out->elementStart('p', array('class' => 'profile_deleted'));
+            $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();
 
@@ -236,13 +250,13 @@ class UserProfile extends Widget
             $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
@@ -266,7 +280,7 @@ class UserProfile extends Widget
                         }
                         $this->out->elementEnd('li');
 
-                        if ($cur->mutuallySubscribed($this->user)) {
+                        if ($cur->mutuallySubscribed($this->profile)) {
 
                             // message
 
@@ -278,7 +292,7 @@ class UserProfile extends Widget
 
                             // 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();
@@ -307,6 +321,9 @@ 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)) {
@@ -315,7 +332,7 @@ class UserProfile extends Widget
                             $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 {
@@ -327,7 +344,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 {
@@ -337,7 +354,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();
@@ -347,7 +364,7 @@ class UserProfile extends Widget
                             $this->out->elementEnd('li');
                         }
                         
-                        if ($cur->hasRight(Right::GRANTROLE)) {
+                        if ($isLocal && $cur->hasRight(Right::GRANTROLE)) {
                             $this->out->elementStart('li', 'entity_role');
                             $this->out->element('p', null, _('User role'));
                             $this->out->elementStart('ul');
@@ -359,13 +376,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));
         }
     }
 
@@ -375,7 +392,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 {