diff options
author | Zach Copley <zach@controlyourself.ca> | 2009-01-23 08:43:34 +0000 |
---|---|---|
committer | Zach Copley <zach@controlyourself.ca> | 2009-01-23 08:43:34 +0000 |
commit | 1305ecf4bd58b8651fd8648d65263a24ed47bbc6 (patch) | |
tree | f4437adc6e405e1c3e1118c8f7e38d5802d0f55a /classes/User_group.php | |
parent | 76cf3cc3d0046e1d94c8a7dcb7c2fff21e145ee5 (diff) | |
parent | be21ed13b5160646cc4feb7c572d878bc0ee464d (diff) |
Merge branch 'master' of /var/www/trunk
Diffstat (limited to 'classes/User_group.php')
-rwxr-xr-x | classes/User_group.php | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/classes/User_group.php b/classes/User_group.php index 484b2fe0a..98ad77cc0 100755 --- a/classes/User_group.php +++ b/classes/User_group.php @@ -86,4 +86,82 @@ class User_group extends Memcached_DataObject return $members; } + + function setOriginal($filename, $type) + { + $orig = clone($this); + $this->original_logo = common_avatar_url($filename); + $this->homepage_logo = common_avatar_url($this->scale($filename, + AVATAR_PROFILE_SIZE, + $type)); + $this->stream_logo = common_avatar_url($this->scale($filename, + AVATAR_STREAM_SIZE, + $type)); + $this->mini_logo = common_avatar_url($this->scale($filename, + AVATAR_MINI_SIZE, + $type)); + common_debug(common_log_objstring($this)); + return $this->update($orig); + } + + function scale($filename, $size, $type) + { + $filepath = common_avatar_path($filename); + + if (!file_exists($filepath)) { + $this->serverError(_('Lost our file.')); + return; + } + + $info = @getimagesize($filepath); + + switch ($type) { + case IMAGETYPE_GIF: + $image_src = imagecreatefromgif($filepath); + break; + case IMAGETYPE_JPEG: + $image_src = imagecreatefromjpeg($filepath); + break; + case IMAGETYPE_PNG: + $image_src = imagecreatefrompng($filepath); + break; + default: + $this->serverError(_('Unknown file type')); + return; + } + + $image_dest = imagecreatetruecolor($size, $size); + + $background = imagecolorallocate($image_dest, 0, 0, 0); + ImageColorTransparent($image_dest, $background); + imagealphablending($image_dest, false); + + imagecopyresized($image_dest, $image_src, 0, 0, $x, $y, $size, $size, $info[0], $info[1]); + + $cur = common_current_user(); + + $outname = common_avatar_filename($cur->id, + image_type_to_extension($type), + null, + common_timestamp()); + + $outpath = common_avatar_path($outname); + + switch ($type) { + case IMAGETYPE_GIF: + imagegif($image_dest, $outpath); + break; + case IMAGETYPE_JPEG: + imagejpeg($image_dest, $outpath); + break; + case IMAGETYPE_PNG: + imagepng($image_dest, $outpath); + break; + default: + $this->serverError(_('Unknown file type')); + return; + } + + return $outname; + } } |