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
|
* Table Definition for profile
|
||||||
*/
|
*/
|
||||||
require_once INSTALLDIR.'/classes/Memcached_DataObject.php';
|
|
||||||
|
|
||||||
class Profile extends Managed_DataObject
|
class Profile extends Managed_DataObject
|
||||||
{
|
{
|
||||||
###START_AUTOCODE
|
###START_AUTOCODE
|
||||||
|
@ -140,6 +138,16 @@ class Profile extends Managed_DataObject
|
||||||
return true;
|
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)
|
public function getAvatar($width, $height=null)
|
||||||
{
|
{
|
||||||
return Avatar::byProfile($this, $width, $height);
|
return Avatar::byProfile($this, $width, $height);
|
||||||
|
@ -1303,10 +1311,66 @@ class Profile extends Managed_DataObject
|
||||||
*/
|
*/
|
||||||
function asActivityNoun($element)
|
function asActivityNoun($element)
|
||||||
{
|
{
|
||||||
$noun = ActivityObject::fromProfile($this);
|
$noun = $this->asActivityObject();
|
||||||
return $noun->asString('activity:' . $element);
|
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
|
* Returns the profile's canonical url, not necessarily a uri/unique id
|
||||||
*
|
*
|
||||||
|
|
|
@ -459,58 +459,7 @@ class ActivityObject
|
||||||
|
|
||||||
static function fromProfile(Profile $profile)
|
static function fromProfile(Profile $profile)
|
||||||
{
|
{
|
||||||
$object = new ActivityObject();
|
return $profile->asActivityObject();
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static function fromGroup(User_group $group)
|
static function fromGroup(User_group $group)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user