2008-05-16 01:28:44 +09:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* Table Definition for avatar
|
|
|
|
*/
|
2008-09-27 01:18:24 +09:00
|
|
|
require_once INSTALLDIR.'/classes/Memcached_DataObject.php';
|
2008-05-16 01:28:44 +09:00
|
|
|
|
2009-02-06 17:13:08 +09:00
|
|
|
class Avatar extends Memcached_DataObject
|
2008-05-16 01:28:44 +09:00
|
|
|
{
|
|
|
|
###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
|
2009-02-06 17:13:08 +09:00
|
|
|
public $original; // tinyint(1)
|
2008-05-16 01:28:44 +09:00
|
|
|
public $width; // int(4) primary_key not_null
|
|
|
|
public $height; // int(4) primary_key not_null
|
|
|
|
public $mediatype; // varchar(32) not_null
|
2009-02-06 17:13:08 +09:00
|
|
|
public $filename; // varchar(255)
|
2008-05-19 22:40:57 +09:00
|
|
|
public $url; // varchar(255) unique_key
|
|
|
|
public $created; // datetime() not_null
|
|
|
|
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
|
2008-05-16 01:28:44 +09:00
|
|
|
|
|
|
|
/* Static get */
|
2008-12-24 04:33:23 +09:00
|
|
|
function staticGet($k,$v=null)
|
|
|
|
{ return Memcached_DataObject::staticGet('Avatar',$k,$v); }
|
2008-05-16 01:28:44 +09:00
|
|
|
|
|
|
|
/* the code above is auto generated do not remove the tag below */
|
|
|
|
###END_AUTOCODE
|
2008-06-06 04:37:08 +09:00
|
|
|
|
2008-12-24 04:19:07 +09:00
|
|
|
# We clean up the file, too
|
2008-07-10 07:46:30 +09:00
|
|
|
|
2008-12-24 04:33:23 +09:00
|
|
|
function delete()
|
|
|
|
{
|
2008-12-24 04:19:07 +09:00
|
|
|
$filename = $this->filename;
|
|
|
|
if (parent::delete()) {
|
2009-02-06 17:13:08 +09:00
|
|
|
@unlink(Avatar::path($filename));
|
2008-12-24 04:19:07 +09:00
|
|
|
}
|
|
|
|
}
|
2009-02-06 17:13:08 +09:00
|
|
|
|
2010-01-07 07:28:40 +09:00
|
|
|
function pkeyGet($kv)
|
2008-12-25 23:46:01 +09:00
|
|
|
{
|
|
|
|
return Memcached_DataObject::pkeyGet('Avatar', $kv);
|
|
|
|
}
|
|
|
|
|
2010-09-29 06:21:09 +09:00
|
|
|
/**
|
|
|
|
* Where should the avatar go for this user?
|
|
|
|
*/
|
2009-02-06 17:13:08 +09:00
|
|
|
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)
|
|
|
|
{
|
2009-06-16 02:45:50 +09:00
|
|
|
$dir = common_config('avatar', 'dir');
|
|
|
|
|
|
|
|
if ($dir[strlen($dir)-1] != '/') {
|
|
|
|
$dir .= '/';
|
|
|
|
}
|
|
|
|
|
|
|
|
return $dir . $filename;
|
2009-02-06 17:13:08 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
static function url($filename)
|
|
|
|
{
|
2009-06-16 02:45:50 +09:00
|
|
|
$path = common_config('avatar', 'path');
|
|
|
|
|
|
|
|
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-26 04:22:09 +09:00
|
|
|
|
2010-02-12 06:51:15 +09:00
|
|
|
$ssl = common_config('avatar', 'ssl');
|
|
|
|
|
|
|
|
if (is_null($ssl)) { // null -> guess
|
|
|
|
if (common_config('site', 'ssl') == 'always' &&
|
|
|
|
!common_config('avatar', 'server')) {
|
|
|
|
$ssl = true;
|
|
|
|
} else {
|
|
|
|
$ssl = false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$protocol = ($ssl) ? 'https' : 'http';
|
2009-06-16 02:45:50 +09:00
|
|
|
|
2010-02-12 06:51:15 +09:00
|
|
|
return $protocol.'://'.$server.$path.$filename;
|
2009-02-06 17:13:08 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
function displayUrl()
|
|
|
|
{
|
|
|
|
$server = common_config('avatar', 'server');
|
|
|
|
if ($server) {
|
2011-09-04 04:11:31 +09:00
|
|
|
if (common_config('avatar', 'server_modulo') && common_config('avatar', 'server_modulo') > 1 ){
|
|
|
|
return str_replace( '_rrdns_', ( $this->profile_id % common_config('avatar', 'server_modulo') ), Avatar::url($this->filename) );
|
|
|
|
}else{
|
|
|
|
return Avatar::url($this->filename);
|
|
|
|
}
|
2009-02-06 17:13:08 +09:00
|
|
|
} else {
|
|
|
|
return $this->url;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2009-02-06 18:03:03 +09:00
|
|
|
static function defaultImage($size)
|
2009-02-06 17:13:08 +09:00
|
|
|
{
|
|
|
|
static $sizenames = array(AVATAR_PROFILE_SIZE => 'profile',
|
|
|
|
AVATAR_STREAM_SIZE => 'stream',
|
|
|
|
AVATAR_MINI_SIZE => 'mini');
|
2009-11-09 07:04:46 +09:00
|
|
|
return Theme::path('default-avatar-'.$sizenames[$size].'.png');
|
2009-02-06 17:13:08 +09:00
|
|
|
}
|
2008-05-16 01:28:44 +09:00
|
|
|
}
|