| 
									
										
										
										
											2008-05-15 12:28:44 -04:00
										 |  |  | <?php | 
					
						
							| 
									
										
										
										
											2019-09-11 11:25:39 +03:00
										 |  |  | // This file is part of GNU social - https://www.gnu.org/software/social
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // GNU social is free software: you can redistribute it and/or modify
 | 
					
						
							|  |  |  | // it under the terms of the GNU Affero General Public License as published by
 | 
					
						
							|  |  |  | // the Free Software Foundation, either version 3 of the License, or
 | 
					
						
							|  |  |  | // (at your option) any later version.
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // GNU social is distributed in the hope that it will be useful,
 | 
					
						
							|  |  |  | // but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					
						
							|  |  |  | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
					
						
							|  |  |  | // GNU Affero General Public License for more details.
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // You should have received a copy of the GNU Affero General Public License
 | 
					
						
							|  |  |  | // along with GNU social.  If not, see <http://www.gnu.org/licenses/>.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | defined('GNUSOCIAL') || die(); | 
					
						
							| 
									
										
										
										
											2016-01-06 16:14:26 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-05-15 12:28:44 -04:00
										 |  |  | /** | 
					
						
							|  |  |  |  * Table Definition for avatar | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-08-22 17:52:02 -04:00
										 |  |  | class Avatar extends Managed_DataObject | 
					
						
							| 
									
										
										
										
											2008-05-15 12:28:44 -04:00
										 |  |  | { | 
					
						
							|  |  |  |     public $__table = 'avatar';                          // table name
 | 
					
						
							|  |  |  |     public $profile_id;                      // int(4)  primary_key not_null
 | 
					
						
							| 
									
										
										
										
											2019-09-11 11:25:39 +03:00
										 |  |  |     public $original;                        // bool    default_false
 | 
					
						
							| 
									
										
										
										
											2008-05-15 12:28:44 -04:00
										 |  |  |     public $width;                           // int(4)  primary_key not_null
 | 
					
						
							|  |  |  |     public $height;                          // int(4)  primary_key not_null
 | 
					
						
							|  |  |  |     public $mediatype;                       // varchar(32)   not_null
 | 
					
						
							| 
									
										
										
										
											2015-02-12 18:18:55 +01:00
										 |  |  |     public $filename;                        // varchar(191)   not 255 because utf8mb4 takes more space
 | 
					
						
							| 
									
										
										
										
											2019-07-25 00:43:25 +01:00
										 |  |  |     public $created;                         // datetime()   not_null default_0000-00-00%2000%3A00%3A00
 | 
					
						
							|  |  |  |     public $modified;                        // datetime()   not_null default_CURRENT_TIMESTAMP
 | 
					
						
							| 
									
										
										
										
											2019-09-11 11:25:39 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-08-22 17:52:02 -04:00
										 |  |  |     public static function schemaDef() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         return array( | 
					
						
							|  |  |  |             'fields' => array( | 
					
						
							|  |  |  |                 'profile_id' => array('type' => 'int', 'not null' => true, 'description' => 'foreign key to profile table'), | 
					
						
							| 
									
										
										
										
											2019-09-11 11:25:39 +03:00
										 |  |  |                 'original' => array('type' => 'bool', 'default' => false, 'description' => 'uploaded by user or generated?'), | 
					
						
							| 
									
										
										
										
											2011-08-22 17:52:02 -04:00
										 |  |  |                 'width' => array('type' => 'int', 'not null' => true, 'description' => 'image width'), | 
					
						
							|  |  |  |                 'height' => array('type' => 'int', 'not null' => true, 'description' => 'image height'), | 
					
						
							|  |  |  |                 'mediatype' => array('type' => 'varchar', 'length' => 32, 'not null' => true, 'description' => 'file type'), | 
					
						
							| 
									
										
										
										
											2015-02-12 18:18:55 +01:00
										 |  |  |                 'filename' => array('type' => 'varchar', 'length' => 191, 'description' => 'local filename, if local'), | 
					
						
							| 
									
										
										
										
											2019-07-25 00:43:25 +01:00
										 |  |  |                 'created' => array('type' => 'datetime', 'not null' => true, 'default' => '0000-00-00 00:00:00', 'description' => 'date this record was created'), | 
					
						
							|  |  |  |                 'modified' => array('type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'), | 
					
						
							| 
									
										
										
										
											2011-08-22 17:52:02 -04:00
										 |  |  |             ), | 
					
						
							|  |  |  |             'primary key' => array('profile_id', 'width', 'height'), | 
					
						
							|  |  |  |             'unique keys' => array( | 
					
						
							| 
									
										
										
										
											2015-02-28 12:56:42 +01:00
										 |  |  | //                'avatar_filename_key' => array('filename'),
 | 
					
						
							| 
									
										
										
										
											2011-08-22 17:52:02 -04:00
										 |  |  |             ), | 
					
						
							|  |  |  |             'foreign keys' => array( | 
					
						
							|  |  |  |                 'avatar_profile_id_fkey' => array('profile', array('profile_id' => 'id')), | 
					
						
							|  |  |  |             ), | 
					
						
							|  |  |  |             'indexes' => array( | 
					
						
							|  |  |  |                 'avatar_profile_id_idx' => array('profile_id'), | 
					
						
							|  |  |  |             ), | 
					
						
							|  |  |  |         ); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2008-07-09 18:46:30 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-01 11:37:59 +02:00
										 |  |  |     // We clean up the file, too
 | 
					
						
							| 
									
										
										
										
											2019-09-11 11:25:39 +03:00
										 |  |  |     public function delete($useWhere = false) | 
					
						
							| 
									
										
										
										
											2008-12-23 14:33:23 -05:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2008-12-23 14:19:07 -05:00
										 |  |  |         $filename = $this->filename; | 
					
						
							| 
									
										
										
										
											2013-10-29 10:20:57 +01:00
										 |  |  |         if (file_exists(Avatar::path($filename))) { | 
					
						
							| 
									
										
										
										
											2009-02-06 03:13:08 -05:00
										 |  |  |             @unlink(Avatar::path($filename)); | 
					
						
							| 
									
										
										
										
											2008-12-23 14:19:07 -05:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2013-10-29 10:20:57 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |         return parent::delete($useWhere); | 
					
						
							| 
									
										
										
										
											2008-12-23 14:19:07 -05:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2009-02-06 03:13:08 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-01 11:37:59 +02:00
										 |  |  |     /* | 
					
						
							|  |  |  |      * Deletes all avatars (but may spare the original) from a profile. | 
					
						
							| 
									
										
										
										
											2019-09-11 11:25:39 +03:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2013-10-01 11:37:59 +02:00
										 |  |  |      * @param   Profile $target     The profile we're deleting avatars of. | 
					
						
							|  |  |  |      * @param   boolean $original   Whether original should be removed or not. | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2019-09-11 11:25:39 +03:00
										 |  |  |     public static function deleteFromProfile(Profile $target, $original = true) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2013-10-01 11:37:59 +02:00
										 |  |  |         try { | 
					
						
							|  |  |  |             $avatars = self::getProfileAvatars($target); | 
					
						
							|  |  |  |             foreach ($avatars as $avatar) { | 
					
						
							|  |  |  |                 if ($avatar->original && !$original) { | 
					
						
							|  |  |  |                     continue; | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |                 $avatar->delete(); | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2013-10-06 15:54:06 +02:00
										 |  |  |         } catch (NoAvatarException $e) { | 
					
						
							| 
									
										
										
										
											2013-10-01 11:37:59 +02:00
										 |  |  |             // There are no avatars to delete, a sort of success.
 | 
					
						
							| 
									
										
										
										
											2013-09-30 22:13:37 +02:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2013-10-01 11:37:59 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |         return true; | 
					
						
							| 
									
										
										
										
											2013-09-30 22:13:37 +02:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-11 11:25:39 +03:00
										 |  |  |     protected static $_avatars = []; | 
					
						
							| 
									
										
										
										
											2013-10-06 15:54:06 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /* | 
					
						
							|  |  |  |      * Get an avatar by profile. Currently can't call newSize with $height | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public static function byProfile(Profile $target, $width=null, $height=null) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2014-04-21 19:32:08 +02:00
										 |  |  |         $width  = intval($width); | 
					
						
							|  |  |  |         $height = !is_null($height) ? intval($height) : null; | 
					
						
							| 
									
										
										
										
											2013-10-06 15:54:06 +02:00
										 |  |  |         if (is_null($height)) { | 
					
						
							|  |  |  |             $height = $width; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $size = "{$width}x{$height}"; | 
					
						
							|  |  |  |         if (!isset(self::$_avatars[$target->id])) { | 
					
						
							|  |  |  |             self::$_avatars[$target->id] = array(); | 
					
						
							| 
									
										
										
										
											2019-09-11 11:25:39 +03:00
										 |  |  |         } elseif (isset(self::$_avatars[$target->id][$size])) { | 
					
						
							| 
									
										
										
										
											2013-10-06 15:54:06 +02:00
										 |  |  |             return self::$_avatars[$target->id][$size]; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $avatar = null; | 
					
						
							|  |  |  |         if (Event::handle('StartProfileGetAvatar', array($target, $width, &$avatar))) { | 
					
						
							|  |  |  |             $avatar = self::pkeyGet( | 
					
						
							|  |  |  |                 array( | 
					
						
							|  |  |  |                     'profile_id' => $target->id, | 
					
						
							|  |  |  |                     'width'      => $width, | 
					
						
							|  |  |  |                     'height'     => $height, | 
					
						
							|  |  |  |                 ) | 
					
						
							|  |  |  |             ); | 
					
						
							|  |  |  |             Event::handle('EndProfileGetAvatar', array($target, $width, &$avatar)); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (is_null($avatar)) { | 
					
						
							|  |  |  |             // Obviously we can't find an avatar, so let's resize the original!
 | 
					
						
							|  |  |  |             $avatar = Avatar::newSize($target, $width); | 
					
						
							|  |  |  |         } elseif (!($avatar instanceof Avatar)) { | 
					
						
							|  |  |  |             throw new NoAvatarException($target, $avatar); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         self::$_avatars[$target->id]["{$avatar->width}x{$avatar->height}"] = $avatar; | 
					
						
							|  |  |  |         return $avatar; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-02 15:01:11 +02:00
										 |  |  |     public static function getUploaded(Profile $target) | 
					
						
							| 
									
										
										
										
											2013-09-30 22:13:37 +02:00
										 |  |  |     { | 
					
						
							|  |  |  |         $avatar = new Avatar(); | 
					
						
							|  |  |  |         $avatar->profile_id = $target->id; | 
					
						
							|  |  |  |         $avatar->original = true; | 
					
						
							|  |  |  |         if (!$avatar->find(true)) { | 
					
						
							| 
									
										
										
										
											2013-10-06 15:54:06 +02:00
										 |  |  |             throw new NoAvatarException($target, $avatar); | 
					
						
							| 
									
										
										
										
											2013-09-30 22:13:37 +02:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2013-10-04 13:36:45 +02:00
										 |  |  |         if (!file_exists(Avatar::path($avatar->filename))) { | 
					
						
							|  |  |  |             // The delete call may be odd for, say, unmounted filesystems
 | 
					
						
							|  |  |  |             // that cause a file to currently not exist, but actually it does...
 | 
					
						
							|  |  |  |             $avatar->delete(); | 
					
						
							| 
									
										
										
										
											2013-10-06 15:54:06 +02:00
										 |  |  |             throw new NoAvatarException($target, $avatar); | 
					
						
							| 
									
										
										
										
											2013-10-01 11:37:59 +02:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2013-10-04 13:36:45 +02:00
										 |  |  |         return $avatar; | 
					
						
							| 
									
										
										
										
											2013-10-01 11:37:59 +02:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-11 11:25:39 +03:00
										 |  |  |     public static function getProfileAvatars(Profile $target) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2013-09-30 22:13:37 +02:00
										 |  |  |         $avatar = new Avatar(); | 
					
						
							|  |  |  |         $avatar->profile_id = $target->id; | 
					
						
							| 
									
										
										
										
											2013-10-01 11:37:59 +02:00
										 |  |  |         if (!$avatar->find()) { | 
					
						
							| 
									
										
										
										
											2013-10-06 15:54:06 +02:00
										 |  |  |             throw new NoAvatarException($target, $avatar); | 
					
						
							| 
									
										
										
										
											2013-10-01 11:37:59 +02:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2013-09-30 22:13:37 +02:00
										 |  |  |         return $avatar->fetchAll(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-28 23:21:09 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Where should the avatar go for this user? | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2019-09-11 11:25:39 +03:00
										 |  |  |     public static function filename($id, $extension, $size = null, $extra = null) | 
					
						
							| 
									
										
										
										
											2009-02-06 03:13:08 -05:00
										 |  |  |     { | 
					
						
							|  |  |  |         if ($size) { | 
					
						
							|  |  |  |             return $id . '-' . $size . (($extra) ? ('-' . $extra) : '') . $extension; | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             return $id . '-original' . (($extra) ? ('-' . $extra) : '') . $extension; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-11 11:25:39 +03:00
										 |  |  |     public static function path($filename) | 
					
						
							| 
									
										
										
										
											2009-02-06 03:13:08 -05:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2009-06-15 10:45:50 -07:00
										 |  |  |         $dir = common_config('avatar', 'dir'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if ($dir[strlen($dir)-1] != '/') { | 
					
						
							|  |  |  |             $dir .= '/'; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return $dir . $filename; | 
					
						
							| 
									
										
										
										
											2009-02-06 03:13:08 -05:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-11 11:25:39 +03:00
										 |  |  |     public static function url($filename) | 
					
						
							| 
									
										
										
										
											2009-02-06 03:13:08 -05:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2020-03-06 17:34:49 +00:00
										 |  |  |         $path = common_config('avatar', 'url_base'); | 
					
						
							| 
									
										
										
										
											2009-06-15 10:45:50 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |         if ($path[strlen($path)-1] != '/') { | 
					
						
							|  |  |  |             $path .= '/'; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if ($path[0] != '/') { | 
					
						
							|  |  |  |             $path = '/'.$path; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $server = common_config('avatar', 'server'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (empty($server)) { | 
					
						
							|  |  |  |             $server = common_config('site', 'server'); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2009-11-25 19:22:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-10 00:57:39 +01:00
										 |  |  |         $ssl = (common_config('avatar', 'ssl') || GNUsocial::useHTTPS()); | 
					
						
							| 
									
										
										
										
											2010-02-11 16:51:15 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |         $protocol = ($ssl) ? 'https' : 'http'; | 
					
						
							| 
									
										
										
										
											2009-06-15 10:45:50 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-11 16:51:15 -05:00
										 |  |  |         return $protocol.'://'.$server.$path.$filename; | 
					
						
							| 
									
										
										
										
											2009-02-06 03:13:08 -05:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-11 11:25:39 +03:00
										 |  |  |     public function displayUrl() | 
					
						
							| 
									
										
										
										
											2009-02-06 03:13:08 -05:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2016-01-06 16:14:26 +01:00
										 |  |  |         return Avatar::url($this->filename); | 
					
						
							| 
									
										
										
										
											2009-02-06 03:13:08 -05:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-11 11:25:39 +03:00
										 |  |  |     public static function urlByProfile(Profile $target, $width = null, $height = null) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2013-10-06 15:54:06 +02:00
										 |  |  |         try { | 
					
						
							| 
									
										
										
										
											2019-09-11 11:25:39 +03:00
										 |  |  |             return self::byProfile($target, $width, $height)->displayUrl(); | 
					
						
							| 
									
										
										
										
											2013-10-06 15:54:06 +02:00
										 |  |  |         } catch (Exception $e) { | 
					
						
							|  |  |  |             return self::defaultImage($width); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-11 11:25:39 +03:00
										 |  |  |     public static function defaultImage($size = null) | 
					
						
							| 
									
										
										
										
											2009-02-06 03:13:08 -05:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2016-03-01 15:00:52 +01:00
										 |  |  |         if (is_null($size)) { | 
					
						
							|  |  |  |             $size = AVATAR_PROFILE_SIZE; | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2009-02-06 03:13:08 -05:00
										 |  |  |         static $sizenames = array(AVATAR_PROFILE_SIZE => 'profile', | 
					
						
							|  |  |  |                                   AVATAR_STREAM_SIZE => 'stream', | 
					
						
							|  |  |  |                                   AVATAR_MINI_SIZE => 'mini'); | 
					
						
							| 
									
										
										
										
											2009-11-08 17:04:46 -05:00
										 |  |  |         return Theme::path('default-avatar-'.$sizenames[$size].'.png'); | 
					
						
							| 
									
										
										
										
											2009-02-06 03:13:08 -05:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2013-09-30 22:13:37 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-11 11:25:39 +03:00
										 |  |  |     public static function newSize(Profile $target, $width) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2014-04-21 19:32:08 +02:00
										 |  |  |         $width = intval($width); | 
					
						
							| 
									
										
										
										
											2013-10-06 15:54:06 +02:00
										 |  |  |         if ($width < 1 || $width > common_config('avatar', 'maxsize')) { | 
					
						
							| 
									
										
										
										
											2013-09-30 22:13:37 +02:00
										 |  |  |             // TRANS: An error message when avatar size is unreasonable
 | 
					
						
							| 
									
										
										
										
											2013-10-01 11:37:59 +02:00
										 |  |  |             throw new Exception(_m('Avatar size too large')); | 
					
						
							| 
									
										
										
										
											2013-09-30 22:13:37 +02:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2015-03-12 20:47:07 +01:00
										 |  |  |         // So far we only have square avatars and I don't have time to
 | 
					
						
							|  |  |  |         // rewrite support for non-square ones right now ;)
 | 
					
						
							|  |  |  |         $height = $width; | 
					
						
							| 
									
										
										
										
											2013-09-30 22:13:37 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-02 15:01:11 +02:00
										 |  |  |         $original = Avatar::getUploaded($target); | 
					
						
							| 
									
										
										
										
											2013-09-30 22:13:37 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-11 00:13:55 +01:00
										 |  |  |         $imagefile = new ImageFile(null, Avatar::path($original->filename)); | 
					
						
							| 
									
										
										
										
											2019-09-11 11:25:39 +03:00
										 |  |  |         $filename = Avatar::filename( | 
					
						
							|  |  |  |             $target->getID(), | 
					
						
							|  |  |  |             image_type_to_extension($imagefile->preferredType()), | 
					
						
							|  |  |  |             $width, | 
					
						
							|  |  |  |             common_timestamp() | 
					
						
							|  |  |  |         ); | 
					
						
							| 
									
										
										
										
											2015-03-12 20:47:07 +01:00
										 |  |  |         $imagefile->resizeTo(Avatar::path($filename), array('width'=>$width, 'height'=>$height)); | 
					
						
							| 
									
										
										
										
											2013-09-30 22:13:37 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |         $scaled = clone($original); | 
					
						
							|  |  |  |         $scaled->original = false; | 
					
						
							| 
									
										
										
										
											2013-10-06 15:54:06 +02:00
										 |  |  |         $scaled->width = $width; | 
					
						
							| 
									
										
										
										
											2015-03-12 20:47:07 +01:00
										 |  |  |         $scaled->height = $height; | 
					
						
							| 
									
										
										
										
											2013-10-01 11:37:59 +02:00
										 |  |  |         $scaled->filename = $filename; | 
					
						
							|  |  |  |         $scaled->created = common_sql_now(); | 
					
						
							| 
									
										
										
										
											2013-09-30 22:13:37 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |         if (!$scaled->insert()) { | 
					
						
							|  |  |  |             // TRANS: An error message when unable to insert avatar data into the db
 | 
					
						
							|  |  |  |             throw new Exception(_m('Could not insert new avatar data to database')); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // Return the new avatar object
 | 
					
						
							|  |  |  |         return $scaled; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2008-05-15 12:28:44 -04:00
										 |  |  | } |