/**
  * Создать ленту
  *
  * @param array $rows
  * @param array $parameters
  *
  * @return sfFeed
  */
 private function buildFeed(array $rows, array $parameters)
 {
     // default parameters
     $parameters = array_merge(sfConfig::get('app_feeds_default_parameters', array()), $parameters);
     $feed = sfFeed::newInstance($parameters['feed_type']);
     $feed->setTitle($parameters['title']);
     $feed->setLink($parameters['link']);
     $feed->setAuthorName($parameters['author_name']);
     if (isset($parameters['author_email'])) {
         $feed->setAuthorEmail($parameters['author_email']);
     }
     foreach ($rows as $row) {
         $item = new sfFeedItem();
         $item->setTitle($row['title']);
         $item->setAuthorName($row['author_name']);
         if (isset($parameters['permalink_url'])) {
             $item->setLink(sprintf('@%s?%s=%s', $parameters['permalink_url'], $parameters['permalink_param_name'], $row[$parameters['permalink_param_column']]));
         }
         if (isset($row['author_email'])) {
             $item->setAuthorEmail($row['author_email']);
         }
         $item->setPubdate(strtotime($row['created_at']) - date('Z', strtotime($row['created_at'])));
         $item->setUniqueId($row['id']);
         $item->setDescription($row['description']);
         $feed->addItem($item);
     }
     $this->feed = $feed;
     $this->getContext()->getResponse()->setContentType($feed->getContentType());
     $this->setTemplate('feed');
 }
