]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/avatar.php
change measurement of updated profiles
[quix0rs-gnu-social.git] / actions / avatar.php
index 851ef23f4a257915a9b89ce6a2fbc68836f49066..33b5452d0b3b68802784f00aa8d43f546151033a 100644 (file)
@@ -19,6 +19,8 @@
 
 if (!defined('LACONICA')) { exit(1); }
 
+require_once(INSTALLDIR.'/lib/settingsaction.php');
+
 class AvatarAction extends SettingsAction {
 
        function show_form($msg=NULL, $success=false) {
@@ -34,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);
@@ -43,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',
@@ -60,9 +64,10 @@ class AvatarAction extends SettingsAction {
                                                                          'id' => 'avatarfile'));
                common_element('input', array('name' => 'submit',
                                                                          'type' => 'submit',
-                                                                         'id' => 'submit'),
-                                          _t('Upload'));
+                                                                         'id' => 'submit',
+                                                                         'value' =>_t('Upload')));
                common_element_end('form');
+               common_show_footer();
        }
 
        function handle_post() {
@@ -100,7 +105,7 @@ 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]));
@@ -121,6 +126,18 @@ class AvatarAction extends SettingsAction {
                $avatar->filename = $filename;
                $avatar->original = true;
                $avatar->url = common_avatar_url($filename);
+               $avatar->created = DB_DataObject_Cast::dateTime(); # current time
+
+               $val = $avatar->validate();
+
+               if ($val !== TRUE) {
+                       $err = '';
+                       foreach ($val as $k=>$v) {
+                               $err .= _t('Something wrong with ') . $k;
+                               $this->show_form($err);
+                               return;
+                       }
+               }
 
                foreach (array(AVATAR_PROFILE_SIZE, AVATAR_STREAM_SIZE, AVATAR_MINI_SIZE) as $size) {
                        $scaled[] = $this->scale_avatar($user, $avatar, $size);
@@ -133,7 +150,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.'));
@@ -151,26 +167,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);
-               
+
                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;
@@ -179,16 +195,17 @@ class AvatarAction extends SettingsAction {
                $scaled->mediatype = ($avatar->mediattype == 'image/jpeg') ? 'image/jpeg' : 'image/png';
                $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 {
@@ -196,14 +213,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;
        }
 }