Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Feeds.php
Go to the documentation of this file.
1 <?php
6 namespace Magento\Rss\Block;
7 
15 {
19  protected $_template = 'Magento_Rss::feeds.phtml';
20 
24  protected $rssManager;
25 
31  public function __construct(
32  \Magento\Framework\View\Element\Template\Context $context,
33  \Magento\Framework\App\Rss\RssManagerInterface $rssManager,
34  array $data = []
35  ) {
36  $this->rssManager = $rssManager;
37  parent::__construct($context, $data);
38  }
39 
45  protected function _prepareLayout()
46  {
47  $head = $this->getLayout()->getBlock('head');
48  $feeds = $this->getFeeds();
49  if ($head && !empty($feeds)) {
50  foreach ($feeds as $feed) {
51  if (!isset($feed['group'])) {
52  $head->addRss($feed['label'], $feed['link']);
53  } else {
54  foreach ($feed['feeds'] as $item) {
55  $head->addRss($item['label'], $item['link']);
56  }
57  }
58  }
59  }
60  return parent::_prepareLayout();
61  }
62 
66  public function getFeeds()
67  {
68  $providers = $this->rssManager->getProviders();
69  $feeds = [];
70  $groups = [];
71  foreach ($providers as $provider) {
72  $item = $provider->getFeeds();
73  if (empty($item)) {
74  continue;
75  }
76 
77  if (isset($item['group'])) {
78  $groups[] = $item;
79  } else {
80  $feeds[] = $item;
81  }
82  }
83  $feeds = array_merge($feeds, $groups);
84 
85  return $feeds;
86  }
87 }
__construct(\Magento\Framework\View\Element\Template\Context $context, \Magento\Framework\App\Rss\RssManagerInterface $rssManager, array $data=[])
Definition: Feeds.php:31