* @link http://status.net/
*/
-if (!defined('STATUSNET') && !defined('LACONICA')) {
- exit(1);
-}
+if (!defined('GNUSOCIAL')) { exit(1); }
/**
* Widget for showing a list of feeds
*
* @see Action::showExportList()
*/
-
class FeedList extends Widget
{
var $action = null;
- function __construct($action=null)
+ protected $feeds = null;
+
+ public function __construct(Action $action=null, array $feeds=array())
{
- parent::__construct($action);
- $this->action = $action;
+ parent::__construct($action);
+ $this->action = $action;
+ $this->feeds = $feeds;
}
- function show($feeds)
+ public function show()
{
- $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, &$this->feeds))) {
+ if (!empty($this->feeds)) {
+ $this->out->elementStart('div', array('id' => 'export_data',
+ 'class' => 'section'));
+ // TRANS: Header for feed links (h2).
+ $this->out->element('h2', null, _('Feeds'));
+ $this->out->elementStart('ul', array('class' => 'xoxo'));
- foreach ($feeds as $feed) {
- $this->feedItem($feed);
- }
+ foreach ($this->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, &$this->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;
+ case Feed::JSON:
+ $classname = 'json';
+ 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));
+ }
}
}