]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/avatar.php
add timestamp to avatar filenames to prevent overlap
[quix0rs-gnu-social.git] / actions / avatar.php
index 374cef41327317b5723e42456ae40f437a649999..023a8414a18252338f87eeebf581401d41d3ffdd 100644 (file)
@@ -36,7 +36,8 @@ class AvatarAction extends SettingsAction {
                        common_element('img', array('src' => $original->url,
                                                                                'class' => 'avatar original',
                                                                                'width' => $original->width,
-                                                                               'height' => $original->height));
+                                                                               'height' => $original->height,
+                                                                               'alt' => $user->nickname));
                }
 
                $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
@@ -45,7 +46,8 @@ class AvatarAction extends SettingsAction {
                        common_element('img', array('src' => $avatar->url,
                                                                                'class' => 'avatar profile',
                                                                                'width' => AVATAR_PROFILE_SIZE,
-                                                                               'height' => AVATAR_PROFILE_SIZE));
+                                                                               'height' => AVATAR_PROFILE_SIZE,
+                                                                               'alt' => $user->nickname));
                }
 
                common_element_start('form', array('enctype' => 'multipart/form-data',
@@ -65,6 +67,7 @@ class AvatarAction extends SettingsAction {
                                                                          'id' => 'submit',
                                                                          'value' =>_t('Upload')));
                common_element_end('form');
+               common_show_footer();
        }
 
        function handle_post() {
@@ -102,10 +105,10 @@ class AvatarAction extends SettingsAction {
                        $this->show_form(_t('Unsupported image file format.'));
                        return;
                }
-               
+
                $user = common_current_user();
 
-               $filename = common_avatar_filename($user, image_type_to_extension($info[2]));
+               $filename = common_avatar_filename($user, image_type_to_extension($info[2]), NULL, common_timestamp());
                $filepath = common_avatar_path($filename);
 
                if (!move_uploaded_file($_FILES['avatarfile']['tmp_name'], $filepath)) {
@@ -124,6 +127,7 @@ class AvatarAction extends SettingsAction {
                $avatar->original = true;
                $avatar->url = common_avatar_url($filename);
                $avatar->created = DB_DataObject_Cast::dateTime(); # current time
+
                foreach (array(AVATAR_PROFILE_SIZE, AVATAR_STREAM_SIZE, AVATAR_MINI_SIZE) as $size) {
                        $scaled[] = $this->scale_avatar($user, $avatar, $size);
                }
@@ -135,7 +139,6 @@ class AvatarAction extends SettingsAction {
                        common_server_error(_t('Error deleting old avatars.'));
                        return;
                }
-
                if (!$avatar->insert()) {
                        @unlink($filepath);
                        common_server_error(_t('Error inserting avatar.'));
@@ -153,26 +156,26 @@ class AvatarAction extends SettingsAction {
 
                $this->show_form(_t('Avatar updated.'), true);
        }
-       
+
        function scale_avatar($user, $avatar, $size) {
                $image_s = imagecreatetruecolor($size, $size);
                $image_a = $this->avatar_to_image($avatar);
-               
+
                $square = min($avatar->width, $avatar->height);
-               
+
                imagecopyresampled($image_s, $image_a, 0, 0, 0, 0,
                                                   $size, $size, $square, $square);
 
-               $ext = ($avatar->mediattype == 'image/jpeg') ? ".jpg" : ".png";
-               
-               $filename = common_avatar_filename($user, $ext, $size);
-               
+               $ext = ($avatar->mediattype == 'image/jpeg') ? ".jpeg" : ".png";
+
+               $filename = common_avatar_filename($user, $ext, $size, common_timestamp());
+
                if ($avatar->mediatype == 'image/jpeg') {
                        imagejpeg($image_s, common_avatar_path($filename));
                } else {
                        imagepng($image_s, common_avatar_path($filename));
                }
-               
+
                $scaled = DB_DataObject::factory('avatar');
                $scaled->profile_id = $avatar->profile_id;
                $scaled->width = $size;
@@ -182,16 +185,16 @@ class AvatarAction extends SettingsAction {
                $scaled->filename = $filename;
                $scaled->url = common_avatar_url($filename);
                $scaled->created = DB_DataObject_Cast::dateTime(); # current time
-               
+
                return $scaled;
        }
-       
+
        function avatar_to_image($avatar) {
                $filepath = common_avatar_path($avatar->filename);
                if ($avatar->mediatype == 'image/gif') {
                        return imagecreatefromgif($filepath);
                } else if ($avatar->mediatype == 'image/jpeg') {
-                       return imagecreatefromjpeg($filepath);                  
+                       return imagecreatefromjpeg($filepath);
                } else if ($avatar->mediatype == 'image/png') {
                        return imagecreatefrompng($filepath);
                } else {
@@ -199,14 +202,16 @@ class AvatarAction extends SettingsAction {
                        return NULL;
                }
        }
-       
+
        function delete_old_avatars($user) {
                $avatar = DB_DataObject::factory('avatar');
                $avatar->profile_id = $user->id;
                $avatar->find();
                while ($avatar->fetch()) {
+                       unlink(common_avatar_path($avatar->filename));
                        $avatar->delete();
                }
+               return true;
        }
 }