Add a parameter named 'inreplyto' to the 'notice/new' page, so urls can inclue 'inreplyto' id's. Also add 'inreplyto' to the urls sent in emails.

This commit is contained in:
Craig Andrews 2009-09-11 22:37:37 -04:00
parent c04987018c
commit 57feeb566a
5 changed files with 17 additions and 5 deletions

View File

@ -431,13 +431,14 @@ class NewnoticeAction extends Action
$content = $this->trimmed('status_textarea');
if (!$content) {
$replyto = $this->trimmed('replyto');
$inreplyto = $this->trimmed('inreplyto');
$profile = Profile::staticGet('nickname', $replyto);
if ($profile) {
$content = '@' . $profile->nickname . ' ';
}
}
$notice_form = new NoticeForm($this, '', $content);
$notice_form = new NoticeForm($this, '', $content, null, $inreplyto);
$notice_form->show();
}

View File

@ -629,7 +629,7 @@ function mail_notify_attn($user, $notice)
$notice->content,//%4
$conversationUrl,//%5
common_local_url('newnotice',
array('replyto' => $sender->nickname)),//%6
array('replyto' => $sender->nickname, 'inreplyto' => $notice->id)),//%6
common_local_url('replies',
array('nickname' => $user->nickname)),//%7
common_local_url('emailsettings'));//%8

View File

@ -69,6 +69,12 @@ class NoticeForm extends Form
var $user = null;
/**
* The notice being replied to
*/
var $inreplyto = null;
/**
* Constructor
*
@ -77,12 +83,13 @@ class NoticeForm extends Form
* @param string $content content to pre-fill
*/
function __construct($out=null, $action=null, $content=null, $user=null)
function __construct($out=null, $action=null, $content=null, $user=null, $inreplyto)
{
parent::__construct($out);
$this->action = $action;
$this->content = $content;
$this->inreplyto = $inreplyto;
if ($user) {
$this->user = $user;
@ -161,7 +168,7 @@ class NoticeForm extends Form
if ($this->action) {
$this->out->hidden('notice_return-to', $this->action, 'returnto');
}
$this->out->hidden('notice_in-reply-to', $this->action, 'inreplyto');
$this->out->hidden('notice_in-reply-to', $this->inreplyto, 'inreplyto');
}
/**

View File

@ -442,7 +442,7 @@ class NoticeListItem extends Widget
{
if (common_logged_in()) {
$reply_url = common_local_url('newnotice',
array('replyto' => $this->profile->nickname));
array('replyto' => $this->profile->nickname, 'inreplyto' => $this->notice->id));
$this->out->elementStart('a', array('href' => $reply_url,
'class' => 'notice_reply',
'title' => _('Reply to this notice')));

View File

@ -175,6 +175,10 @@ class Router
$m->connect('notice/new?replyto=:replyto',
array('action' => 'newnotice'),
array('replyto' => '[A-Za-z0-9_-]+'));
$m->connect('notice/new?replyto=:replyto&inreplyto=:inreplyto',
array('action' => 'newnotice'),
array('replyto' => '[A-Za-z0-9_-]+'),
array('inreplyto' => '[0-9]+'));
$m->connect('notice/:notice/file',
array('action' => 'file'),