+ header('Access-Control-Allow-Origin: *');
+ header('Content-type: application/json; charset=utf-8');
+
+ $json = [
+ 'subject' => 'acct:' . $owner['addr'],
+ 'aliases' => [
+ $alias,
+ $owner['url'],
+ ],
+ 'links' => [
+ [
+ 'rel' => ActivityNamespace::DFRN ,
+ 'href' => $owner['url'],
+ ],
+ [
+ 'rel' => ActivityNamespace::FEED,
+ 'type' => 'application/atom+xml',
+ 'href' => $owner['poll'],
+ ],
+ [
+ 'rel' => 'http://webfinger.net/rel/profile-page',
+ 'type' => 'text/html',
+ 'href' => $owner['url'],
+ ],
+ [
+ 'rel' => 'self',
+ 'type' => 'application/activity+json',
+ 'href' => $owner['url'],
+ ],
+ [
+ 'rel' => 'http://microformats.org/profile/hcard',
+ 'type' => 'text/html',
+ 'href' => $baseURL . '/hcard/' . $owner['nickname'],
+ ],
+ [
+ 'rel' => ActivityNamespace::POCO,
+ 'href' => $owner['poco'],
+ ],
+ [
+ 'rel' => 'http://webfinger.net/rel/avatar',
+ 'type' => $avatar['type'],
+ 'href' => $owner['photo'],
+ ],
+ [
+ 'rel' => 'http://joindiaspora.com/seed_location',
+ 'type' => 'text/html',
+ 'href' => $baseURL,
+ ],
+ [
+ 'rel' => 'salmon',
+ 'href' => $baseURL . '/salmon/' . $owner['nickname'],
+ ],
+ [
+ 'rel' => 'http://salmon-protocol.org/ns/salmon-replies',
+ 'href' => $baseURL . '/salmon/' . $owner['nickname'],
+ ],
+ [
+ 'rel' => 'http://salmon-protocol.org/ns/salmon-mention',
+ 'href' => $baseURL . '/salmon/' . $owner['nickname'] . '/mention',
+ ],
+ [
+ 'rel' => 'http://ostatus.org/schema/1.0/subscribe',
+ 'template' => $baseURL . '/follow?url={uri}',
+ ],
+ [
+ 'rel' => 'magic-public-key',
+ 'href' => 'data:application/magic-public-key,' . $salmon_key,
+ ],
+ [
+ 'rel' => 'http://purl.org/openwebauth/v1',
+ 'type' => 'application/x-zot+json',
+ 'href' => $baseURL . '/owa',
+ ],
+ ],
+ ];
+
+ echo json_encode($json);
+ exit();
+ }
+
+ private static function printXML($alias, $baseURL, $user, $owner, $avatar)
+ {
+ $salmon_key = Salmon::salmonKey($owner['spubkey']);
+
+ header('Access-Control-Allow-Origin: *');
+ header('Content-type: text/xml');
+
+ $tpl = Renderer::getMarkupTemplate('xrd_person.tpl');