diff options
-rw-r--r-- | EVENTS.txt | 16 | ||||
-rw-r--r-- | lib/feedlist.php | 66 |
2 files changed, 53 insertions, 29 deletions
diff --git a/EVENTS.txt b/EVENTS.txt index fd2bdb9d5..cad93a712 100644 --- a/EVENTS.txt +++ b/EVENTS.txt @@ -1086,3 +1086,19 @@ StartDeleteOwnNotice: when a user starts to delete their own notice EndDeleteOwnNotice: when a user has deleted their own notice - $user: the user doing the delete - $notice: the notice being deleted + +StartShowFeedLinkList: before showing the feed list in the sidebar +- $action: action being executed +- $feeds: list of feeds to show + +EndShowFeedLinkList: after showing the feed list in the sidebar +- $action: action being executed +- $feeds: list of feeds shown + +StartShowFeedLink: before showing an individual feed item +- $action: action being executed +- $feed: feed to show + +EndShowFeedLink: after showing an individual feed +- $action: action being executed +- $feed: feed to show diff --git a/lib/feedlist.php b/lib/feedlist.php index 7493e3575..4aacf0b3d 100644 --- a/lib/feedlist.php +++ b/lib/feedlist.php @@ -59,42 +59,50 @@ class FeedList extends Widget function show($feeds) { - $this->out->elementStart('div', array('id' => 'export_data', - 'class' => 'section')); - $this->out->element('h2', null, _('Feeds')); - $this->out->elementStart('ul', array('class' => 'xoxo')); + if (Event::handle('StartShowFeedLinkList', array($this->action, &$feeds))) { + if (!empty($feeds)) { + $this->out->elementStart('div', array('id' => 'export_data', + 'class' => 'section')); + $this->out->element('h2', null, _('Feeds')); + $this->out->elementStart('ul', array('class' => 'xoxo')); - foreach ($feeds as $feed) { - $this->feedItem($feed); - } + foreach ($feeds as $feed) { + $this->feedItem($feed); + } - $this->out->elementEnd('ul'); - $this->out->elementEnd('div'); + $this->out->elementEnd('ul'); + $this->out->elementEnd('div'); + } + Event::handle('EndShowFeedLinkList', array($this->action, &$feeds)); + } } function feedItem($feed) { - $classname = null; + if (Event::handle('StartShowFeedLink', array($this->action, &$feed))) { + $classname = null; - switch ($feed->type) { - case Feed::RSS1: - case Feed::RSS2: - $classname = 'rss'; - break; - case Feed::ATOM: - $classname = 'atom'; - break; - case Feed::FOAF: - $classname = 'foaf'; - break; - } + switch ($feed->type) { + case Feed::RSS1: + case Feed::RSS2: + $classname = 'rss'; + break; + case Feed::ATOM: + $classname = 'atom'; + break; + case Feed::FOAF: + $classname = 'foaf'; + break; + } - $this->out->elementStart('li'); - $this->out->element('a', array('href' => $feed->url, - 'class' => $classname, - 'type' => $feed->mimeType(), - 'title' => $feed->title), - $feed->typeName()); - $this->out->elementEnd('li'); + $this->out->elementStart('li'); + $this->out->element('a', array('href' => $feed->url, + 'class' => $classname, + 'type' => $feed->mimeType(), + 'title' => $feed->title), + $feed->typeName()); + $this->out->elementEnd('li'); + Event::handle('EndShowFeedLink', array($this->action, $feed)); + } } } |