class OStatusTagAction extends OStatusInitAction
{
-
var $nickname;
var $profile;
var $err;
- function prepare($args)
+ function prepare(array $args = array())
{
parent::prepare($args);
if (common_logged_in()) {
- $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');
function showContent()
{
- $header = sprintf(_m('Tag %s'), $this->nickname);
- $submit = _m('Go');
+ // 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',
'class' => 'form_settings',
$this->elementStart('ul', 'form_data');
$this->elementStart('li', array('id' => 'ostatus_nickname'));
+ // TRANS: Field label.
$this->input('nickname', _m('User nickname'), $this->nickname,
- _m('Nickname of the user you want to tag'));
+ // TRANS: Field title.
+ _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,
- _m('Your account id (i.e. user@identi.ca)'));
+ // TRANS: Field title.
+ _m('Your account id (for example user@example.com).'));
$this->elementEnd('li');
$this->elementEnd('ul');
$this->submit('submit', $submit);
$target_profile = $this->targetProfile();
$disco = new Discovery;
- $result = $disco->lookup($acct);
- if (!$result) {
- $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.'));
}
function title()
{
- return _m('OStatus people tag');
+ // TRANS: Title for an OStatus list.
+ return _m('OStatus list');
}
}