diff --git a/plugins/DirectMessage/actions/inbox.php b/plugins/DirectMessage/actions/inbox.php index e9aa34317d..1a4de6ccaa 100644 --- a/plugins/DirectMessage/actions/inbox.php +++ b/plugins/DirectMessage/actions/inbox.php @@ -27,11 +27,7 @@ * @link http://status.net/ */ -if (!defined('STATUSNET') && !defined('LACONICA')) { - exit(1); -} - -require_once INSTALLDIR.'/lib/mailbox.php'; +if (!defined('GNUSOCIAL')) { exit(1); } /** * action handler for message inbox diff --git a/plugins/DirectMessage/actions/outbox.php b/plugins/DirectMessage/actions/outbox.php index 6d10c8119f..5b11a1fd22 100644 --- a/plugins/DirectMessage/actions/outbox.php +++ b/plugins/DirectMessage/actions/outbox.php @@ -26,11 +26,8 @@ * @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'; +if (!defined('GNUSOCIAL')) { exit(1); } /** * action handler for message outbox diff --git a/plugins/DirectMessage/classes/Message.php b/plugins/DirectMessage/classes/Message.php index 9c79862e5c..3818a38f48 100644 --- a/plugins/DirectMessage/classes/Message.php +++ b/plugins/DirectMessage/classes/Message.php @@ -1,8 +1,10 @@ . + * + * @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); +} + +/** + * common superclass for direct messages inbox and outbox + * + * @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 InboxAction + * @see OutboxAction + */ +class MailboxAction extends Action +{ + var $page = null; + + function prepare($args) + { + parent::prepare($args); + + $nickname = common_canonical_nickname($this->arg('nickname')); + $this->user = User::getKV('nickname', $nickname); + $this->page = $this->trimmed('page'); + + if (!$this->page) { + $this->page = 1; + } + + common_set_returnto($this->selfUrl()); + + return true; + } + + /** + * output page based on arguments + * + * @param array $args HTTP arguments (from $_REQUEST) + * + * @return void + */ + function handle($args) + { + parent::handle($args); + + if (!$this->user) { + // TRANS: Client error displayed when trying to access a mailbox without providing a user. + $this->clientError(_('No such user.'), 404); + } + + $cur = common_current_user(); + + if (!$cur || $cur->id != $this->user->id) { + // TRANS: Client error displayed when trying to access a mailbox that is not of the logged in user. + $this->clientError(_('Only the user can read their own mailboxes.'), 403); + } + + $this->showPage(); + } + + function showNoticeForm() + { + $message_form = new MessageForm($this); + $message_form->show(); + } + + function showContent() + { + $message = $this->getMessages(); + + if ($message) { + + $ml = $this->getMessageList($message); + + $cnt = $ml->show(); + + $this->pagination($this->page > 1, + $cnt > MESSAGES_PER_PAGE, + $this->page, + $this->trimmed('action'), + array('nickname' => $this->user->nickname)); + } else { + $this->element('p', + 'guide', + // TRANS: Message displayed when there are no private messages in the inbox of a user. + _('You have no private messages. '. + 'You can send private message to engage other users in conversation. '. + 'People can send you messages for your eyes only.')); + } + } + + function getMessages() + { + return null; + } + + function getMessageList($message) + { + return null; + } + + /** + * Show the page notice + * + * Shows instructions for the page + * + * @return void + */ + function showPageNotice() + { + $instr = $this->getInstructions(); + $output = common_markup_to_html($instr); + + $this->elementStart('div', 'instructions'); + $this->raw($output); + $this->elementEnd('div'); + } + + /** + * Mailbox actions are read only + * + * @param array $args other arguments + * + * @return boolean + */ + function isReadOnly($args) + { + return true; + } + + function showObjectNav() + { + $mm = new MailboxMenu($this); + $mm->show(); + } +} diff --git a/plugins/DirectMessage/lib/messageform.php b/plugins/DirectMessage/lib/messageform.php index acd30e3b38..96059e4fac 100644 --- a/plugins/DirectMessage/lib/messageform.php +++ b/plugins/DirectMessage/lib/messageform.php @@ -28,11 +28,7 @@ * @link http://status.net/ */ -if (!defined('STATUSNET') && !defined('LACONICA')) { - exit(1); -} - -require_once INSTALLDIR.'/lib/form.php'; +if (!defined('GNUSOCIAL')) { exit(1); } /** * Form for posting a direct message