*/
require_once INSTALLDIR.'/classes/Memcached_DataObject.php';
-class Avatar extends Memcached_DataObject
+class Avatar extends Managed_DataObject
{
###START_AUTOCODE
/* the code below is auto generated do not remove the above tag */
public $created; // datetime() not_null
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
- /* Static get */
- 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
+ static function pivotGet($keyCol, $keyVals, $otherCols)
+ {
+ return Memcached_DataObject::pivotGet('Avatar', $keyCol, $keyVals, $otherCols);
+ }
+
+ public static function schemaDef()
+ {
+ return array(
+ 'fields' => array(
+ 'profile_id' => array('type' => 'int', 'not null' => true, 'description' => 'foreign key to profile table'),
+ 'original' => array('type' => 'int', 'size' => 'tiny', 'default' => 0, 'description' => 'uploaded by user or generated?'),
+ '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'),
+ 'filename' => array('type' => 'varchar', 'length' => 255, 'description' => 'local filename, if local'),
+ 'url' => array('type' => 'varchar', 'length' => 255, 'description' => 'avatar location'),
+ 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'),
+ 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'),
+ ),
+ 'primary key' => array('profile_id', 'width', 'height'),
+ 'unique keys' => array(
+ 'avatar_url_key' => array('url'),
+ ),
+ 'foreign keys' => array(
+ 'avatar_profile_id_fkey' => array('profile', array('profile_id' => 'id')),
+ ),
+ 'indexes' => array(
+ 'avatar_profile_id_idx' => array('profile_id'),
+ ),
+ );
+ }
+ // We clean up the file, too
function delete()
{
}
}
- function &pkeyGet($kv)
- {
- return Memcached_DataObject::pkeyGet('Avatar', $kv);
- }
-
- // where should the avatar go for this user?
-
+ /**
+ * Where should the avatar go for this user?
+ */
static function filename($id, $extension, $size=null, $extra=null)
{
if ($size) {
if (empty($server)) {
$server = common_config('site', 'server');
}
- common_debug('path = ' . $path);
- // XXX: protocol
- return 'http://'.$server.$path.$filename;
+ $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';
+
+ return $protocol.'://'.$server.$path.$filename;
}
function displayUrl()
{
$server = common_config('avatar', 'server');
- if ($server) {
+ if ($server && !empty($this->filename)) {
return Avatar::url($this->filename);
} else {
return $this->url;
static $sizenames = array(AVATAR_PROFILE_SIZE => 'profile',
AVATAR_STREAM_SIZE => 'stream',
AVATAR_MINI_SIZE => 'mini');
- return theme_path('default-avatar-'.$sizenames[$size].'.png');
+ return Theme::path('default-avatar-'.$sizenames[$size].'.png');
}
}