-
- function validateMediatype() {
- return Validate::string($this->mediatype, array('min_length' => 1, 'max_length' => 32));
- }
-
- function validateFilename() {
- return Validate::string($this->filename, array('min_length' => 1, 'max_length' => 255));
- }
-
- function validateUrl() {
- return Validate::uri($this->url, array('allowed_schemes' => array('http', 'https')));
- }
+
+ # 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');
+ }