From 4874ab0e7d4509dc7c60ba14df5f9d881a4839f9 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Fri, 18 Mar 2011 13:58:13 -0700 Subject: [PATCH] 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. --- lib/noticesection.php | 40 +++++++++------------------------------- 1 file changed, 9 insertions(+), 31 deletions(-) diff --git a/lib/noticesection.php b/lib/noticesection.php index 7157feafc5..ceb0bb36f8 100644 --- a/lib/noticesection.php +++ b/lib/noticesection.php @@ -39,6 +39,8 @@ define('NOTICES_PER_SECTION', 6); * These are the widgets that show interesting data about a person * group, or site. * + * @todo migrate this to use a variant of NoticeList + * * @category Widget * @package StatusNet * @author Evan Prodromou @@ -97,38 +99,14 @@ class NoticeSection extends Section $this->out->elementStart('p', 'entry-content'); $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 "); - $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->elementStart('div', 'entry_content'); + get_class('NoticeList'); + $nli = new NoticeListItem($notice, $this->out); + $nli->showNoticeLink(); + $this->out->elementEnd('div'); + if (!empty($notice->value)) { $this->out->elementStart('p'); $this->out->text($notice->value);