]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/avatarsettings.php
A script to GC sessions correctly
[quix0rs-gnu-social.git] / actions / avatarsettings.php
index 7dd53f6eb5af40f4e959d4a79a28f6ef5f988808..c2bb35a39580153a4b696015d104b42b4fb6b104 100644 (file)
@@ -145,6 +145,7 @@ class AvatarsettingsAction extends AccountSettingsAction
                                         'height' => AVATAR_PROFILE_SIZE,
                                         'alt' => $user->nickname));
             $this->elementEnd('div');
+            $this->submit('delete', _('Delete'));
             $this->elementEnd('li');
         }
 
@@ -256,6 +257,8 @@ class AvatarsettingsAction extends AccountSettingsAction
             $this->uploadAvatar();
         } else if ($this->arg('crop')) {
             $this->cropAvatar();
+        } else if ($this->arg('delete')) {
+            $this->deleteAvatar();
         } else {
             $this->showForm(_('Unexpected form submission.'));
         }
@@ -321,13 +324,14 @@ class AvatarsettingsAction extends AccountSettingsAction
             return;
         }
 
-        // If image is not being cropped assume pos & dimentions of original
+        $file_d = ($filedata['width'] > $filedata['height'])
+                     ? $filedata['height'] : $filedata['width'];
+
         $dest_x = $this->arg('avatar_crop_x') ? $this->arg('avatar_crop_x'):0;
         $dest_y = $this->arg('avatar_crop_y') ? $this->arg('avatar_crop_y'):0;
-        $dest_w = $this->arg('avatar_crop_w') ? $this->arg('avatar_crop_w'):$filedata['width'];
-        $dest_h = $this->arg('avatar_crop_h') ? $this->arg('avatar_crop_h'):$filedata['height'];
-        $size = min($dest_w, $dest_h);
-        $size = ($size > MAX_ORIGINAL) ? MAX_ORIGINAL:$size;
+        $dest_w = $this->arg('avatar_crop_w') ? $this->arg('avatar_crop_w'):$file_d;
+        $dest_h = $this->arg('avatar_crop_h') ? $this->arg('avatar_crop_h'):$file_d;
+        $size = min($dest_w, $dest_h, MAX_ORIGINAL);
 
         $user = common_current_user();
         $profile = $user->getProfile();
@@ -340,10 +344,34 @@ class AvatarsettingsAction extends AccountSettingsAction
             unset($_SESSION['FILEDATA']);
             $this->mode = 'upload';
             $this->showForm(_('Avatar updated.'), true);
+            common_broadcast_profile($profile);
         } else {
             $this->showForm(_('Failed updating avatar.'));
         }
     }
+    
+    /**
+     * Get rid of the current avatar.
+     *
+     * @return void
+     */
+    
+    function deleteAvatar()
+    {
+        $user = common_current_user();
+        $profile = $user->getProfile();
+        
+        $avatar = $profile->getOriginalAvatar();
+        $avatar->delete();
+        $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
+        $avatar->delete();
+        $avatar = $profile->getAvatar(AVATAR_STREAM_SIZE);
+        $avatar->delete();
+        $avatar = $profile->getAvatar(AVATAR_MINI_SIZE);
+        $avatar->delete();
+
+        $this->showForm(_('Avatar deleted.'), true);
+    }
 
     /**
      * Add the jCrop stylesheet