Tickets #1610, #1949: show permalinks on Popular Notices, attachments aside sections

These mini notice lists were previously not actually showing links to the notices, making them hard to use. There was code to output a link, but it had been unused due to the config options triggering it not being set. The links also looked bad ("( see )" with bad spacing).
Replaced that code with a call into NoticeListItem's existing code to format a relative timestamp with the notice permalink, which looks nice. Used a div rather than p to avoid clearing the float, so it flows nicely.
This commit is contained in:
Brion Vibber 2011-03-18 13:58:13 -07:00
parent 84e5ca6158
commit 4874ab0e7d

View File

@ -39,6 +39,8 @@ define('NOTICES_PER_SECTION', 6);
* These are the widgets that show interesting data about a person * These are the widgets that show interesting data about a person
* group, or site. * group, or site.
* *
* @todo migrate this to use a variant of NoticeList
*
* @category Widget * @category Widget
* @package StatusNet * @package StatusNet
* @author Evan Prodromou <evan@status.net> * @author Evan Prodromou <evan@status.net>
@ -97,38 +99,14 @@ class NoticeSection extends Section
$this->out->elementStart('p', 'entry-content'); $this->out->elementStart('p', 'entry-content');
$this->out->raw($notice->rendered); $this->out->raw($notice->rendered);
$notice_link_cfg = common_config('site', 'notice_link');
if ('direct' === $notice_link_cfg) {
$this->out->text(' (');
$this->out->element('a', array('href' => $notice->uri), 'see');
$this->out->text(')');
} elseif ('attachment' === $notice_link_cfg) {
if ($count = $notice->hasAttachments()) {
// link to attachment(s) pages
if (1 === $count) {
$f2p = File_to_post::staticGet('post_id', $notice->id);
$href = common_local_url('attachment', array('attachment' => $f2p->file_id));
$att_class = 'attachment';
} else {
$href = common_local_url('attachments', array('notice' => $notice->id));
$att_class = 'attachments';
}
$clip = Theme::path('images/icons/clip.png', 'base');
$this->out->elementStart('a', array('class' => $att_class, 'style' => "font-style: italic;", 'href' => $href, 'title' => "# of attachments: $count"));
$this->out->raw(" ($count&nbsp");
$this->out->element('img', array('style' => 'display: inline', 'align' => 'top', 'width' => 20, 'height' => 20, 'src' => $clip, 'alt' => 'alt'));
$this->out->text(')');
$this->out->elementEnd('a');
} else {
$this->out->text(' (');
$this->out->element('a', array('href' => $notice->uri), 'see');
$this->out->text(')');
}
}
$this->out->elementEnd('p'); $this->out->elementEnd('p');
$this->out->elementStart('div', 'entry_content');
get_class('NoticeList');
$nli = new NoticeListItem($notice, $this->out);
$nli->showNoticeLink();
$this->out->elementEnd('div');
if (!empty($notice->value)) { if (!empty($notice->value)) {
$this->out->elementStart('p'); $this->out->elementStart('p');
$this->out->text($notice->value); $this->out->text($notice->value);