'description' => 'local and remote users have profiles',
'fields' => array(
'id' => array('type' => 'serial', 'not null' => true, 'description' => 'unique identifier'),
- 'nickname' => array('type' => 'varchar', 'length' => 64, 'not null' => true, 'description' => 'nickname or username'),
- 'fullname' => array('type' => 'varchar', 'length' => 255, 'description' => 'display name'),
+ 'nickname' => array('type' => 'varchar', 'length' => 64, 'not null' => true, 'description' => 'nickname or username', 'collate' => 'utf8_general_ci'),
+ 'fullname' => array('type' => 'varchar', 'length' => 255, 'description' => 'display name', 'collate' => 'utf8_general_ci'),
'profileurl' => array('type' => 'varchar', 'length' => 255, 'description' => 'URL, cached so we dont regenerate'),
- 'homepage' => array('type' => 'varchar', 'length' => 255, 'description' => 'identifying URL'),
- 'bio' => array('type' => 'text', 'description' => 'descriptive biography'),
- 'location' => array('type' => 'varchar', 'length' => 255, 'description' => 'physical location'),
+ 'homepage' => array('type' => 'varchar', 'length' => 255, 'description' => 'identifying URL', 'collate' => 'utf8_general_ci'),
+ 'bio' => array('type' => 'text', 'description' => 'descriptive biography', 'collate' => 'utf8_general_ci'),
+ 'location' => array('type' => 'varchar', 'length' => 255, 'description' => 'physical location', 'collate' => 'utf8_general_ci'),
'lat' => array('type' => 'numeric', 'precision' => 10, 'scale' => 7, 'description' => 'latitude'),
'lon' => array('type' => 'numeric', 'precision' => 10, 'scale' => 7, 'description' => 'longitude'),
'location_id' => array('type' => 'int', 'description' => 'location id if possible'),
return $this->_user;
}
- protected $_avatars = array();
+ protected $_avatars;
function getAvatar($width, $height=null)
{
$height = $width;
}
+ if (!isset($this->_avatars)) {
+ $this->_avatars = array();
+ }
+
if (array_key_exists($width, $this->_avatars)) {
return $this->_avatars[$width];
}
$tags->tagged = $this->id;
$lists->joinAdd($tags);
+
#@fixme: postgres (round(date_part('epoch', my_date)))
$lists->selectAdd('unix_timestamp(profile_tag.modified) as "cursor"');
$lists = new Profile_list();
$subs = new Profile_tag_subscription();
- $lists->joinAdd($subs);
+ $lists->joinAdd('id', 'profile_tag_subscription:profile_tag_id');
+
#@fixme: postgres (round(date_part('epoch', my_date)))
$lists->selectAdd('unix_timestamp(profile_tag_subscription.created) as "cursor"');
$faves = new Fave();
$faves->user_id = $this->id;
- $cnt = (int) $faves->count('distinct notice_id');
+ $cnt = (int) $faves->count('notice_id');
if (!empty($c)) {
$c->set(Cache::key('profile:fave_count:'.$this->id), $cnt);