summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--actions/avatar.php23
-rw-r--r--db/stoica.sql2
2 files changed, 14 insertions, 11 deletions
diff --git a/actions/avatar.php b/actions/avatar.php
index 16a3dd48c..00b7ea6c0 100644
--- a/actions/avatar.php
+++ b/actions/avatar.php
@@ -102,7 +102,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]));
@@ -124,6 +124,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);
}
@@ -153,26 +154,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;
@@ -182,16 +183,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,7 +200,7 @@ class AvatarAction extends SettingsAction {
return NULL;
}
}
-
+
function delete_old_avatars($user) {
$avatar = DB_DataObject::factory('avatar');
$avatar->profile_id = $user->id;
diff --git a/db/stoica.sql b/db/stoica.sql
index 080b74758..6f43cd221 100644
--- a/db/stoica.sql
+++ b/db/stoica.sql
@@ -22,6 +22,8 @@ create table avatar (
mediatype varchar(32) not null comment 'file type',
filename varchar(255) null comment 'local filename, if local',
url varchar(255) unique key comment 'avatar location',
+ created datetime not null comment 'date this record was created',
+ modified timestamp comment 'date this record was modified',
constraint primary key (profile_id, width, height),
index avatar_profile_id_idx (profile_id)