Commit c83deecb authored by mmn's avatar mmn

Merge branch 'nightly' of git.gnu.io:gnu/gnu-social into nightly

parents 7ccd3684 5f999e84
......@@ -2775,10 +2775,24 @@ class Notice extends Managed_DataObject
public function getParent()
{
$reply_to_id = null;
if (empty($this->reply_to)) {
throw new NoParentNoticeException($this);
}
return self::getByID($this->reply_to);
// The reply_to ID in the table Notice could exist with a number
// however, the replied to notice might not exist in the database.
// Thus we need to catch the exception and throw the NoParentNoticeException else
// the timeline will not display correctly.
try {
$reply_to_id = self::getByID($this->reply_to);
} catch(Exception $e){
throw new NoParentNoticeException($this);
}
return $reply_to_id;
}
/**
......
<?php
/**
* StatusNet, the distributed open-source microblogging tool
*
* common superclass for direct messages inbox and outbox
*
* 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.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* 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 StatusNet
* @author Evan Prodromou <evan@status.net>
* @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 <evan@status.net>
* @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();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment