summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
Diffstat (limited to 'classes')
-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;
+ }
}