Exemple #2
0
 public function addItemFromArray($item_array)
 {
     $item = new sfFeedItem();
     $item->setTitle(isset($item_array['title']) ? $item_array['title'] : '');
     $item->setLink(isset($item_array['link']) ? $item_array['link'] : '');
     $item->setDescription(isset($item_array['description']) ? $item_array['description'] : '');
     $item->setAuthorEmail(isset($item_array['authorEmail']) ? $item_array['authorEmail'] : '');
     $item->setAuthorName(isset($item_array['authorName']) ? $item_array['authorName'] : '');
     $item->setAuthorLink(isset($item_array['authorLink']) ? $item_array['authorLink'] : '');
     $item->setPubdate(isset($item_array['pubdate']) ? $item_array['pubdate'] : '');
     $item->setComments(isset($item_array['comments']) ? $item_array['comments'] : '');
     $item->setUniqueId(isset($item_array['uniqueId']) ? $item_array['uniqueId'] : '');
     $item->setEnclosure(isset($item_array['enclosure']) ? $item_array['enclosure'] : '');
     $item->setCategories(isset($item_array['categories']) ? $item_array['categories'] : '');
     $this->items[] = $item;
 }
 public function executeNoticiesCulturalsLastPosts()
 {
     $this->IDS = 1;
     $feed = new sfAtom1Feed();
     $feed->setTitle('Notícies Culturals de Girona');
     $feed->setLink('http://www.casadecultura.org/noticiesculturals');
     $feed->setAuthorEmail('*****@*****.**');
     $feed->setAuthorName('Giroscopi || Casa de Cultura de Girona');
     $feedImage = new sfFeedImage();
     $feedImage->setFavicon('http://www.casadecultura.cat/images/blogs/Dissenys/noticies_culturals/blog_02.png');
     $feed->setImage($feedImage);
     $C = new Criteria();
     $C = AppBlogsEntriesPeer::getCriteriaActiu($C, $this->IDS);
     $C->add(AppBlogsEntriesPeer::PAGE_ID, 1);
     $C->addDescendingOrderByColumn(AppBlogsEntriesPeer::ID);
     $Q = AppBlogsEntriesPeer::doSelect($C);
     $WEBROOTURL = OptionsPeer::getString('SF_WEBROOTURL', $this->IDS);
     foreach ($Q as $post) {
         $item = new sfFeedItem();
         $item->setTitle($post->getTitle());
         $item->setLink($WEBROOTURL . 'noticiesculturals?NOTICIA_ID=' . $post->getId());
         $item->setAuthorName('Giroscopi');
         $item->setAuthorEmail('*****@*****.**');
         $IMG = $post->getImages();
         if (!$IMG) {
             $url = "";
         } else {
             $url = '<img width="100px" src="' . $WEBROOTURL . 'images/blogs/' . $IMG[0]->getUrl() . '">';
         }
         $url_web = $WEBROOTURL . 'noticiesculturals?NOTICIA_ID=' . $post->getId();
         $item->setUniqueId($url_web);
         $TEXT = "\t\r\n\t    \t\t <table border=\"0\"><tr><td>{$url}</td><td>\t    \t\t \r\n\t\t             <h1>{$post->getTitle()}</h1><br />\r\n\t\t             <h2>{$post->getSubtitle1()}</h2><br />\r\n\t\t             <h3>{$post->getSubtitle2()}</h3><br />\r\n\t\t             <a href=\"{$post->getUrl()}\">Web</a><br />\r\n\t\t             <a href=\"{$url_web}\">Notícia original</a>\r\n\t\t         </td></tr></table>\t             \r\n\t             ";
         $item->setContent($TEXT);
         $feed->addItem($item);
     }
     $this->feed = $feed;
     $this->setLayout('blank');
     $this->setTemplate('RSS');
 }
 public function executeNewCodes()
 {
     $feed = new sfAtom1Feed();
     $feed->setTitle('Hoydaa Snippets');
     $feed->setLink('http://codesnippet.hoydaa.org');
     $feed->setAuthorEmail('*****@*****.**');
     $feed->setAuthorName('Hoydaa Snippets');
     $codes = SnippetPeer::getNewCodes();
     foreach ($codes as $code) {
         $item = new sfFeedItem();
         $item->setTitle($code->getTitle());
         $item->setLink('snippet/show?id=' . $code->getFriendlyUrl());
         $item->setAuthorName($code->getSfGuardUser() ? $code->getSfGuardUser()->getProfile()->getFullName() : $code->getName());
         $item->setAuthorEmail($code->getSfGuardUser() ? $code->getSfGuardUser()->getProfile()->getEmail() : $code->getEmail());
         $item->setPubdate($code->getCreatedAt('U'));
         $item->setUniqueId($code->getId());
         $item->setDescription($code->getSummary());
         $feed->addItem($item);
     }
     $this->feed = $feed;
     $this->setTemplate('feed');
 }
 private static function addToFeed($feed, $reports)
 {
     foreach ($reports as $report) {
         $item = new sfFeedItem();
         $item->setTitle($report->getTitle());
         $item->setLink('report/show?id=' . $report->getFriendlyUrl());
         if ($report->getsfGuardUser()) {
             $item->setAuthorName($report->getsfGuardUser()->getProfile()->getFirstname() . ' ' . $report->getsfGuardUser()->getProfile()->getLastname());
             $item->setAuthorEmail($report->getsfGuardUser()->getProfile()->getEmail());
         }
         $item->setPubdate($report->getCreatedAt('U'));
         $item->setUniqueId($report->getFriendlyUrl());
         $titles = array();
         foreach ($report->getReportQuerys() as $report_query) {
             $titles[] = $report_query->getTitle();
         }
         //print_r($titles);
         $item->setDescription(($report->getDescription() ? $report->getDescription() . " " : "") . 'Queries: ' . implode(', ', $titles));
         $feed->addItem($item);
     }
 }
 public function executeFeed(sfWebRequest $request)
 {
     $format = $request->getParameter('format');
     if ($format === 'atom') {
         $format = 'atom1';
     } elseif ($format === 'rss') {
         $format = 'rss201';
     }
     $feed = sfFeedPeer::newInstance($format);
     $feed->setTitle(sfConfig::get('app_rt_blog_title', 'Latest News'));
     $feed->setLink('http://' . rtSiteToolkit::getCurrentDomain());
     $feed->setAuthorEmail(sfConfig::get('app_rt_blog_author_email'));
     $feed->setAuthorName(sfConfig::get('app_rt_blog_author_name', 'News Editor'));
     //    $feedImage = new sfFeedImage();
     //    $feedImage->setFavicon('http://'.rtSiteToolkit::getCurrentDomain().'/favicon.ico');
     //    $feed->setImage($feedImage);
     $query = Doctrine::getTable('rtBlogPage')->addPublishedQuery();
     $query->limit(20)->orderBy('page.id DESC');
     $posts = $query->execute();
     foreach ($posts as $rt_blog_page) {
         $item = new sfFeedItem();
         $item->setTitle($rt_blog_page->getTitle());
         $item->setLink($this->generateUrl('rt_blog_page_show', $rt_blog_page, array('absolute' => true)));
         $item->setAuthorName($rt_blog_page->getAuthorName());
         $item->setAuthorEmail($rt_blog_page->getAuthorEmail());
         $item->setPubdate(strtotime($rt_blog_page->getCreatedAt()));
         $item->setUniqueId($rt_blog_page->getSlug());
         $item->setDescription($rt_blog_page->getDescription());
         $feed->addItem($item);
     }
     $this->feed = $feed;
 }