/** * {@inheritDoc} */ public function getFeed() { $this->__initializer__ && $this->__initializer__->__invoke($this, 'getFeed', array()); return parent::getFeed(); }
/** * Retrieve detailled information about one feed entry * * @param FeedEntry $entry * * @return array */ private function list_publication_entry(Application $app, FeedEntry $entry) { $items = array_map(function ($item) use($app) { return $this->list_publication_entry_item($app, $item); }, iterator_to_array($entry->getItems())); return ['id' => $entry->getId(), 'author_email' => $entry->getAuthorEmail(), 'author_name' => $entry->getAuthorName(), 'created_on' => $entry->getCreatedOn()->format(DATE_ATOM), 'updated_on' => $entry->getUpdatedOn()->format(DATE_ATOM), 'title' => $entry->getTitle(), 'subtitle' => $entry->getSubtitle(), 'items' => $items, 'feed_id' => $entry->getFeed()->getId(), 'feed_title' => $entry->getFeed()->getTitle(), 'feed_url' => '/feeds/' . $entry->getFeed()->getId() . '/content/', 'url' => '/feeds/entry/' . $entry->getId() . '/']; }
protected function addItem(Application $app, \DOMDocument $document, \DOMNode $node, FeedEntry $entry) { $item = $this->addTag($document, $node, 'item'); $feed = $entry->getFeed(); if ($feed->isPublic()) { $link = $app['feed.link-generator-collection']->generatePublic($feed, FeedLinkGenerator::FORMAT_RSS); } else { $link = $app['feed.link-generator-collection']->generate($feed, $app['authentication']->getUser(), FeedLinkGenerator::FORMAT_RSS); } $this->addTag($document, $item, 'title', $entry->getTitle()); $this->addTag($document, $item, 'description', $entry->getSubtitle()); $author = sprintf('%s (%s)', $entry->getAuthorEmail(), $entry->getAuthorName()); $created_on = $entry->getCreatedOn()->format(DATE_RFC2822); $this->addTag($document, $item, 'author', $author); $this->addTag($document, $item, 'pubDate', $created_on); $this->addTag($document, $item, 'guid', $link->getURI()); $this->addTag($document, $item, 'link', $link->getURI()); /** * Missing : * * category Includes the item in one or more categories. More. * comments URL of a page for comments relating to the item. More. * enclosure Describes a media object that is attached to the item. More. * source The RSS channel that the item came from. More. * */ foreach ($entry->getItems() as $content) { $this->addContent($app, $document, $item, $content); } return $item; }
/** * Retrieve detailled information about one feed entry * * @param FeedEntry $entry * @return array */ protected function list_publication_entry(FeedEntry $entry) { $items = []; foreach ($entry->getItems() as $item) { $items[] = $this->list_publication_entry_item($item); } return ['id' => $entry->getId(), 'author_email' => $entry->getAuthorEmail(), 'author_name' => $entry->getAuthorName(), 'created_on' => $entry->getCreatedOn()->format(DATE_ATOM), 'updated_on' => $entry->getUpdatedOn()->format(DATE_ATOM), 'title' => $entry->getTitle(), 'subtitle' => $entry->getSubtitle(), 'items' => $items, 'feed_id' => $entry->getFeed()->getId(), 'feed_url' => '/feeds/' . $entry->getFeed()->getId() . '/content/', 'url' => '/feeds/entry/' . $entry->getId() . '/']; }