summaryrefslogtreecommitdiff
path: root/classes/User_group.php
diff options
context:
space:
mode:
authorZach Copley <zach@controlyourself.ca>2009-01-23 08:43:34 +0000
committerZach Copley <zach@controlyourself.ca>2009-01-23 08:43:34 +0000
commit1305ecf4bd58b8651fd8648d65263a24ed47bbc6 (patch)
treef4437adc6e405e1c3e1118c8f7e38d5802d0f55a /classes/User_group.php
parent76cf3cc3d0046e1d94c8a7dcb7c2fff21e145ee5 (diff)
parentbe21ed13b5160646cc4feb7c572d878bc0ee464d (diff)
Merge branch 'master' of /var/www/trunk
Diffstat (limited to 'classes/User_group.php')
-rwxr-xr-xclasses/User_group.php78
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;
+ }
}