X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FAvatar.php;h=db9d78e47fc1e8f2c137ac6eb9a67d707b2a15fb;hb=21873b806d6c5cf3e55ea10e49959c944f708688;hp=222725b484c81b4d9a288b0e3e259a3ed73bbdf6;hpb=fac522f4d7cce9a35e605fac2bba0b2d23616ad0;p=quix0rs-gnu-social.git diff --git a/classes/Avatar.php b/classes/Avatar.php index 222725b484..db9d78e47f 100644 --- a/classes/Avatar.php +++ b/classes/Avatar.php @@ -2,23 +2,82 @@ /** * 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 */ public $__table = 'avatar'; // table name public $profile_id; // int(4) primary_key not_null + public $original; // tinyint(1) public $width; // int(4) primary_key not_null public $height; // int(4) primary_key not_null - public $original; // tinyint(1) public $mediatype; // varchar(32) not_null + public $filename; // varchar(255) + public $url; // varchar(255) unique_key + public $created; // datetime() not_null + 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(Avatar::path($filename)); + } + } + + function &pkeyGet($kv) + { + return Memcached_DataObject::pkeyGet('Avatar', $kv); + } + + // where should the avatar go for this user? + + static function filename($id, $extension, $size=null, $extra=null) + { + if ($size) { + return $id . '-' . $size . (($extra) ? ('-' . $extra) : '') . $extension; + } else { + return $id . '-original' . (($extra) ? ('-' . $extra) : '') . $extension; + } + } + + static function path($filename) + { + return INSTALLDIR . '/avatar/' . $filename; + } + + static function url($filename) + { + return common_path('avatar/'.$filename); + } + + function displayUrl() + { + $server = common_config('avatar', 'server'); + if ($server) { + return 'http://'.$server.'/'.$this->filename; + } else { + return $this->url; + } + } + + 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'); + } }