ActivityObject::fromProfile implemented in Profile
This commit is contained in:
parent
c44146d6f8
commit
1d981b826a
@ -22,8 +22,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
|
||||
/**
|
||||
* Table Definition for profile
|
||||
*/
|
||||
require_once INSTALLDIR.'/classes/Memcached_DataObject.php';
|
||||
|
||||
class Profile extends Managed_DataObject
|
||||
{
|
||||
###START_AUTOCODE
|
||||
@ -140,6 +138,16 @@ class Profile extends Managed_DataObject
|
||||
return true;
|
||||
}
|
||||
|
||||
public function getObjectType()
|
||||
{
|
||||
// FIXME: More types... like peopletags and whatever
|
||||
if ($this->isGroup()) {
|
||||
return ActivityObject::GROUP;
|
||||
} else {
|
||||
return ActivityObject::PERSON;
|
||||
}
|
||||
}
|
||||
|
||||
public function getAvatar($width, $height=null)
|
||||
{
|
||||
return Avatar::byProfile($this, $width, $height);
|
||||
@ -1303,10 +1311,66 @@ class Profile extends Managed_DataObject
|
||||
*/
|
||||
function asActivityNoun($element)
|
||||
{
|
||||
$noun = ActivityObject::fromProfile($this);
|
||||
$noun = $this->asActivityObject();
|
||||
return $noun->asString('activity:' . $element);
|
||||
}
|
||||
|
||||
public function asActivityObject()
|
||||
{
|
||||
$object = new ActivityObject();
|
||||
|
||||
if (Event::handle('StartActivityObjectFromProfile', array($this, &$object))) {
|
||||
$object->type = $this->getObjectType();
|
||||
$object->id = $this->getUri();
|
||||
$object->title = $this->getBestName();
|
||||
$object->link = $this->getUrl();
|
||||
|
||||
try {
|
||||
$avatar = Avatar::getUploaded($this);
|
||||
$object->avatarLinks[] = AvatarLink::fromAvatar($avatar);
|
||||
} catch (NoAvatarException $e) {
|
||||
// Could not find an original avatar to link
|
||||
}
|
||||
|
||||
$sizes = array(
|
||||
AVATAR_PROFILE_SIZE,
|
||||
AVATAR_STREAM_SIZE,
|
||||
AVATAR_MINI_SIZE
|
||||
);
|
||||
|
||||
foreach ($sizes as $size) {
|
||||
$alink = null;
|
||||
try {
|
||||
$avatar = Avatar::byProfile($this, $size);
|
||||
$alink = AvatarLink::fromAvatar($avatar);
|
||||
} catch (NoAvatarException $e) {
|
||||
$alink = new AvatarLink();
|
||||
$alink->type = 'image/png';
|
||||
$alink->height = $size;
|
||||
$alink->width = $size;
|
||||
$alink->url = Avatar::defaultImage($size);
|
||||
}
|
||||
|
||||
$object->avatarLinks[] = $alink;
|
||||
}
|
||||
|
||||
if (isset($this->lat) && isset($this->lon)) {
|
||||
$object->geopoint = (float)$this->lat
|
||||
. ' ' . (float)$this->lon;
|
||||
}
|
||||
|
||||
$object->poco = PoCo::fromProfile($this);
|
||||
|
||||
if ($this->isLocal()) {
|
||||
$object->extra[] = array('followers', array('url' => common_local_url('subscribers', array('nickname' => $this->getNickname()))));
|
||||
}
|
||||
|
||||
Event::handle('EndActivityObjectFromProfile', array($this, &$object));
|
||||
}
|
||||
|
||||
return $object;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the profile's canonical url, not necessarily a uri/unique id
|
||||
*
|
||||
|
@ -459,58 +459,7 @@ class ActivityObject
|
||||
|
||||
static function fromProfile(Profile $profile)
|
||||
{
|
||||
$object = new ActivityObject();
|
||||
|
||||
if (Event::handle('StartActivityObjectFromProfile', array($profile, &$object))) {
|
||||
$object->type = ActivityObject::PERSON;
|
||||
$object->id = $profile->getUri();
|
||||
$object->title = $profile->getBestName();
|
||||
$object->link = $profile->profileurl;
|
||||
|
||||
try {
|
||||
$avatar = Avatar::getUploaded($profile);
|
||||
$object->avatarLinks[] = AvatarLink::fromAvatar($avatar);
|
||||
} catch (NoAvatarException $e) {
|
||||
// Could not find an original avatar to link
|
||||
}
|
||||
|
||||
$sizes = array(
|
||||
AVATAR_PROFILE_SIZE,
|
||||
AVATAR_STREAM_SIZE,
|
||||
AVATAR_MINI_SIZE
|
||||
);
|
||||
|
||||
foreach ($sizes as $size) {
|
||||
$alink = null;
|
||||
try {
|
||||
$avatar = Avatar::byProfile($profile, $size);
|
||||
$alink = AvatarLink::fromAvatar($avatar);
|
||||
} catch (NoAvatarException $e) {
|
||||
$alink = new AvatarLink();
|
||||
$alink->type = 'image/png';
|
||||
$alink->height = $size;
|
||||
$alink->width = $size;
|
||||
$alink->url = Avatar::defaultImage($size);
|
||||
}
|
||||
|
||||
$object->avatarLinks[] = $alink;
|
||||
}
|
||||
|
||||
if (isset($profile->lat) && isset($profile->lon)) {
|
||||
$object->geopoint = (float)$profile->lat
|
||||
. ' ' . (float)$profile->lon;
|
||||
}
|
||||
|
||||
$object->poco = PoCo::fromProfile($profile);
|
||||
|
||||
if ($profile->isLocal()) {
|
||||
$object->extra[] = array('followers', array('url' => common_local_url('subscribers', array('nickname' => $profile->nickname))));
|
||||
}
|
||||
|
||||
Event::handle('EndActivityObjectFromProfile', array($profile, &$object));
|
||||
}
|
||||
|
||||
return $object;
|
||||
return $profile->asActivityObject();
|
||||
}
|
||||
|
||||
static function fromGroup(User_group $group)
|
||||
|
Loading…
Reference in New Issue
Block a user