public static function deleteFromProfile(Profile $target, $original=true) {
try {
$avatars = self::getProfileAvatars($target);
+
foreach ($avatars as $avatar) {
+ assert($avatar instanceof Avatar);
+
if ($avatar->original && !$original) {
continue;
}
+
$avatar->delete();
}
} catch (NoAvatarException $e) {
}
$size = "{$width}x{$height}";
+
if (!isset(self::$_avatars[$target->id])) {
self::$_avatars[$target->id] = array();
} elseif (isset(self::$_avatars[$target->id][$size])){
}
$avatar = null;
+
if (Event::handle('StartProfileGetAvatar', array($target, $width, &$avatar))) {
$avatar = self::pkeyGet(
array(
'height' => $height,
)
);
+
Event::handle('EndProfileGetAvatar', array($target, $width, &$avatar));
}
}
if ($path[0] != '/') {
- $path = '/'.$path;
+ $path = '/' . $path;
}
$server = common_config('avatar', 'server');
try {
return self::byProfile($target, $width, $height)->displayUrl();
} catch (Exception $e) {
+ common_debug(sprintf('target=>id=%s,width=%s,height=%s,message=%s',
+ $target->id,
+ $width,
+ $height,
+ $e->getMessage()
+ ));
return self::defaultImage($width);
}
}
static $sizenames = array(AVATAR_PROFILE_SIZE => 'profile',
AVATAR_STREAM_SIZE => 'stream',
AVATAR_MINI_SIZE => 'mini');
- return Theme::path('default-avatar-'.$sizenames[$size].'.png');
+ return Theme::path('default-avatar-' . $sizenames[$size] . '.png');
}
static function newSize(Profile $target, $width) {
// TRANS: An error message when avatar size is unreasonable
throw new Exception(_m('Avatar size too large'));
}
+ // So far we only have square avatars and I don't have time to
+ // rewrite support for non-square ones right now ;)
+ $height = $width;
$original = Avatar::getUploaded($target);
- $imagefile = new ImageFile($target->id, Avatar::path($original->filename));
- $filename = $imagefile->resize($width);
+ $imagefile = new ImageFile(null, Avatar::path($original->filename));
+ $filename = Avatar::filename($target->getID(), image_type_to_extension($imagefile->preferredType()),
+ $width, common_timestamp());
+ $imagefile->resizeTo(Avatar::path($filename), array('width'=>$width, 'height'=>$height));
$scaled = clone($original);
$scaled->original = false;
$scaled->width = $width;
- $scaled->height = $width;
+ $scaled->height = $height;
$scaled->url = Avatar::url($filename);
$scaled->filename = $filename;
$scaled->created = common_sql_now();