public function executeFeed($request) { $feed = new sfRssDomFeed(); $link = '@homepage'; if ($request->hasParameter('slug') && $request->hasParameter('podcast_slug')) { $podcast = CommonBehavior::retrieveBySlug('PodcastPeer', $request->getParameter('podcast_slug')); $c = new Criteria(); if (!$podcast) { $this->forward404(); } $link = $podcast->getLink() ? $podcast->getLink() : $podcast->getUri(); $podcast_feed = CommonBehavior::retrieveBySlug('FeedPeer', $request->getParameter('slug'), $c); } $format = $request->getParameter('format'); // not "content format" but "delivery method enclosure format" $feed->initialize(array('title' => $podcast->getTitle(), 'link' => $link, 'generator' => sfConfig::get('app_version_url'), 'authorEmail' => $podcast->getEmail(), 'authorName' => $podcast->getAuthor(), 'description' => $podcast->getDescription(), 'image' => new sfFeedImage(array("image" => $podcast->getImageUrl())))); $pager = $this->getPager($podcast_feed->getId()); $pager->init(); $result_set = $pager->getResults(); $objects = array(); // temporary until we port convertObjectsToItems into sfDomFeed foreach ($result_set as $torrent) { $torrent->setFeedEnclosure($format); $objects[] = new sfDomFeedItem($torrent, array('enclosure' => new sfDomFeedEnclosure($torrent))); } $feed->addItems($objects); $this->feed = $feed; }