rssManager = $rssManager; parent::__construct($context, $data); } /** * Add Link elements to head * * @return $this */ protected function _prepareLayout() { $head = $this->getLayout()->getBlock('head'); $feeds = $this->getFeeds(); if ($head && !empty($feeds)) { foreach ($feeds as $feed) { if (!isset($feed['group'])) { $head->addRss($feed['label'], $feed['link']); } else { foreach ($feed['feeds'] as $item) { $head->addRss($item['label'], $item['link']); } } } } return parent::_prepareLayout(); } /** * @return array */ public function getFeeds() { $providers = $this->rssManager->getProviders(); $feeds = []; $groups = []; foreach ($providers as $provider) { $item = $provider->getFeeds(); if (empty($item)) { continue; } if (isset($item['group'])) { $groups[] = $item; } else { $feeds[] = $item; } } $feeds = array_merge($feeds, $groups); return $feeds; } }