X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Finbox.php;h=e9aa34317df4275e8e1f8507c7e55ddfe9339a05;hb=fb4b004435403dd0d4126a0c11c9fa5c557e9dba;hp=c752e404e9dc258b1a313274eaf46331c27d1489;hpb=92d6ae6fae1415958f04718d66632b7128e1cd86;p=quix0rs-gnu-social.git diff --git a/actions/inbox.php b/actions/inbox.php index c752e404e9..e9aa34317d 100644 --- a/actions/inbox.php +++ b/actions/inbox.php @@ -1,9 +1,12 @@ . + * + * @category Message + * @package StatusNet + * @author Evan Prodromou + * @copyright 2008 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); +} + +require_once INSTALLDIR.'/lib/mailbox.php'; + +/** + * action handler for message inbox + * + * @category Message + * @package StatusNet + * @author Evan Prodromou + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + * @see MailboxAction */ +class InboxAction extends MailboxAction +{ + + /** + * Title of the page + * + * @return string page title + */ + function title() + { + if ($this->page > 1) { + // TRANS: Title for all but the first page of the inbox page. + // TRANS: %1$s is the user's nickname, %2$s is the page number. + return sprintf(_('Inbox for %1$s - page %2$d'), $this->user->nickname, + $this->page); + } else { + // TRANS: Title for the first page of the inbox page. + // TRANS: %s is the user's nickname. + return sprintf(_('Inbox for %s'), $this->user->nickname); + } + } + + /** + * Retrieve the messages for this user and this page + * + * Does a query for the right messages + * + * @return Message data object with stream for messages + * + * @see MailboxAction::getMessages() + */ + function getMessages() + { + $message = new Message(); + + $message->to_profile = $this->user->id; + $message->orderBy('created DESC, id DESC'); + $message->limit((($this->page - 1) * MESSAGES_PER_PAGE), + MESSAGES_PER_PAGE + 1); + + if ($message->find()) { + return $message; + } else { + return null; + } + } + + function getMessageList($message) + { + return new InboxMessageList($this, $message); + } + + /** + * Instructions for using this page + * + * @return string localised instructions for using the page + */ + function getInstructions() + { + // TRANS: Instructions for user inbox page. + return _('This is your inbox, which lists your incoming private messages.'); + } +} + +class InboxMessageList extends MessageList +{ + function newItem($message) + { + return new InboxMessageListItem($this->out, $message); + } +} -if (!defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/lib/mailbox.php'); - -class InboxAction extends MailboxAction { - - function get_title($user, $page) { - if ($page > 1) { - $title = sprintf(_("Inbox for %s - page %d"), $user->nickname, $page); - } else { - $title = sprintf(_("Inbox for %s"), $user->nickname); - } - return $title; - } - - function get_messages($user, $page) { - $message = new Message(); - $message->to_profile = $user->id; - $message->orderBy('created DESC, id DESC'); - $message->limit((($page-1)*MESSAGES_PER_PAGE), MESSAGES_PER_PAGE + 1); - - if ($message->find()) { - return $message; - } else { - return NULL; - } - } - - function get_message_profile($message) { - return $message->getFrom(); - } - - function get_instructions() { - return _('This is your inbox, which lists your incoming private messages.'); - } +class InboxMessageListItem extends MessageListItem +{ + /** + * Returns the profile we want to show with the message + * + * @return Profile The profile that matches the message + */ + function getMessageProfile() + { + return $this->message->getFrom(); + } }