+
+ # 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');
+ }