X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FOStatus%2Factions%2Fostatustag.php;h=d054c3e59f646e6cc89796cb143749f57d1aae48;hb=d6b28c64830f632bb2f4b6f3c9369b9e56ad217a;hp=1df74d9079a8c0650fc81f5e7c48d7351d1d82f1;hpb=19b965d99188fde59cdd39b668df8951bc0f180c;p=quix0rs-gnu-social.git diff --git a/plugins/OStatus/actions/ostatustag.php b/plugins/OStatus/actions/ostatustag.php index 1df74d9079..d054c3e59f 100644 --- a/plugins/OStatus/actions/ostatustag.php +++ b/plugins/OStatus/actions/ostatustag.php @@ -31,14 +31,13 @@ class OStatusTagAction extends OStatusInitAction var $profile; var $err; - function prepare($args) + function prepare(array $args=array()) { parent::prepare($args); if (common_logged_in()) { - // TRANS: Client error displayed when trying to tag a local object as if it is remote. - $this->clientError(_m('You can use the local tagging!')); - return false; + // TRANS: Client error displayed when trying to list a local object as if it is remote. + $this->clientError(_m('You can use the local list functionality!')); } $this->nickname = $this->trimmed('nickname'); @@ -51,9 +50,9 @@ class OStatusTagAction extends OStatusInitAction function showContent() { - // TRANS: Header for tagging a remote object. %s is a remote object's name. - $header = sprintf(_m('Tag %s'), $this->nickname); - // TRANS: Button text to tag a remote object. + // TRANS: Header for listing a remote object. %s is a remote object's name. + $header = sprintf(_m('List %s'), $this->nickname); + // TRANS: Button text to list a remote object. $submit = _m('BUTTON','Go'); $this->elementStart('form', array('id' => 'form_ostatus_connect', 'method' => 'post', @@ -68,13 +67,13 @@ class OStatusTagAction extends OStatusInitAction // TRANS: Field label. $this->input('nickname', _m('User nickname'), $this->nickname, // TRANS: Field title. - _m('Nickname of the user you want to tag.')); + _m('Nickname of the user you want to list.')); $this->elementEnd('li'); $this->elementStart('li', array('id' => 'ostatus_profile')); // TRANS: Field label. $this->input('profile', _m('Profile Account'), $this->profile, // TRANS: Field title. - _m('Your account id (for example user@identi.ca).')); + _m('Your account id (for example user@example.com).')); $this->elementEnd('li'); $this->elementEnd('ul'); $this->submit('submit', $submit); @@ -87,20 +86,18 @@ class OStatusTagAction extends OStatusInitAction $target_profile = $this->targetProfile(); $disco = new Discovery; - $result = $disco->lookup($acct); - if (!$result) { - // TRANS: Client error displayed when remote profile could not be looked up. - $this->clientError(_m('Could not look up OStatus account profile.')); - } - - foreach ($result->links as $link) { - if ($link['rel'] == 'http://ostatus.org/schema/1.0/tag') { - // We found a URL - let's redirect! - $url = Discovery::applyTemplate($link['template'], $target_profile); - common_log(LOG_INFO, "Sending remote subscriber $acct to $url"); - common_redirect($url, 303); + $xrd = $disco->lookup($acct); + + $link = $xrd->get('http://ostatus.org/schema/1.0/tag'); + if (!is_null($link)) { + // We found a URL - let's redirect! + if (!empty($link->template)) { + $url = Discovery::applyTemplate($link->template, $target_profile); + } else { + $url = $link->href; } - + common_log(LOG_INFO, "Sending remote subscriber $acct to $url"); + common_redirect($url, 303); } // TRANS: Client error displayed when remote profile address could not be confirmed. $this->clientError(_m('Could not confirm remote profile address.'));