X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Ffoaf.php;h=bf9cf1b957bdb5b8abeb6940437396b373547e19;hb=e98d5d0c0cee37acae440c15b3ea62ba036d4c82;hp=94ada859d92f2875fee232f10aed4ec484332f6f;hpb=7979918ba945b1fd8e6be0248159afc802028326;p=quix0rs-gnu-social.git diff --git a/actions/foaf.php b/actions/foaf.php index 94ada859d9..bf9cf1b957 100644 --- a/actions/foaf.php +++ b/actions/foaf.php @@ -17,30 +17,27 @@ * along with this program. If not, see . */ -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } +if (!defined('GNUSOCIAL')) { exit(1); } define('LISTENER', 1); define('LISTENEE', -1); define('BOTH', 0); // @todo XXX: Documentation missing. -class FoafAction extends Action +class FoafAction extends ManagedAction { function isReadOnly($args) { return true; } - function prepare($args) + protected function doPreparation() { - parent::prepare($args); - $nickname_arg = $this->arg('nickname'); if (empty($nickname_arg)) { // TRANS: Client error displayed when requesting Friends of a Friend feed without providing a user nickname. $this->clientError(_('No such user.'), 404); - return false; } $this->nickname = common_canonical_nickname($nickname_arg); @@ -51,7 +48,6 @@ class FoafAction extends Action common_redirect(common_local_url('foaf', array('nickname' => $this->nickname)), 301); - return false; } $this->user = User::getKV('nickname', $this->nickname); @@ -59,7 +55,6 @@ class FoafAction extends Action if (!$this->user) { // TRANS: Client error displayed when requesting Friends of a Friend feed for an object that is not a user. $this->clientError(_('No such user.'), 404); - return false; } $this->profile = $this->user->getProfile(); @@ -67,16 +62,13 @@ class FoafAction extends Action if (!$this->profile) { // TRANS: Error message displayed when referring to a user without a profile. $this->serverError(_('User has no profile.'), 500); - return false; } return true; } - function handle($args) + public function showPage() { - parent::handle($args); - header('Content-Type: application/rdf+xml'); $this->startXML(); @@ -94,12 +86,11 @@ class FoafAction extends Action // This is the document about the user - $this->showPpd('', $this->user->uri); + $this->showPpd('', $this->user->getUri()); // Would be nice to tell if they were a Person or not (e.g. a #person usertag?) - $this->elementStart('Agent', array('rdf:about' => - $this->user->uri)); - if ($this->user->email) { + $this->elementStart('Agent', array('rdf:about' => $this->user->getUri())); + if (common_config('foaf', 'mbox_sha1sum') && $this->user->email) { $this->element('mbox_sha1sum', null, sha1('mailto:' . $this->user->email)); } if ($this->profile->fullname) { @@ -142,7 +133,7 @@ class FoafAction extends Action } try { - $avatar = Avatar::getOriginal($this->profile); + $avatar = Avatar::getUploaded($this->profile); $this->elementStart('img'); $this->elementStart('Image', array('rdf:about' => $avatar->displayUrl())); foreach (array(AVATAR_PROFILE_SIZE, AVATAR_STREAM_SIZE, AVATAR_MINI_SIZE) as $size) { @@ -157,12 +148,12 @@ class FoafAction extends Action } $this->elementEnd('Image'); $this->elementEnd('img'); - } catch (Exception $e) { + } catch (NoAvatarException $e) { // No avatar for this user! } $person = $this->showMicrobloggingAccount($this->profile, - common_root_url(), $this->user->uri, + common_root_url(), $this->user->getUri(), /*$fetchSubscriptions*/true, /*$isSubscriber*/false); @@ -175,7 +166,7 @@ class FoafAction extends Action if ($sub->find()) { while ($sub->fetch()) { $profile = Profile::getKV('id', $sub->subscriber); - if (empty($profile)) { + if (!$profile instanceof Profile) { common_debug('Got a bad subscription: '.print_r($sub,true)); continue; } @@ -213,7 +204,7 @@ class FoafAction extends Action $profile = Profile::getKV($id); $this->elementStart('Agent', array('rdf:about' => $uri)); if ($type == BOTH) { - $this->element('knows', array('rdf:resource' => $this->user->uri)); + $this->element('knows', array('rdf:resource' => $this->user->getUri())); } $this->showMicrobloggingAccount($profile, ($local == 'local') ? common_root_url() : null, @@ -305,7 +296,7 @@ class FoafAction extends Action unset($sub); } else if ($isSubscriber) { // Just declare that they follow the user whose FOAF we're showing. - $this->element('sioc:follows', array('rdf:resource' => $this->user->uri . '#acct')); + $this->element('sioc:follows', array('rdf:resource' => $this->user->getUri() . '#acct')); } $this->elementEnd('OnlineAccount');