function title()
{
+ // TRANS: Page title for new direct message page.
return _('New message');
}
parent::handle($args);
if (!common_logged_in()) {
+ // TRANS: Error message displayed when trying to perform an action that requires a logged in user.
$this->clientError(_('Not logged in.'), 403);
} else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$this->saveNewMessage();
$user = common_current_user();
if (!$user) {
- $this->clientError(_('Only logged-in users can send direct messages.'), 403);
+ /* Go log in, and then come back. */
+ common_set_returnto($_SERVER['REQUEST_URI']);
+ common_redirect(common_local_url('login'));
return false;
}
$this->other = User::staticGet('id', $this->to);
if (!$this->other) {
- $this->clientError(_('No such user'), 404);
+ // TRANS: Client error displayed trying to send a direct message to a non-existing user.
+ $this->clientError(_('No such user.'), 404);
return false;
}
if (!$user->mutuallySubscribed($this->other)) {
- $this->clientError(_('You can\'t send a message to this user.'), 404);
+ // TRANS: Client error displayed trying to send a direct message to a user while sender and
+ // TRANS: receiver are not subscribed to each other.
+ $this->clientError(_('You cannot send a message to this user.'), 404);
return false;
}
}
$token = $this->trimmed('token');
if (!$token || $token != common_session_token()) {
+ // TRANS: Client error displayed when the session token does not match or is not given.
$this->showForm(_('There was a problem with your session token. ' .
'Try again, please.'));
return;
assert($user); // XXX: maybe an error instead...
if (!$this->content) {
+ // TRANS: Form validator error displayed trying to send a direct message without content.
$this->showForm(_('No content!'));
return;
} else {
- $content_shortened = common_shorten_links($this->content);
+ $content_shortened = $user->shortenLinks($this->content);
if (Message::contentTooLong($content_shortened)) {
- $this->showForm(sprintf(_('That\'s too long. ' .
- 'Max message size is %d chars.'),
+ // TRANS: Form validation error displayed when message content is too long.
+ // TRANS: %d is the maximum number of characters for a message.
+ $this->showForm(sprintf(_m('That\'s too long. Maximum message size is %d character.',
+ 'That\'s too long. Maximum message size is %d characters.',
+ Message::maxContent()),
Message::maxContent()));
return;
}
}
if (!$this->other) {
+ // TRANS: Form validation error displayed trying to send a direct message without specifying a recipient.
$this->showForm(_('No recipient specified.'));
return;
} else if (!$user->mutuallySubscribed($this->other)) {
- $this->clientError(_('You can\'t send a message to this user.'), 404);
+ // TRANS: Client error displayed trying to send a direct message to a user while sender and
+ // TRANS: receiver are not subscribed to each other.
+ $this->clientError(_('You cannot send a message to this user.'), 404);
return;
} else if ($user->id == $this->other->id) {
+ // TRANS: Client error displayed trying to send a direct message to self.
$this->clientError(_('Don\'t send a message to yourself; ' .
'just say it to yourself quietly instead.'), 403);
return;
return;
}
- $this->notify($user, $this->other, $message);
+ $message->notify();
if ($this->boolean('ajax')) {
$this->startHTML('text/xml;charset=utf-8');
$this->elementStart('head');
+ // TRANS: Page title after sending a direct message.
$this->element('title', null, _('Message sent'));
$this->elementEnd('head');
$this->elementStart('body');
$this->element('p', array('id' => 'command_result'),
- sprintf(_('Direct message to %s sent'),
+ // TRANS: Confirmation text after sending a direct message.
+ // TRANS: %s is the direct message recipient.
+ sprintf(_('Direct message to %s sent.'),
$this->other->nickname));
$this->elementEnd('body');
$this->elementEnd('html');
{
$this->startHTML('text/xml;charset=utf-8', true);
$this->elementStart('head');
+ // TRANS: Page title after an AJAX error occurred on the "send direct message" page.
$this->element('title', null, _('Ajax Error'));
$this->elementEnd('head');
$this->elementStart('body');
}
$this->msg = $msg;
- $this->showPage();
+ if ($this->trimmed('ajax')) {
+ header('Content-Type: text/xml;charset=utf-8');
+ $this->xw->startDocument('1.0', 'UTF-8');
+ $this->elementStart('html');
+ $this->elementStart('head');
+ // TRANS: Page title on page for sending a direct message.
+ $this->element('title', null, _('New message'));
+ $this->elementEnd('head');
+ $this->elementStart('body');
+ $this->showNoticeForm();
+ $this->elementEnd('body');
+ $this->endHTML();
+ }
+ else {
+ $this->showPage();
+ }
}
function showPageNotice()
}
}
- function notify($from, $to, $message)
- {
- mail_notify_message($message, $from, $to);
- // XXX: Jabber, SMS notifications... probably queued
- }
-
// Do nothing (override)
function showNoticeForm()