3 * StatusNet, the distributed open-source microblogging tool
5 * action handler for message inbox
9 * LICENCE: This program is free software: you can redistribute it and/or modify
10 * it under the terms of the GNU Affero General Public License as published by
11 * the Free Software Foundation, either version 3 of the License, or
12 * (at your option) any later version.
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU Affero General Public License for more details.
19 * You should have received a copy of the GNU Affero General Public License
20 * along with this program. If not, see <http://www.gnu.org/licenses/>.
24 * @author Evan Prodromou <evan@status.net>
25 * @copyright 2008 StatusNet, Inc.
26 * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
27 * @link http://status.net/
29 if (!defined('STATUSNET') && !defined('LACONICA')) {
33 require_once INSTALLDIR.'/lib/mailbox.php';
36 * action handler for message outbox
40 * @author Evan Prodromou <evan@status.net>
41 * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
42 * @link http://status.net/
45 class OutboxAction extends MailboxAction
50 * @return string page title
54 if ($this->page > 1) {
55 // TRANS: Title for outbox for any but the fist page.
56 // TRANS: %1$s is the user nickname, %2$d is the page number.
57 return sprintf(_('Outbox for %1$s - page %2$d'),
58 $this->user->nickname, $page);
60 // TRANS: Title for first page of outbox.
61 return sprintf(_('Outbox for %s'), $this->user->nickname);
66 * retrieve the messages for this user and this page
68 * Does a query for the right messages
70 * @return Message data object with stream for messages
72 * @see MailboxAction::getMessages()
74 function getMessages()
76 $message = new Message();
78 $message->from_profile = $this->user->id;
79 $message->orderBy('created DESC, id DESC');
80 $message->limit((($this->page - 1) * MESSAGES_PER_PAGE),
81 MESSAGES_PER_PAGE + 1);
83 if ($message->find()) {
90 function getMessageList($message)
92 return new OutboxMessageList($this, $message);
96 * instructions for using this page
98 * @return string localised instructions for using the page
100 function getInstructions()
102 // TRANS: Instructions for outbox.
103 return _('This is your outbox, which lists private messages you have sent.');
107 class OutboxMessageList extends MessageList
109 function newItem($message)
111 return new OutboxMessageListItem($this->out, $message);
115 class OutboxMessageListItem extends MessageListItem
118 * Returns the profile we want to show with the message
120 * @return Profile The profile that matches the message
122 function getMessageProfile()
124 return $this->message->getTo();