return $cnt;
}
+
+ static public function getUrlFromNotice(Notice $notice, $anchor=true)
+ {
+ $conv = self::getKV('id', $notice->conversation);
+ return $conv->getUrl($anchor ? $notice->id : null);
+ }
+
+ public function getUri()
+ {
+ return $this->uri;
+ }
+
+ public function getUrl($noticeId=null)
+ {
+ // FIXME: the URL router should take notice-id as an argument...
+ return common_local_url('conversation', array('id' => $this->id)) .
+ ($noticeId===null ? '' : "#notice-{$noticeId}");
+ }
}
return $this->uri;
}
+ /*
+ * @param $root boolean If true, link to just the conversation root.
+ *
+ * @return URL to conversation
+ */
+ public function getConversationUrl($anchor=true)
+ {
+ return Conversation::getUrlFromNotice($this, $anchor);
+ }
+
+ /*
+ * Get the local representation URL of this notice.
+ */
public function getLocalUrl()
{
return common_local_url('shownotice', array('notice' => $this->id), null, null, false);
}
+ /*
+ * Get the original representation URL of this notice.
+ */
public function getUrl()
{
// The risk is we start having empty urls and non-http uris...
$this->showNoticeLink();
$this->showNoticeSource();
$this->showNoticeLocation();
- $this->showContext();
+ if ($this->notice->hasConversation()) {
+ $this->showContext();
+ }
$this->showRepeat();
Event::handle('EndShowNoticeInfo', array($this));
}
*/
function showContext()
{
- if ($this->notice->hasConversation()) {
- $conv = Conversation::getKV(
- 'id',
- $this->notice->conversation
- );
- $convurl = $conv->uri;
- if (!empty($convurl)) {
- $this->out->text(' ');
- $this->out->element(
- 'a',
- array(
- 'href' => $convurl.'#notice-'.$this->notice->id,
- 'class' => 'response'),
- // TRANS: Addition in notice list item if notice is part of a conversation.
- _('in context')
- );
- } else {
- $msg = sprintf(
- "Couldn't find Conversation ID %d to make 'in context'"
- . "link for Notice ID %d",
- $this->notice->conversation,
- $this->notice->id
- );
- common_log(LOG_WARNING, $msg);
- }
- }
+ $this->out->element('a',
+ array('href' => $this->notice->getConversationUrl(),
+ 'class' => 'conversation'),
+ // TRANS: Addition in notice list item if notice is part of a conversation.
+ _('in context'));
}
/**
'title' => $dt),
common_date_string($notice->created));
$out->elementEnd('a');
- if ($notice->hasConversation()) {
- $conv = Conversation::getKV('id', $notice->conversation);
- $convurl = $conv->uri;
- if (!empty($convurl)) {
- $out->text(' ');
- $out->element('a',
- array('href' => $convurl.'#notice-'.$notice->id),
- // TRANS: Link text for link to conversation view.
- _m('in context'));
- }
- }
+ $out->element('a', array('href' => $notice->getConversationUrl()),
+ // TRANS: Link text for link to conversation view.
+ _m('in context'));
$out->elementEnd('div');
$out->elementEnd('td');
$out->elementEnd('tr');
$arr['url'] = $notice->getUrl();
$arr['html'] = htmlspecialchars($notice->rendered);
$arr['source'] = htmlspecialchars($arr['source']);
- $arr['conversation_url'] = $this->getConversationUrl($notice);
+ $arr['conversation_url'] = $notice->getConversationUrl();
$profile = $notice->getProfile();
$arr['user']['profile_url'] = $profile->profileurl;
$arr['retweeted_status']['source'] = htmlspecialchars($original->source);
$originalProfile = $original->getProfile();
$arr['retweeted_status']['user']['profile_url'] = $originalProfile->profileurl;
- $arr['retweeted_status']['conversation_url'] = $this->getConversationUrl($original);
+ $arr['retweeted_status']['conversation_url'] = $original->getConversationUrl();
}
unset($original);
}
return $tags;
}
- function getConversationUrl($notice)
- {
- $convurl = null;
-
- if ($notice->hasConversation()) {
- $conv = Conversation::getKV(
- 'id',
- $notice->conversation
- );
- $convurl = $conv->uri;
-
- if(empty($convurl)) {
- $msg = sprintf( "Could not find Conversation ID %d to make 'in context'"
- . "link for Notice ID %d.",
- $notice->conversation,
- $notice->id
- );
-
- common_log(LOG_WARNING, $msg);
- } else {
- $convurl .= '#notice-' . $notice->id;
- }
- }
-
- return $convurl;
- }
-
function _getScripts()
{
$urlpath = self::staticPath(str_replace('Plugin','',__CLASS__),
$element = $this->_entryToElement($entry, true);
- $this->assertEquals($conv->uri, ActivityUtils::getLink($element, 'ostatus:conversation'));
+ $this->assertEquals($conv->getUri(), ActivityUtils::getLink($element, 'ostatus:conversation'));
}
function __destruct()
max-width: 440px;
}
-div.entry-content a.response:before {
- content: "(";
+.entry-content a.conversation:before {
+ content: " (";
}
-div.entry-content a.response:after {
+.entry-content a.conversation:after {
content: ")";
}