X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FAvatar.php;h=db9d78e47fc1e8f2c137ac6eb9a67d707b2a15fb;hb=748c744a02ab12f36a275d9020c1b2b5ead9f002;hp=24dca038ee359fce79fb391c6503251430dec0fb;hpb=2bc198432c1bd61ed98d49568869f341badb2057;p=quix0rs-gnu-social.git diff --git a/classes/Avatar.php b/classes/Avatar.php index 24dca038ee..db9d78e47f 100644 --- a/classes/Avatar.php +++ b/classes/Avatar.php @@ -2,9 +2,9 @@ /** * Table Definition for avatar */ -require_once 'DB/DataObject.php'; +require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; -class Avatar extends DB_DataObject +class Avatar extends Memcached_DataObject { ###START_AUTOCODE /* the code below is auto generated do not remove the above tag */ @@ -21,70 +21,63 @@ class Avatar extends DB_DataObject public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* Static get */ - function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('Avatar',$k,$v); } + function staticGet($k,$v=null) + { return Memcached_DataObject::staticGet('Avatar',$k,$v); } /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE - # We clean up the file, too - - function delete() { - $filename = $this->filename; - if (parent::delete()) { - @unlink(common_avatar_path($filename)); - } - } + # We clean up the file, too - # Create and save scaled version of this avatar - # XXX: maybe break into different methods - - function scale($size) { + function delete() + { + $filename = $this->filename; + if (parent::delete()) { + @unlink(Avatar::path($filename)); + } + } - $image_s = imagecreatetruecolor($size, $size); - $image_a = $this->to_image(); + function &pkeyGet($kv) + { + return Memcached_DataObject::pkeyGet('Avatar', $kv); + } - $square = min($this->width, $this->height); + // where should the avatar go for this user? - imagecopyresampled($image_s, $image_a, 0, 0, 0, 0, - $size, $size, $square, $square); + static function filename($id, $extension, $size=null, $extra=null) + { + if ($size) { + return $id . '-' . $size . (($extra) ? ('-' . $extra) : '') . $extension; + } else { + return $id . '-original' . (($extra) ? ('-' . $extra) : '') . $extension; + } + } - $ext = ($this->mediattype == 'image/jpeg') ? ".jpeg" : ".png"; + static function path($filename) + { + return INSTALLDIR . '/avatar/' . $filename; + } - $filename = common_avatar_filename($this->profile_id, $ext, $size, common_timestamp()); + static function url($filename) + { + return common_path('avatar/'.$filename); + } - if ($this->mediatype == 'image/jpeg') { - imagejpeg($image_s, common_avatar_path($filename)); - } else { - imagepng($image_s, common_avatar_path($filename)); - } + function displayUrl() + { + $server = common_config('avatar', 'server'); + if ($server) { + return 'http://'.$server.'/'.$this->filename; + } else { + return $this->url; + } + } - $scaled = DB_DataObject::factory('avatar'); - $scaled->profile_id = $this->profile_id; - $scaled->width = $size; - $scaled->height = $size; - $scaled->original = false; - $scaled->mediatype = ($this->mediattype == 'image/jpeg') ? 'image/jpeg' : 'image/png'; - $scaled->filename = $filename; - $scaled->url = common_avatar_url($filename); - $scaled->created = DB_DataObject_Cast::dateTime(); # current time - - if ($scaled->insert()) { - return $scaled; - } else { - return NULL; - } - } - - function to_image() { - $filepath = common_avatar_path($this->filename); - if ($this->mediatype == 'image/gif') { - return imagecreatefromgif($filepath); - } else if ($this->mediatype == 'image/jpeg') { - return imagecreatefromjpeg($filepath); - } else if ($this->mediatype == 'image/png') { - return imagecreatefrompng($filepath); - } else { - return NULL; - } - } + static function defaultImage($size) + { + static $sizenames = array(AVATAR_PROFILE_SIZE => 'profile', + AVATAR_STREAM_SIZE => 'stream', + AVATAR_MINI_SIZE => 'mini'); + return theme_path('default-avatar-'.$sizenames[$size].'.png'); + } }