summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Prodromou <evan@prodromou.name>2008-12-22 15:13:04 -0500
committerEvan Prodromou <evan@prodromou.name>2008-12-22 15:13:04 -0500
commit2d0aec255f3cc49e246d972a3482f444c5a44980 (patch)
tree00c70e6c95819a3f67193315d1efae79effe16be
parent073ec99c54ad66e42dea1af62bab646aa9e48564 (diff)
bring messaging section (inbox, outbox, mailbox) into PEAR Code Standards compliance
Actually refactored the method names on these classes to come into complete compliance with the code standards. Untested; maybe there are some bad method names now. darcs-hash:20081222201304-84dde-3effcce0f9ef25fbe0bfebd505037d9ff37252fa.gz
-rw-r--r--_darcs/inventory10
-rw-r--r--_darcs/patches/20081222201304-84dde-3effcce0f9ef25fbe0bfebd505037d9ff37252fa.gzbin0 -> 1931 bytes
-rw-r--r--_darcs/pristine/actions/inbox.php149
-rw-r--r--_darcs/pristine/actions/outbox.php149
-rw-r--r--_darcs/pristine/lib/mailbox.php48
-rw-r--r--_darcs/tentative_pristine560
-rw-r--r--actions/inbox.php149
-rw-r--r--actions/outbox.php149
-rw-r--r--lib/mailbox.php48
9 files changed, 777 insertions, 485 deletions
diff --git a/_darcs/inventory b/_darcs/inventory
index 7f21ac58a..083e53fd0 100644
--- a/_darcs/inventory
+++ b/_darcs/inventory
@@ -35,4 +35,12 @@ Evan Prodromou <evan@prodromou.name>**20081222173249]
[reformat lib/language.php for PEAR Coding Standards
Evan Prodromou <evan@prodromou.name>**20081222193029]
[bring mailbox.php into line with PEAR Coding Standards (mostly)
-Evan Prodromou <evan@prodromou.name>**20081222195041] \ No newline at end of file
+Evan Prodromou <evan@prodromou.name>**20081222195041]
+[bring messaging section (inbox, outbox, mailbox) into PEAR Code Standards compliance
+Evan Prodromou <evan@prodromou.name>**20081222201304
+
+ Actually refactored the method names on these classes to come into
+ complete compliance with the code standards. Untested; maybe there are
+ some bad method names now.
+
+] \ No newline at end of file
diff --git a/_darcs/patches/20081222201304-84dde-3effcce0f9ef25fbe0bfebd505037d9ff37252fa.gz b/_darcs/patches/20081222201304-84dde-3effcce0f9ef25fbe0bfebd505037d9ff37252fa.gz
new file mode 100644
index 000000000..60517eb79
--- /dev/null
+++ b/_darcs/patches/20081222201304-84dde-3effcce0f9ef25fbe0bfebd505037d9ff37252fa.gz
Binary files differ
diff --git a/_darcs/pristine/actions/inbox.php b/_darcs/pristine/actions/inbox.php
index c752e404e..da27814a6 100644
--- a/_darcs/pristine/actions/inbox.php
+++ b/_darcs/pristine/actions/inbox.php
@@ -1,9 +1,12 @@
<?php
-/*
- * Laconica - a distributed open-source microblogging tool
- * Copyright (C) 2008, Controlez-Vous, Inc.
+/**
+ * Laconica, the distributed open-source microblogging tool
*
- * This program is free software: you can redistribute it and/or modify
+ * action handler for message inbox
+ *
+ * PHP version 5
+ *
+ * LICENCE: This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
@@ -15,41 +18,109 @@
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * @category Message
+ * @package Laconica
+ * @author Evan Prodromou <evan@controlyourself.ca>
+ * @copyright 2008 Control Yourself, Inc.
+ * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link http://laconi.ca/
+ */
+
+if (!defined('LACONICA')) {
+ exit(1);
+}
+
+require_once INSTALLDIR.'/lib/mailbox.php';
+
+/**
+ * action handler for message inbox
+ *
+ * @category Message
+ * @package Laconica
+ * @author Evan Prodromou <evan@controlyourself.ca>
+ * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link http://laconi.ca/
+ * @see MailboxAction
*/
-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 InboxAction extends MailboxAction
+{
+ /**
+ * returns the title of the page
+ *
+ * @param User $user current user
+ * @param int $page current page
+ *
+ * @return string localised title of the page
+ *
+ * @see MailboxAction::getTitle()
+ */
+
+ function getTitle($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;
+ }
+
+ /**
+ * retrieve the messages for this user and this page
+ *
+ * Does a query for the right messages
+ *
+ * @param User $user The current user
+ * @param int $page The page the user is on
+ *
+ * @return Message data object with stream for messages
+ *
+ * @see MailboxAction::getMessages()
+ */
+
+ function getMessages($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;
+ }
+ }
+
+ /**
+ * returns the profile we want to show with the message
+ *
+ * For inboxes, we show the sender.
+ *
+ * @param Message $message The message to get the profile for
+ *
+ * @return Profile The profile of the message sender
+ *
+ * @see MailboxAction::getMessageProfile()
+ */
+
+ function getMessageProfile($message)
+ {
+ return $message->getFrom();
+ }
+
+ /**
+ * instructions for using this page
+ *
+ * @return string localised instructions for using the page
+ */
+
+ function getInstructions()
+ {
+ return _('This is your inbox, which lists your incoming private messages.');
+ }
}
diff --git a/_darcs/pristine/actions/outbox.php b/_darcs/pristine/actions/outbox.php
index c48d9c206..9fb6dbf9f 100644
--- a/_darcs/pristine/actions/outbox.php
+++ b/_darcs/pristine/actions/outbox.php
@@ -1,9 +1,12 @@
<?php
-/*
- * Laconica - a distributed open-source microblogging tool
- * Copyright (C) 2008, Controlez-Vous, Inc.
+/**
+ * Laconica, the distributed open-source microblogging tool
*
- * This program is free software: you can redistribute it and/or modify
+ * action handler for message inbox
+ *
+ * PHP version 5
+ *
+ * LICENCE: This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
@@ -15,42 +18,108 @@
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * @category Message
+ * @package Laconica
+ * @author Evan Prodromou <evan@controlyourself.ca>
+ * @copyright 2008 Control Yourself, Inc.
+ * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link http://laconi.ca/
+ */
+
+if (!defined('LACONICA')) {
+ exit(1);
+}
+
+require_once INSTALLDIR.'/lib/mailbox.php';
+
+/**
+ * action handler for message outbox
+ *
+ * @category Message
+ * @package Laconica
+ * @author Evan Prodromou <evan@controlyourself.ca>
+ * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link http://laconi.ca/
+ * @see MailboxAction
*/
-if (!defined('LACONICA')) { exit(1); }
-
-require_once(INSTALLDIR.'/lib/mailbox.php');
-
-class OutboxAction extends MailboxAction {
-
- function get_title($user, $page) {
- if ($page > 1) {
- $title = sprintf(_("Outbox for %s - page %d"), $user->nickname, $page);
- } else {
- $title = sprintf(_("Outbox for %s"), $user->nickname);
- }
- return $title;
- }
-
- function get_messages($user, $page) {
- $message = new Message();
- $message->from_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->getTo();
- }
-
- function get_instructions() {
- return _('This is your outbox, which lists private messages you have sent.');
- }
-
+class OutboxAction extends MailboxAction
+{
+ /**
+ * returns the title of the page
+ *
+ * @param User $user current user
+ * @param int $page current page
+ *
+ * @return string localised title of the page
+ *
+ * @see MailboxAction::getTitle()
+ */
+
+ function getTitle($user, $page)
+ {
+ if ($page > 1) {
+ $title = sprintf(_("Outbox for %s - page %d"), $user->nickname, $page);
+ } else {
+ $title = sprintf(_("Outbox for %s"), $user->nickname);
+ }
+ return $title;
+ }
+
+ /**
+ * retrieve the messages for this user and this page
+ *
+ * Does a query for the right messages
+ *
+ * @param User $user The current user
+ * @param int $page The page the user is on
+ *
+ * @return Message data object with stream for messages
+ *
+ * @see MailboxAction::getMessages()
+ */
+
+ function getMessages($user, $page)
+ {
+ $message = new Message();
+
+ $message->from_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;
+ }
+ }
+
+ /**
+ * returns the profile we want to show with the message
+ *
+ * For outboxes, we show the recipient.
+ *
+ * @param Message $message The message to get the profile for
+ *
+ * @return Profile The profile of the message recipient
+ *
+ * @see MailboxAction::getMessageProfile()
+ */
+
+ function getMessageProfile($message)
+ {
+ return $message->getTo();
+ }
+
+ /**
+ * instructions for using this page
+ *
+ * @return string localised instructions for using the page
+ */
+
+ function getInstructions()
+ {
+ return _('This is your outbox, which lists private messages you have sent.');
+ }
}
diff --git a/_darcs/pristine/lib/mailbox.php b/_darcs/pristine/lib/mailbox.php
index 9039c5fda..bdc360a35 100644
--- a/_darcs/pristine/lib/mailbox.php
+++ b/_darcs/pristine/lib/mailbox.php
@@ -19,7 +19,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
- * @category Action
+ * @category Message
* @package Laconica
* @author Evan Prodromou <evan@controlyourself.ca>
* @copyright 2008 Control Yourself, Inc.
@@ -38,7 +38,7 @@ define('MESSAGES_PER_PAGE', 20);
/**
* common superclass for direct messages inbox and outbox
*
- * @category Action
+ * @category Message
* @package Laconica
* @author Evan Prodromou <evan@controlyourself.ca>
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
@@ -91,7 +91,7 @@ class MailboxAction extends PersonalAction
$page = 1;
}
- $this->show_page($user, $page);
+ $this->showPage($user, $page);
}
/**
@@ -103,7 +103,7 @@ class MailboxAction extends PersonalAction
* @return string localised title of the page
*/
- function get_title($user, $page)
+ function getTitle($user, $page)
{
return '';
}
@@ -114,7 +114,7 @@ class MailboxAction extends PersonalAction
* @return string localised instructions for using the page
*/
- function get_instructions()
+ function getInstructions()
{
return '';
}
@@ -125,7 +125,7 @@ class MailboxAction extends PersonalAction
* @return void
*/
- function show_top()
+ function showTop()
{
$cur = common_current_user();
@@ -143,18 +143,34 @@ class MailboxAction extends PersonalAction
* @return void
*/
- function show_page($user, $page)
+ function showPage($user, $page)
{
- common_show_header($this->get_title($user, $page),
+ common_show_header($this->getTitle($user, $page),
null, null,
- array($this, 'show_top'));
+ array($this, 'showTop'));
- $this->show_box($user, $page);
+ $this->showBox($user, $page);
common_show_footer();
}
/**
+ * retrieve the messages appropriate for this mailbox
+ *
+ * Does a query for the right messages
+ *
+ * @param User $user The current user
+ * @param int $page The page the user is on
+ *
+ * @return Message data object with stream for messages
+ */
+
+ function getMessages($user, $page)
+ {
+ return null;
+ }
+
+ /**
* show the messages for a mailbox in list format
*
* Includes the pagination links (before, after).
@@ -165,9 +181,9 @@ class MailboxAction extends PersonalAction
* @return void
*/
- function show_box($user, $page)
+ function showBox($user, $page)
{
- $message = $this->get_messages($user, $page);
+ $message = $this->getMessages($user, $page);
if ($message) {
@@ -181,7 +197,7 @@ class MailboxAction extends PersonalAction
break;
}
- $this->show_message($message);
+ $this->showMessage($message);
}
common_element_end('ul');
@@ -205,7 +221,7 @@ class MailboxAction extends PersonalAction
* @return Profile The profile that matches the message
*/
- function get_message_profile($message)
+ function getMessageProfile($message)
{
return null;
}
@@ -218,12 +234,12 @@ class MailboxAction extends PersonalAction
* @return void
*/
- function show_message($message)
+ function showMessage($message)
{
common_element_start('li', array('class' => 'message_single',
'id' => 'message-' . $message->id));
- $profile = $this->get_message_profile($message);
+ $profile = $this->getMessageProfile($message);
$avatar = $profile->getAvatar(AVATAR_STREAM_SIZE);
common_element_start('a', array('href' => $profile->profileurl));
diff --git a/_darcs/tentative_pristine b/_darcs/tentative_pristine
index dd4a35214..5a45154e6 100644
--- a/_darcs/tentative_pristine
+++ b/_darcs/tentative_pristine
@@ -1,393 +1,365 @@
-hunk ./lib/mailbox.php 2
+hunk ./actions/inbox.php 2
-/*
- * Laconica - a distributed open-source microblogging tool
- * Copyright (C) 2008, Controlez-Vous, Inc.
+/**
+ * Laconica, the distributed open-source microblogging tool
-hunk ./lib/mailbox.php 5
+hunk ./actions/inbox.php 5
- * This program is free software: you can redistribute it and/or modify
-+ * common superclass for direct messages inbox and outbox
++ * action handler for message inbox
+ *
+ * PHP version 5
+ *
+ * LICENCE: This program is free software: you can redistribute it and/or modify
-hunk ./lib/mailbox.php 21
+hunk ./actions/inbox.php 21
+ *
-+ * @category Action
++ * @category Message
+ * @package Laconica
+ * @author Evan Prodromou <evan@controlyourself.ca>
+ * @copyright 2008 Control Yourself, Inc.
+ * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link http://laconi.ca/
-hunk ./lib/mailbox.php 30
--if (!defined('LACONICA')) { exit(1); }
++ */
++
+if (!defined('LACONICA')) {
+ exit(1);
+}
-hunk ./lib/mailbox.php 34
--require_once(INSTALLDIR.'/lib/personal.php');
-+require_once INSTALLDIR.'/lib/personal.php';
-hunk ./lib/mailbox.php 38
--class MailboxAction extends PersonalAction {
--
-- function handle($args) {
++
++require_once INSTALLDIR.'/lib/mailbox.php';
++
+/**
-+ * common superclass for direct messages inbox and outbox
++ * action handler for message inbox
+ *
-+ * @category Action
++ * @category Message
+ * @package Laconica
+ * @author Evan Prodromou <evan@controlyourself.ca>
+ * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link http://laconi.ca/
-+ * @see InboxAction
-+ * @see OutboxAction
-+ */
-+
-+class MailboxAction extends PersonalAction
++ * @see MailboxAction
+hunk ./actions/inbox.php 47
+-if (!defined('LACONICA')) { exit(1); }
++class InboxAction extends MailboxAction
+{
+ /**
-+ * output page based on arguments
++ * returns the title of the page
+ *
-+ * @param array $args HTTP arguments (from $_REQUEST)
++ * @param User $user current user
++ * @param int $page current page
+ *
-+ * @return void
++ * @return string localised title of the page
++ *
++ * @see MailboxAction::getTitle()
+ */
+
-+ function handle($args)
++ function getTitle($user, $page)
+ {
-+ parent::handle($args);
-+
-+ $nickname = common_canonical_nickname($this->arg('nickname'));
-+
-+ $user = User::staticGet('nickname', $nickname);
-+
-+ if (!$user) {
-+ $this->client_error(_('No such user.'), 404);
-+ return;
++ if ($page > 1) {
++ $title = sprintf(_("Inbox for %s - page %d"), $user->nickname, $page);
++ } else {
++ $title = sprintf(_("Inbox for %s"), $user->nickname);
+ }
++ return $title;
++ }
+
-+ $cur = common_current_user();
-+
-+ if (!$cur || $cur->id != $user->id) {
-+ $this->client_error(_('Only the user can read their own mailboxes.'),
-+ 403);
-+ return;
-+ }
++ /**
++ * retrieve the messages for this user and this page
++ *
++ * Does a query for the right messages
++ *
++ * @param User $user The current user
++ * @param int $page The page the user is on
++ *
++ * @return Message data object with stream for messages
++ *
++ * @see MailboxAction::getMessages()
++ */
+
-+ $profile = $user->getProfile();
++ function getMessages($user, $page)
++ {
++ $message = new Message();
+
-+ if (!$profile) {
-+ $this->server_error(_('User has no profile.'));
-+ return;
-+ }
++ $message->to_profile = $user->id;
+
-+ $page = $this->trimmed('page');
++ $message->orderBy('created DESC, id DESC');
++ $message->limit((($page-1)*MESSAGES_PER_PAGE), MESSAGES_PER_PAGE + 1);
+
-+ if (!$page) {
-+ $page = 1;
++ if ($message->find()) {
++ return $message;
++ } else {
++ return null;
+ }
-+
-+ $this->show_page($user, $page);
+ }
+
+ /**
-+ * returns the title of the page
++ * returns the profile we want to show with the message
+ *
-+ * @param User $user current user
-+ * @param int $page current page
++ * For inboxes, we show the sender.
+ *
-+ * @return string localised title of the page
++ * @param Message $message The message to get the profile for
++ *
++ * @return Profile The profile of the message sender
++ *
++ * @see MailboxAction::getMessageProfile()
+ */
-+
-+ function get_title($user, $page)
+hunk ./actions/inbox.php 111
+-require_once(INSTALLDIR.'/lib/mailbox.php');
++ function getMessageProfile($message)
+ {
-+ return '';
++ return $message->getFrom();
+ }
-+
+hunk ./actions/inbox.php 116
+-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);
+ /**
+ * instructions for using this page
+ *
+ * @return string localised instructions for using the page
+ */
-+
-+ function get_instructions()
+hunk ./actions/inbox.php 122
+- 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.');
+- }
++ function getInstructions()
+ {
-+ return '';
++ return _('This is your inbox, which lists your incoming private messages.');
+ }
+hunk ./actions/outbox.php 2
+-/*
+- * Laconica - a distributed open-source microblogging tool
+- * Copyright (C) 2008, Controlez-Vous, Inc.
++/**
++ * Laconica, the distributed open-source microblogging tool
+hunk ./actions/outbox.php 5
+- * This program is free software: you can redistribute it and/or modify
++ * action handler for message inbox
++ *
++ * PHP version 5
++ *
++ * LICENCE: This program is free software: you can redistribute it and/or modify
+hunk ./actions/outbox.php 21
++ *
++ * @category Message
++ * @package Laconica
++ * @author Evan Prodromou <evan@controlyourself.ca>
++ * @copyright 2008 Control Yourself, Inc.
++ * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
++ * @link http://laconi.ca/
++ */
+
-+ /**
-+ * do structured output for the "instructions" are of the page
-+ *
-+ * @return void
-+ */
-+
-+ function show_top()
-+ {
-+ $cur = common_current_user();
-+
-+ common_message_form(null, $cur, null);
++if (!defined('LACONICA')) {
++ exit(1);
++}
+
-+ $this->views_menu();
-+ }
++require_once INSTALLDIR.'/lib/mailbox.php';
+
++/**
++ * action handler for message outbox
++ *
++ * @category Message
++ * @package Laconica
++ * @author Evan Prodromou <evan@controlyourself.ca>
++ * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
++ * @link http://laconi.ca/
++ * @see MailboxAction
+hunk ./actions/outbox.php 47
+-if (!defined('LACONICA')) { exit(1); }
++class OutboxAction extends MailboxAction
++{
+ /**
-+ * show a full page of output
++ * returns the title of the page
+ *
-+ * @param User $user The current user
-+ * @param int $page The page the user is on
++ * @param User $user current user
++ * @param int $page current page
++ *
++ * @return string localised title of the page
+ *
-+ * @return void
++ * @see MailboxAction::getTitle()
+ */
+
-+ function show_page($user, $page)
++ function getTitle($user, $page)
+ {
-+ common_show_header($this->get_title($user, $page),
-+ null, null,
-+ array($this, 'show_top'));
-+
-+ $this->show_box($user, $page);
-+
-+ common_show_footer();
++ if ($page > 1) {
++ $title = sprintf(_("Outbox for %s - page %d"), $user->nickname, $page);
++ } else {
++ $title = sprintf(_("Outbox for %s"), $user->nickname);
++ }
++ return $title;
+ }
+
+ /**
-+ * show the messages for a mailbox in list format
++ * retrieve the messages for this user and this page
+ *
-+ * Includes the pagination links (before, after).
++ * Does a query for the right messages
+ *
+ * @param User $user The current user
+ * @param int $page The page the user is on
+ *
-+ * @return void
++ * @return Message data object with stream for messages
++ *
++ * @see MailboxAction::getMessages()
+ */
+
-+ function show_box($user, $page)
++ function getMessages($user, $page)
+ {
-+ $message = $this->get_messages($user, $page);
++ $message = new Message();
+
-+ if ($message) {
++ $message->from_profile = $user->id;
++ $message->orderBy('created DESC, id DESC');
++ $message->limit((($page-1)*MESSAGES_PER_PAGE), MESSAGES_PER_PAGE + 1);
+
-+ $cnt = 0;
-+ common_element_start('ul', array('id' => 'messages'));
-+
-+ while ($message->fetch() && $cnt <= MESSAGES_PER_PAGE) {
-+ $cnt++;
-hunk ./lib/mailbox.php 180
-- parent::handle($args);
-+ if ($cnt > MESSAGES_PER_PAGE) {
-+ break;
-+ }
-hunk ./lib/mailbox.php 184
-- $nickname = common_canonical_nickname($this->arg('nickname'));
-- $user = User::staticGet('nickname', $nickname);
-+ $this->show_message($message);
-+ }
-hunk ./lib/mailbox.php 187
-- if (!$user) {
-- $this->client_error(_('No such user.'), 404);
-- return;
-- }
-+ common_element_end('ul');
-hunk ./lib/mailbox.php 189
-- $cur = common_current_user();
--
-- if (!$cur || $cur->id != $user->id) {
-- $this->client_error(_('Only the user can read their own mailboxes.'), 403);
-- return;
-- }
--
-- $profile = $user->getProfile();
-+ common_pagination($page > 1, $cnt > MESSAGES_PER_PAGE,
-+ $page, $this->trimmed('action'),
-+ array('nickname' => $user->nickname));
-hunk ./lib/mailbox.php 193
-- if (!$profile) {
-- $this->server_error(_('User has no profile.'));
-- return;
-- }
-+ $message->free();
-+ unset($message);
++ if ($message->find()) {
++ return $message;
++ } else {
++ return null;
+ }
+ }
-hunk ./lib/mailbox.php 198
-- $page = $this->trimmed('page');
--
-- if (!$page) {
-- $page = 1;
-- }
--
-- $this->show_page($user, $page);
-- }
++
+ /**
+ * returns the profile we want to show with the message
+ *
-+ * For inboxes, we show the sender; for outboxes, the recipient.
++ * For outboxes, we show the recipient.
+ *
+ * @param Message $message The message to get the profile for
+ *
-+ * @return Profile The profile that matches the message
++ * @return Profile The profile of the message recipient
++ *
++ * @see MailboxAction::getMessageProfile()
+ */
-hunk ./lib/mailbox.php 208
-- function get_title($user, $page) {
-- return '';
-- }
-+ function get_message_profile($message)
+hunk ./actions/outbox.php 110
+-require_once(INSTALLDIR.'/lib/mailbox.php');
++ function getMessageProfile($message)
+ {
-+ return null;
++ return $message->getTo();
+ }
-hunk ./lib/mailbox.php 213
-- function get_instructions() {
-- return '';
+hunk ./actions/outbox.php 115
+-class OutboxAction extends MailboxAction {
+-
+- function get_title($user, $page) {
+- if ($page > 1) {
+- $title = sprintf(_("Outbox for %s - page %d"), $user->nickname, $page);
+- } else {
+- $title = sprintf(_("Outbox for %s"), $user->nickname);
+- }
+- return $title;
- }
+-
+- function get_messages($user, $page) {
+- $message = new Message();
+- $message->from_profile = $user->id;
+- $message->orderBy('created DESC, id DESC');
+- $message->limit((($page-1)*MESSAGES_PER_PAGE), MESSAGES_PER_PAGE + 1);
+ /**
-+ * show a single message in the list format
-+ *
-+ * @param Message $message the message to show
++ * instructions for using this page
+ *
-+ * @return void
++ * @return string localised instructions for using the page
+ */
-hunk ./lib/mailbox.php 221
-- function show_top() {
-+ function show_message($message)
-+ {
-+ common_element_start('li', array('class' => 'message_single',
-+ 'id' => 'message-' . $message->id));
-hunk ./lib/mailbox.php 226
-- $cur = common_current_user();
--
-- common_message_form(NULL, $cur, NULL);
--
-- $this->views_menu();
-- }
--
-- function show_page($user, $page) {
-+ $profile = $this->get_message_profile($message);
-hunk ./lib/mailbox.php 228
-- common_show_header($this->get_title($user, $page),
-- NULL, NULL,
-- array($this, 'show_top'));
--
-- $this->show_box($user, $page);
--
-- common_show_footer();
-- }
--
-- function show_box($user, $page) {
--
-- $message = $this->get_messages($user, $page);
--
-- if ($message) {
--
-- $cnt = 0;
-- common_element_start('ul', array('id' => 'messages'));
--
-- while ($message->fetch() && $cnt <= MESSAGES_PER_PAGE) {
-- $cnt++;
--
-- if ($cnt > MESSAGES_PER_PAGE) {
-- break;
-- }
--
-- $this->show_message($message);
-- }
-+ $avatar = $profile->getAvatar(AVATAR_STREAM_SIZE);
-+ common_element_start('a', array('href' => $profile->profileurl));
-+ common_element('img', array('src' => ($avatar) ?
-+ common_avatar_display_url($avatar) :
-+ common_default_avatar(AVATAR_STREAM_SIZE),
-+ 'class' => 'avatar stream',
-+ 'width' => AVATAR_STREAM_SIZE,
-+ 'height' => AVATAR_STREAM_SIZE,
-+ 'alt' =>
-+ ($profile->fullname) ? $profile->fullname :
-+ $profile->nickname));
-+ common_element_end('a');
-+ common_element('a', array('href' => $profile->profileurl,
-+ 'class' => 'nickname'),
-+ $profile->nickname);
-+ // FIXME: URL, image, video, audio
-+ common_element_start('p', array('class' => 'content'));
-+ common_raw($message->rendered);
-+ common_element_end('p');
-hunk ./lib/mailbox.php 248
-- common_element_end('ul');
--
-- common_pagination($page > 1, $cnt > MESSAGES_PER_PAGE,
-- $page, $this->trimmed('action'),
-- array('nickname' => $user->nickname));
--
-- $message->free();
-- unset($message);
+hunk ./actions/outbox.php 121
+- if ($message->find()) {
+- return $message;
+- } else {
+- return NULL;
- }
- }
-+ $messageurl = common_local_url('showmessage',
-+ array('message' => $message->id));
-hunk ./lib/mailbox.php 251
-- # returns the profile we want to show with the message
-
- function get_message_profile($message) {
-- return NULL;
+- return $message->getTo();
- }
-
-- function show_message($message) {
-+ // XXX: we need to figure this out better. Is this right?
-+ if (strcmp($message->uri, $messageurl) != 0 &&
-+ preg_match('/^http/', $message->uri)) {
-+ $messageurl = $message->uri;
-+ }
-+ common_element_start('p', 'time');
-+ common_element('a', array('class' => 'permalink',
-+ 'href' => $messageurl,
-+ 'title' => common_exact_date($message->created)),
-+ common_date_string($message->created));
-+ if ($message->source) {
-+ common_text(_(' from '));
-+ $this->source_link($message->source);
-+ }
-hunk ./lib/mailbox.php 266
-- common_element_start('li', array('class' => 'message_single',
-- 'id' => 'message-' . $message->id));
-+ common_element_end('p');
-hunk ./lib/mailbox.php 268
-- $profile = $this->get_message_profile($message);
--
-- $avatar = $profile->getAvatar(AVATAR_STREAM_SIZE);
-- common_element_start('a', array('href' => $profile->profileurl));
-- common_element('img', array('src' => ($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_STREAM_SIZE),
-- 'class' => 'avatar stream',
-- 'width' => AVATAR_STREAM_SIZE,
-- 'height' => AVATAR_STREAM_SIZE,
-- 'alt' =>
-- ($profile->fullname) ? $profile->fullname :
-- $profile->nickname));
-- common_element_end('a');
-- common_element('a', array('href' => $profile->profileurl,
-- 'class' => 'nickname'),
-- $profile->nickname);
-- # FIXME: URL, image, video, audio
-- common_element_start('p', array('class' => 'content'));
-- common_raw($message->rendered);
-- common_element_end('p');
--
-- $messageurl = common_local_url('showmessage', array('message' => $message->id));
--
-- # XXX: we need to figure this out better. Is this right?
-- if (strcmp($message->uri, $messageurl) != 0 && preg_match('/^http/', $message->uri)) {
-- $messageurl = $message->uri;
-- }
-- common_element_start('p', 'time');
-- common_element('a', array('class' => 'permalink',
-- 'href' => $messageurl,
-- 'title' => common_exact_date($message->created)),
-- common_date_string($message->created));
-- if ($message->source) {
-- common_text(_(' from '));
-- $this->source_link($message->source);
-- }
--
-- common_element_end('p');
--
-- common_element_end('li');
+- function get_instructions() {
+- return _('This is your outbox, which lists private messages you have sent.');
- }
-+ common_element_end('li');
+-
++ function getInstructions()
++ {
++ return _('This is your outbox, which lists private messages you have sent.');
++ }
+hunk ./lib/mailbox.php 22
+- * @category Action
++ * @category Message
+hunk ./lib/mailbox.php 41
+- * @category Action
++ * @category Message
+hunk ./lib/mailbox.php 94
+- $this->show_page($user, $page);
++ $this->showPage($user, $page);
+hunk ./lib/mailbox.php 106
+- function get_title($user, $page)
++ function getTitle($user, $page)
+hunk ./lib/mailbox.php 117
+- function get_instructions()
++ function getInstructions()
+hunk ./lib/mailbox.php 128
+- function show_top()
++ function showTop()
+hunk ./lib/mailbox.php 146
+- function show_page($user, $page)
++ function showPage($user, $page)
+hunk ./lib/mailbox.php 148
+- common_show_header($this->get_title($user, $page),
++ common_show_header($this->getTitle($user, $page),
+hunk ./lib/mailbox.php 150
+- array($this, 'show_top'));
++ array($this, 'showTop'));
+hunk ./lib/mailbox.php 152
+- $this->show_box($user, $page);
++ $this->showBox($user, $page);
+hunk ./lib/mailbox.php 157
++ /**
++ * retrieve the messages appropriate for this mailbox
++ *
++ * Does a query for the right messages
++ *
++ * @param User $user The current user
++ * @param int $page The page the user is on
++ *
++ * @return Message data object with stream for messages
++ */
++
++ function getMessages($user, $page)
++ {
++ return null;
+ }
++
+hunk ./lib/mailbox.php 184
+- function show_box($user, $page)
++ function showBox($user, $page)
+hunk ./lib/mailbox.php 186
+- $message = $this->get_messages($user, $page);
++ $message = $this->getMessages($user, $page);
+hunk ./lib/mailbox.php 200
+- $this->show_message($message);
++ $this->showMessage($message);
+hunk ./lib/mailbox.php 224
+- function get_message_profile($message)
++ function getMessageProfile($message)
+hunk ./lib/mailbox.php 237
+- function show_message($message)
++ function showMessage($message)
+hunk ./lib/mailbox.php 242
+- $profile = $this->get_message_profile($message);
++ $profile = $this->getMessageProfile($message);
diff --git a/actions/inbox.php b/actions/inbox.php
index c752e404e..da27814a6 100644
--- a/actions/inbox.php
+++ b/actions/inbox.php
@@ -1,9 +1,12 @@
<?php
-/*
- * Laconica - a distributed open-source microblogging tool
- * Copyright (C) 2008, Controlez-Vous, Inc.
+/**
+ * Laconica, the distributed open-source microblogging tool
*
- * This program is free software: you can redistribute it and/or modify
+ * action handler for message inbox
+ *
+ * PHP version 5
+ *
+ * LICENCE: This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
@@ -15,41 +18,109 @@
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * @category Message
+ * @package Laconica
+ * @author Evan Prodromou <evan@controlyourself.ca>
+ * @copyright 2008 Control Yourself, Inc.
+ * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link http://laconi.ca/
+ */
+
+if (!defined('LACONICA')) {
+ exit(1);
+}
+
+require_once INSTALLDIR.'/lib/mailbox.php';
+
+/**
+ * action handler for message inbox
+ *
+ * @category Message
+ * @package Laconica
+ * @author Evan Prodromou <evan@controlyourself.ca>
+ * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link http://laconi.ca/
+ * @see MailboxAction
*/
-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 InboxAction extends MailboxAction
+{
+ /**
+ * returns the title of the page
+ *
+ * @param User $user current user
+ * @param int $page current page
+ *
+ * @return string localised title of the page
+ *
+ * @see MailboxAction::getTitle()
+ */
+
+ function getTitle($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;
+ }
+
+ /**
+ * retrieve the messages for this user and this page
+ *
+ * Does a query for the right messages
+ *
+ * @param User $user The current user
+ * @param int $page The page the user is on
+ *
+ * @return Message data object with stream for messages
+ *
+ * @see MailboxAction::getMessages()
+ */
+
+ function getMessages($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;
+ }
+ }
+
+ /**
+ * returns the profile we want to show with the message
+ *
+ * For inboxes, we show the sender.
+ *
+ * @param Message $message The message to get the profile for
+ *
+ * @return Profile The profile of the message sender
+ *
+ * @see MailboxAction::getMessageProfile()
+ */
+
+ function getMessageProfile($message)
+ {
+ return $message->getFrom();
+ }
+
+ /**
+ * instructions for using this page
+ *
+ * @return string localised instructions for using the page
+ */
+
+ function getInstructions()
+ {
+ return _('This is your inbox, which lists your incoming private messages.');
+ }
}
diff --git a/actions/outbox.php b/actions/outbox.php
index c48d9c206..9fb6dbf9f 100644
--- a/actions/outbox.php
+++ b/actions/outbox.php
@@ -1,9 +1,12 @@
<?php
-/*
- * Laconica - a distributed open-source microblogging tool
- * Copyright (C) 2008, Controlez-Vous, Inc.
+/**
+ * Laconica, the distributed open-source microblogging tool
*
- * This program is free software: you can redistribute it and/or modify
+ * action handler for message inbox
+ *
+ * PHP version 5
+ *
+ * LICENCE: This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
@@ -15,42 +18,108 @@
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * @category Message
+ * @package Laconica
+ * @author Evan Prodromou <evan@controlyourself.ca>
+ * @copyright 2008 Control Yourself, Inc.
+ * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link http://laconi.ca/
+ */
+
+if (!defined('LACONICA')) {
+ exit(1);
+}
+
+require_once INSTALLDIR.'/lib/mailbox.php';
+
+/**
+ * action handler for message outbox
+ *
+ * @category Message
+ * @package Laconica
+ * @author Evan Prodromou <evan@controlyourself.ca>
+ * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link http://laconi.ca/
+ * @see MailboxAction
*/
-if (!defined('LACONICA')) { exit(1); }
-
-require_once(INSTALLDIR.'/lib/mailbox.php');
-
-class OutboxAction extends MailboxAction {
-
- function get_title($user, $page) {
- if ($page > 1) {
- $title = sprintf(_("Outbox for %s - page %d"), $user->nickname, $page);
- } else {
- $title = sprintf(_("Outbox for %s"), $user->nickname);
- }
- return $title;
- }
-
- function get_messages($user, $page) {
- $message = new Message();
- $message->from_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->getTo();
- }
-
- function get_instructions() {
- return _('This is your outbox, which lists private messages you have sent.');
- }
-
+class OutboxAction extends MailboxAction
+{
+ /**
+ * returns the title of the page
+ *
+ * @param User $user current user
+ * @param int $page current page
+ *
+ * @return string localised title of the page
+ *
+ * @see MailboxAction::getTitle()
+ */
+
+ function getTitle($user, $page)
+ {
+ if ($page > 1) {
+ $title = sprintf(_("Outbox for %s - page %d"), $user->nickname, $page);
+ } else {
+ $title = sprintf(_("Outbox for %s"), $user->nickname);
+ }
+ return $title;
+ }
+
+ /**
+ * retrieve the messages for this user and this page
+ *
+ * Does a query for the right messages
+ *
+ * @param User $user The current user
+ * @param int $page The page the user is on
+ *
+ * @return Message data object with stream for messages
+ *
+ * @see MailboxAction::getMessages()
+ */
+
+ function getMessages($user, $page)
+ {
+ $message = new Message();
+
+ $message->from_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;
+ }
+ }
+
+ /**
+ * returns the profile we want to show with the message
+ *
+ * For outboxes, we show the recipient.
+ *
+ * @param Message $message The message to get the profile for
+ *
+ * @return Profile The profile of the message recipient
+ *
+ * @see MailboxAction::getMessageProfile()
+ */
+
+ function getMessageProfile($message)
+ {
+ return $message->getTo();
+ }
+
+ /**
+ * instructions for using this page
+ *
+ * @return string localised instructions for using the page
+ */
+
+ function getInstructions()
+ {
+ return _('This is your outbox, which lists private messages you have sent.');
+ }
}
diff --git a/lib/mailbox.php b/lib/mailbox.php
index 9039c5fda..bdc360a35 100644
--- a/lib/mailbox.php
+++ b/lib/mailbox.php
@@ -19,7 +19,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
- * @category Action
+ * @category Message
* @package Laconica
* @author Evan Prodromou <evan@controlyourself.ca>
* @copyright 2008 Control Yourself, Inc.
@@ -38,7 +38,7 @@ define('MESSAGES_PER_PAGE', 20);
/**
* common superclass for direct messages inbox and outbox
*
- * @category Action
+ * @category Message
* @package Laconica
* @author Evan Prodromou <evan@controlyourself.ca>
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
@@ -91,7 +91,7 @@ class MailboxAction extends PersonalAction
$page = 1;
}
- $this->show_page($user, $page);
+ $this->showPage($user, $page);
}
/**
@@ -103,7 +103,7 @@ class MailboxAction extends PersonalAction
* @return string localised title of the page
*/
- function get_title($user, $page)
+ function getTitle($user, $page)
{
return '';
}
@@ -114,7 +114,7 @@ class MailboxAction extends PersonalAction
* @return string localised instructions for using the page
*/
- function get_instructions()
+ function getInstructions()
{
return '';
}
@@ -125,7 +125,7 @@ class MailboxAction extends PersonalAction
* @return void
*/
- function show_top()
+ function showTop()
{
$cur = common_current_user();
@@ -143,18 +143,34 @@ class MailboxAction extends PersonalAction
* @return void
*/
- function show_page($user, $page)
+ function showPage($user, $page)
{
- common_show_header($this->get_title($user, $page),
+ common_show_header($this->getTitle($user, $page),
null, null,
- array($this, 'show_top'));
+ array($this, 'showTop'));
- $this->show_box($user, $page);
+ $this->showBox($user, $page);
common_show_footer();
}
/**
+ * retrieve the messages appropriate for this mailbox
+ *
+ * Does a query for the right messages
+ *
+ * @param User $user The current user
+ * @param int $page The page the user is on
+ *
+ * @return Message data object with stream for messages
+ */
+
+ function getMessages($user, $page)
+ {
+ return null;
+ }
+
+ /**
* show the messages for a mailbox in list format
*
* Includes the pagination links (before, after).
@@ -165,9 +181,9 @@ class MailboxAction extends PersonalAction
* @return void
*/
- function show_box($user, $page)
+ function showBox($user, $page)
{
- $message = $this->get_messages($user, $page);
+ $message = $this->getMessages($user, $page);
if ($message) {
@@ -181,7 +197,7 @@ class MailboxAction extends PersonalAction
break;
}
- $this->show_message($message);
+ $this->showMessage($message);
}
common_element_end('ul');
@@ -205,7 +221,7 @@ class MailboxAction extends PersonalAction
* @return Profile The profile that matches the message
*/
- function get_message_profile($message)
+ function getMessageProfile($message)
{
return null;
}
@@ -218,12 +234,12 @@ class MailboxAction extends PersonalAction
* @return void
*/
- function show_message($message)
+ function showMessage($message)
{
common_element_start('li', array('class' => 'message_single',
'id' => 'message-' . $message->id));
- $profile = $this->get_message_profile($message);
+ $profile = $this->getMessageProfile($message);
$avatar = $profile->getAvatar(AVATAR_STREAM_SIZE);
common_element_start('a', array('href' => $profile->profileurl));