예제 #1
0
 /**
  * Get xml from feed data
  *
  * @codeCoverageIgnore due to static method call (\Zend_Feed::importArray)
  *
  * @param FeedInterface $feed
  * @return string
  */
 public function toXml(FeedInterface $feed)
 {
     $data = ['title' => $feed->getTitle(), 'link' => $feed->getLink(), 'charset' => 'UTF-8', 'description' => $feed->getDescription()];
     $rssFeedFromArray = $this->zendFeed->importArray($data, 'rss');
     $xml = $rssFeedFromArray->saveXML();
     return $xml;
 }
예제 #2
0
 function recentlyAdded()
 {
     // redirect user if not logged in
     if ($this->request->config->get('pawtucket_requires_login') && !$this->request->isLoggedIn() || $this->request->config->get('show_bristol_only') && !$this->request->isLoggedIn()) {
         $this->response->setRedirect(caNavUrl($this->request, "", "LoginReg", "form"));
     } elseif ($this->request->config->get('show_bristol_only') && $this->request->isLoggedIn()) {
         $this->response->setRedirect(caNavUrl($this->request, "bristol", "Show", "Index"));
     }
     $t_object = new ca_objects();
     $va_recently_added_objects = $t_object->getRecentlyAddedItems(25, array('checkAccess' => caGetUserAccessValues($this->request)));
     $va_entries = array();
     $va_object_ids = array();
     foreach ($va_recently_added_objects as $va_object) {
         $va_object_ids[] = $va_object['object_id'];
     }
     $va_labels = $t_object->getPreferredDisplayLabelsForIDs($va_object_ids);
     // TODO: Need to get object descriptions and last update times properly
     foreach ($va_labels as $vn_object_id => $vs_label) {
         $va_entries[] = array('title' => $vs_label, 'link' => $vs_link = $this->request->config->get('site_host') . caNavUrl($this->request, '', 'Detail/Object', 'Index', array('object_id' => $vn_object_id)), 'guid' => $vs_link, 'lastUpdate' => time(), 'description' => '', 'pubDate' => time());
     }
     $va_feed_data = array('title' => _t('Recently added'), 'link' => $this->request->getRequestUrl(true), 'charset' => 'UTF-8', 'entries' => $va_entries);
     $o_feed = Zend_Feed::importArray($va_feed_data, 'rss');
     $this->view->setVar('feed', $o_feed);
     $this->render('Feed/feed_recently_added_xml.php');
 }
예제 #3
0
 public function rssAction()
 {
     // build the feed array
     $feedArray = array();
     // the title and link are required
     $feedArray['title'] = 'Recent Pages';
     $feedArray['link'] = 'http://localhost';
     // the published timestamp is optional
     $feedArray['published'] = Zend_Date::now()->toString(Zend_Date::TIMESTAMP);
     // the charset is required
     $feedArray['charset'] = 'UTF8';
     // first get the most recent pages
     $mdlPage = new Model_Page();
     $recentPages = $mdlPage->getRecentPages();
     //add the entries
     if (is_array($recentPages) && count($recentPages) > 0) {
         foreach ($recentPages as $page) {
             // create the entry
             $entry = array();
             $entry['guid'] = $page->id;
             $entry['title'] = $page->headline;
             $entry['link'] = 'http://localhost/page/open/title/' . $page->name;
             $entry['description'] = $page->description;
             $entry['content'] = $page->content;
             // add it to the feed
             $feedArray['entries'][] = $entry;
         }
     }
     // create an RSS feed from the array
     $feed = Zend_Feed::importArray($feedArray, 'rss');
     // now send the feed
     $this->_helper->viewRenderer->setNoRender();
     $this->_helper->layout->disableLayout();
     $feed->send();
 }
예제 #4
0
 private function _getFeedXml()
 {
     $host = isset($_SERVER['HTTP_HOST']) ? 'http://' . $_SERVER['HTTP_HOST'] : '';
     $feedArray = array('title' => $this->_getRssTitle(), 'link' => $host . $this->getUrl(), 'charset' => 'utf-8', 'description' => '', 'copyright' => Zend_Registry::get('config')->application->name, 'generator' => 'Koala Framework', 'language' => $this->getData()->getLanguage(), 'entries' => $this->_getRssEntries());
     $feed = Zend_Feed::importArray($feedArray, 'rss');
     return $feed->saveXml();
 }
예제 #5
0
 public static function feed()
 {
     $ncsu = new Tweetgater_Twitter();
     $down = false;
     try {
         $timeline = $ncsu->getTimeline();
     } catch (Exception $e) {
         $down = true;
     }
     $config = $ncsu->getConfigFile();
     $fa = array();
     $fa['title'] = $config->feed->title;
     $fa['link'] = $config->site->url . '/feed.php';
     $fa['charset'] = 'UTF-8';
     $fa['author'] = $config->feed->title;
     $entries = array();
     if (!$down) {
         foreach ($timeline as $t) {
             $temp = array();
             $temp['title'] = 'Tweet by @' . $t['user-screen_name'];
             $temp['link'] = 'http://www.twitter.com/' . $t['user-screen_name'] . '/status/' . $t['id'];
             $temp['description'] = $t['text'] . '<br /><br />Follow @<a href="http://www.twitter.com/' . $t['user-screen_name'] . '">' . $t['user-screen_name'] . '</a>';
             $temp['lastUpdate'] = strtotime($t['created_at']);
             $entries[] = $temp;
         }
     }
     $fa['entries'] = $entries;
     // importing a rss feed from an array
     $rssFeed = Zend_Feed::importArray($fa, 'rss');
     // send http headers and dump the feed
     $rssFeed->send();
 }
예제 #6
0
 function recentlyAdded()
 {
     // redirect user if not logged in
     if ($this->request->config->get('pawtucket_requires_login') && !$this->request->isLoggedIn() || $this->request->config->get('show_bristol_only') && !$this->request->isLoggedIn()) {
         $this->response->setRedirect(caNavUrl($this->request, "", "LoginReg", "form"));
     } elseif ($this->request->config->get('show_bristol_only') && $this->request->isLoggedIn()) {
         $this->response->setRedirect(caNavUrl($this->request, "bristol", "Show", "Index"));
     }
     $t_object = new ca_objects();
     if (($vn_num_items = (int) $this->request->config->get('rss_number_of_items')) <= 0) {
         $vn_num_items = 10;
     }
     $va_recently_added_objects = $t_object->getRecentlyAddedItems($vn_num_items, array('checkAccess' => caGetUserAccessValues($this->request)));
     $va_entries = array();
     $va_object_ids = array();
     foreach ($va_recently_added_objects as $va_object) {
         $va_object_ids[] = $va_object['object_id'];
     }
     $qr_res = $t_object->makeSearchResult('ca_objects', $va_object_ids);
     $vs_description_bundle = $this->request->config->get('rss_description');
     while ($qr_res->nextHit()) {
         $vn_object_id = $qr_res->get('ca_objects.object_id');
         if (!($vn_creation_time = $t_object->getCreationTimestamp($vn_object_id, array('timestampOnly' => true)))) {
             $vn_creation_time = time();
         }
         if (!($vn_update_time = $t_object->getLastChangeTimestamp($vn_object_id, array('timestampOnly' => true)))) {
             $vn_update_time = time();
         }
         $va_entries[] = array('title' => $qr_res->get('ca_objects.preferred_labels.name'), 'link' => $vs_link = $this->request->config->get('site_host') . caNavUrl($this->request, '', 'Detail/Object', 'Index', array('object_id' => $vn_object_id)), 'guid' => $vs_link, 'lastUpdate' => $vn_update_time, 'description' => $vs_description_bundle ? $qr_res->getMediaTag("ca_object_representations.media", "preview") . "\n" . $qr_res->get($vs_description_bundle) : '', 'pubDate' => $vn_creation_time);
     }
     $va_feed_data = array('title' => _t('Recently added'), 'link' => $this->request->getRequestUrl(true), 'charset' => 'UTF-8', 'entries' => $va_entries);
     $o_feed = Zend_Feed::importArray($va_feed_data, 'rss');
     $this->view->setVar('feed', $o_feed);
     $this->render('Feed/feed_recently_added_xml.php');
 }
예제 #7
0
 public function feedAction()
 {
     $woeid = $this->_request->getParam('woeid');
     $ad_type = $this->_request->getParam('ad_type');
     $status = $this->_request->getParam('status');
     $modelAd = new Model_Ad();
     $this->ads = $modelAd->getAdList($woeid, $ad_type, $status, 35);
     $rss['title'] = $this->view->translate($ad_type) . ' ' . $this->view->translate((string) $status) . ' - ' . $this->_helper->woeid->name($woeid, $this->lang) . ' | nolotiro.org';
     $rss['link'] = 'http://' . $_SERVER['HTTP_HOST'] . '/' . $this->lang . '/rss/feed/woeid/' . $woeid . '/ad_type/' . $ad_type . '/status/' . $status;
     $rss['charset'] = 'utf-8';
     $rss['description'] = 'nolotiro.org - ' . $this->_helper->woeid->name($woeid, $this->lang);
     $rss['language'] = $this->lang;
     $rss['generator'] = 'nolotiro.org';
     $rss['entries'] = array();
     foreach ($this->ads as $value) {
         $entry = array();
         $entry['title'] = $value['title'];
         $entry['link'] = 'http://' . $_SERVER['HTTP_HOST'] . '/' . $this->lang . '/ad/' . $value['id'] . '/' . $this->view->slugTitle($value['title']);
         $entry['description'] = $this->view->escapeEmail($value['body']);
         $entry['lastUpdate'] = strtotime($value['date_created']);
         $rss['entries'][] = $entry;
     }
     $feedObj = Zend_Feed::importArray($rss, 'rss');
     return $feedObj->send();
 }
 /**
  * Display RSS Data
  */
 public function displayRss($array, $type = 'rss')
 {
     $this->loadZend();
     $feed = Zend_Feed::importArray($array, $type);
     $feed->send();
     exit;
 }
 public function rssAction()
 {
     $this->_helper->layout->setLayout('rss');
     //Create an array for our feed
     $feed = array();
     //Setup some info about our feed
     $feed['title'] = "IllustratedPortland.com RSS Feed";
     $feed['link'] = 'feed://illustratedportland.com/blog/rss';
     $feed['charset'] = 'utf-8';
     $feed['language'] = 'en-us';
     //$feed['published'] = time();
     $feed['entries'] = array();
     //Holds the actual items
     foreach ($this->blog_model->getAll() as $story) {
         $entry = array();
         //Container for the entry before we add it on
         $entry['title'] = $story['title'];
         //The title that will be displayed for the entry
         $entry['guide'] = $story['id'];
         $entry['published'] = $story['date'];
         $entry['link'] = 'http://illustratedportland.com/blog/single/id/' . $story['id'];
         //The url of the entry
         $entry['url'] = 'http://illustratedportland.com/blog/single/id/' . $story['id'];
         //The url of the entry
         $entry['description'] = $story['description'];
         //Short description of the entry
         $entry['content'] = $story['content'];
         //Long description of the entry
         $feed['entries'][] = $entry;
     }
     $feedObj = Zend_Feed::importArray($feed, 'rss');
     $this->view->feed = $feedObj->send();
 }
예제 #10
0
 public function indexAction()
 {
     $format = $this->_request->getParam('format');
     if (in_array($format, array('georss', 'rss', 'atom'))) {
         $news = new News();
         $news = $news->getNews();
         // prepare an array that our feed is based on
         $feedArray = array('title' => 'Latest news from the Portable Antiquities Scheme', 'link' => Zend_Registry::get('siteurl') . '/news/', 'charset' => 'utf-8', 'description' => 'The latest news stories published by the Portable Antiquities Scheme', 'author' => 'The Portable Antiquities Scheme', 'image' => Zend_Registry::get('siteurl') . '/images/logos/pas.gif', 'email' => '*****@*****.**', 'copyright' => 'Creative Commons Licenced', 'generator' => 'The Scheme database powered by Zend Framework and Dan\'s magic', 'language' => 'en', 'entries' => array());
         foreach ($news as $new) {
             $auth = Zend_Auth::getInstance();
             //$latlong = $new['declat'] .' ' .$new['declong'];
             $feedArray['entries'][] = array('title' => $new['title'], 'link' => Zend_Registry::get('siteurl') . '/news/story/id/' . $new['id'], 'guid' => Zend_Registry::get('siteurl') . '/news/story/id/' . $new['id'], 'description' => $this->EllipsisString($new['contents'], 200), 'lastUpdate' => strtotime($new['datePublished']));
             /*if($object['i'] != NULL) {
             		$feedArray['enclosure'][] = array(array(
             		'url' => 'http://www.findsdatabase.org.uk/view/thumbnails/pas/'.$object['i'].'.jpg',
             		'type' => 'image/jpeg' //always sets to jpeg as the thumbnails are derived from there.
             		));
             		}*/
         }
         $feed = Zend_Feed::importArray($feedArray, $format);
         $feed->send();
     } else {
         $this->_redirect('/news/');
     }
 }
예제 #11
0
파일: Rss.php 프로젝트: blazeriaz/youguess
 public function createRssXml()
 {
     try {
         $rssFeedFromArray = Zend_Feed::importArray($this->getFeedArray(), 'rss');
         return $rssFeedFromArray->saveXML();
     } catch (Exception $e) {
         return Mage::helper('rss')->__('Error in processing xml. %s', $e->getMessage());
     }
 }
예제 #12
0
 public function render(array $records)
 {
     $entries = array();
     foreach ($records as $record) {
         $entries[] = $this->itemToRss($record);
         release_object($record);
     }
     $headers = $this->buildRSSHeaders();
     $headers['entries'] = $entries;
     $feed = Zend_Feed::importArray($headers, 'rss');
     return $feed->saveXML();
 }
예제 #13
0
 protected function _generateFeed($news)
 {
     $this->_helper->layout->disableLayout();
     $settings = Zend_Registry::get('environmentSettings');
     $mailSettings = Zend_Registry::get('emailSettings');
     foreach ($news as $post) {
         $entries[] = array('title' => $post->title, 'link' => 'http://' . $_SERVER['HTTP_HOST'] . $this->view->baseUrl() . '/news/' . $post->getUrlParams(), 'description' => $post->text, 'content' => $this->view->textile($post->text), 'lastUpdate' => strtotime($post->updated_at));
     }
     // generate and render RSS feed
     $feed = Zend_Feed::importArray(array('title' => $settings->page->group->name, 'link' => 'http://' . $_SERVER['HTTP_HOST'] . $this->view->baseUrl() . '/news/feed', 'charset' => 'UTF-8', 'entries' => $entries, 'author' => $settings->page->group->name, 'email' => $mailSettings->email->admin), 'atom');
     $feed->send();
     die;
 }
예제 #14
0
 public function feedAction()
 {
     $entries = $this->trackerService->getEntries(array(), 1, 50);
     $feedArray = array('title' => 'Relapse Updates', 'link' => za()->getConfig('site_domain') . za()->getConfig('site_context'), 'description' => 'Latest relapse updates', 'language' => 'en-us', 'charset' => 'utf-8', 'pubDate' => date(DATE_RFC822), 'generator' => 'Zend Framework Zend_Feed', 'entries' => array());
     foreach ($entries as $entry) {
         // we want to handle issue history stuff differently otherwise we end up with oto
         // much crap in the feed
         $desc = $entry->entrydata;
         $feedArray['entries'][] = array('title' => $entry->actionname . ':' . $entry->actionid, 'link' => $entry->url, 'guid' => $entry->id, 'description' => $desc, 'lastUpdate' => strtotime($entry->created));
     }
     $feed = Zend_Feed::importArray($feedArray, 'rss');
     $feed->send();
 }
예제 #15
0
 /** Render data for view on index action
  */
 public function indexAction()
 {
     $format = $this->_getParam('format');
     if (!isset($format)) {
         $eventsList = new Events();
         $eventsListed = $eventsList->getUpcomingEvents();
         $calendar = new Calendar();
         $lists = array();
         foreach ($eventsListed as $value) {
             $lists[] = $value['eventStartDate'];
         }
         $listedDates = $lists;
         $calendar->highlighted_dates = $listedDates;
         $first_day = $calendar->year . "-" . $calendar->month . "-01";
         $prev_year = date("Y", strtotime("+2 month", strtotime($first_day)));
         $prev_month = date("m", strtotime("+2 month", strtotime($first_day)));
         $next_year = date("Y", strtotime("+1 month", strtotime($first_day)));
         $next_month = date("m", strtotime("+1 month", strtotime($first_day)));
         $url = $this->view->url(array('module' => 'events', 'controller' => 'upcoming', 'action' => 'index'), 'upcoming', true);
         $calendar->formatted_link_to = $url . '/%Y-%m-%d';
         $this->view->curr = $calendar->output_calendar();
         $this->view->nextplusone = $calendar->output_calendar($prev_year, $prev_month);
         $this->view->next = $calendar->output_calendar($next_year, $next_month);
         $events = new Events();
         if ($this->_getParam('date') == NULL) {
             $this->view->events = $eventsList->getUpcomingEventsList();
             $this->view->eventdate = Zend_Date::now()->toString('yyyy-MM-dd');
         } else {
             $this->view->events = $events->getEventbyDay($this->_getParam('date'));
             $this->view->eventdate = $this->_getParam('date');
         }
     } else {
         if ($format == 'xml' || $format == 'json') {
             $this->_helper->layout->disableLayout();
             $events = new Events();
             $this->view->events = $events->getUpcomingEventsList();
         } else {
             if (in_array($format, array('rss', 'atom')) ? $format : 'rss') {
                 $events = new Events();
                 $events = $events->getUpcomingEventsList();
                 $feedArray = array('title' => 'Finds from the Scheme', 'link' => $this->view->CurUrl(), 'charset' => 'utf-8', 'description' => 'The latest Portable Antiquities Scheme events', 'author' => 'The Portable Antiquities Scheme', 'image' => Zend_Registry::get('siteurl') . '/images/logos/pas.gif', 'email' => '*****@*****.**', 'copyright' => 'Creative Commons Licenced', 'generator' => 'The Scheme database powered by Zend Framework and Dan\'s magic', 'language' => 'en', 'entries' => array());
                 foreach ($events as $event) {
                     $feedArray['entries'][] = array('title' => $event['eventTitle'], 'link' => Zend_Registry::get('siteurl') . '/events/info/index/id/' . $event['id'], 'guid' => Zend_Registry::get('siteurl') . '/events/info/index/id/' . $event['id'], 'description' => strip_tags($event['eventDescription']), 'lastUpdate' => strtotime($event['updated']), 'content' => $event['eventDescription'], 'georss' => $event['latitude'] . ',' . $event['longitude']);
                 }
                 $feed = Zend_Feed::importArray($feedArray, $format);
                 $feed->send();
             }
         }
     }
 }
예제 #16
0
 /**
  * Generate Comment feed.
  */
 public function actionCommentFeed()
 {
     Yii::import('application.vendors.*');
     require_once 'Zend/Feed/Rss.php';
     // retrieve the latest 20 models
     $models = Comment::model()->findRecentComments(20);
     // convert to the format needed by Zend_Feed
     $entries = array();
     foreach ($models as $model) {
         $entries[] = array('title' => ($model->author ? $model->author->username : $model->authorName) . ' ' . Yii::t('lan', 'on') . ' ' . CHtml::encode($model->post->title), 'link' => CHtml::encode($this->createAbsoluteUrl('post/show', array('slug' => $model->post->slug, '#' => 'c' . $model->id))), 'description' => $model->contentDisplay, 'lastUpdate' => $model->createTime);
     }
     // generate and render RSS feed
     $feed = Zend_Feed::importArray(array('title' => Yii::t('lan', 'Comment Feed for ') . Yii::app()->params['title'], 'description' => Yii::app()->params['description'], 'link' => $this->createAbsoluteUrl(''), 'charset' => 'UTF-8', 'entries' => $entries), 'rss');
     $feed->send();
 }
예제 #17
0
 public function rssAction()
 {
     $params = array_intersect_key($_GET, Yadda_Model_Deal::$allowedSearchParams);
     $result = Yadda_Model_Deal::search(array_merge($params, array('count' => 30)));
     $data = array('title' => 'yadda. - ' . $result['description'], 'link' => 'http://yadda.co.za/', 'language' => 'en-gb', 'charset' => 'utf-8', 'entries' => array());
     foreach ($result['results'] as $result) {
         $desc = $this->view->format($result['description']);
         if (empty($desc)) {
             $desc = '';
         }
         $data['entries'][] = array('title' => $result['title'], 'description' => $desc, 'link' => 'http://' . $_SERVER['HTTP_HOST'] . $this->view->url(array('id' => $result['id']), 'deal') . '?from=rss', 'guid' => 'http://' . $_SERVER['HTTP_HOST'] . $this->view->url(array('id' => $result['id']), 'deal'), 'lastUpdate' => $result['date']);
     }
     $feed = Zend_Feed::importArray($data, 'rss');
     $feed->send();
     die;
 }
예제 #18
0
 function indexAction()
 {
     $this->_helper->layout->disableLayout();
     $this->getHelper('viewRenderer')->setNoRender(true);
     $registry = Zend_Registry::getInstance();
     $config = $registry->get(Pandamp_Keys::REGISTRY_APP_OBJECT);
     $cdn = $config->getOption('cdn');
     $sDir = $cdn['static']['url']['images'];
     $content = 0;
     $entries = array();
     $rowset = App_Model_Show_Catalog::show()->fetchFromFolder('lt4aaa29322bdbb', 0, 10);
     foreach ($rowset as $row) {
         $rowsetRelatedItem = App_Model_Show_RelatedItem::show()->getDocumentById($row['guid'], 'RELATED_IMAGE');
         $itemGuid = isset($rowsetRelatedItem['itemGuid']) ? $rowsetRelatedItem['itemGuid'] : '';
         $chkDir = $sDir . "/" . $row['guid'] . "/" . $itemGuid;
         if (@getimagesize($chkDir)) {
             $pict = $sDir . "/" . $row['guid'] . "/" . $itemGuid;
         } else {
             $pict = $sDir . "/" . $itemGuid;
         }
         if (Pandamp_Lib_Formater::thumb_exists($pict . ".jpg")) {
             $thumb = $pict . ".jpg";
         }
         if (Pandamp_Lib_Formater::thumb_exists($pict . ".gif")) {
             $thumb = $pict . ".gif";
         }
         if (Pandamp_Lib_Formater::thumb_exists($pict . ".png")) {
             $thumb = $pict . ".png";
         }
         $entries[$content]['title'] = App_Model_Show_CatalogAttribute::show()->getCatalogAttributeValue($row['guid'], 'fixedTitle');
         $entries[$content]['link'] = ROOT_URL . '/berita/baca/' . $row['guid'] . '/' . $row['shortTitle'];
         $entries[$content]['guid'] = ROOT_URL . '/berita/baca/' . $row['guid'] . '/' . $row['shortTitle'];
         $entries[$content]['pubDate'] = strtotime($row['publishedDate']);
         if (!empty($thumb)) {
             $d = "<img src=\"" . $thumb . "\" align=\"left\" hspace=\"7\" width=\"100\" />" . $this->limitword(2, App_Model_Show_CatalogAttribute::show()->getCatalogAttributeValue($row['guid'], 'fixedContent'));
             $entries[$content]['description'] = $d;
             $size = getimagesize($thumb);
             $entries[$content]['enclosure'] = array(array('url' => $thumb, 'type' => $size['mime'], 'length' => '10240'));
         } else {
             $d = $this->limitword(2, App_Model_Show_CatalogAttribute::show()->getCatalogAttributeValue($row['guid'], 'fixedContent'));
             $entries[$content]['description'] = $d;
         }
         $content++;
     }
     $feed = Zend_Feed::importArray(array('title' => 'Hukumonline Warta', 'link' => ROOT_URL, 'description' => 'hukumonline.com sindikasi', 'image' => $cdn['static']['images'] . '/logo.gif', 'charset' => 'UTF-8', 'entries' => $entries), 'rss');
     $feed->send();
 }
예제 #19
0
 public function actionRss()
 {
     Yii::app()->clientScript->registerLinkTag('alternate', 'application/rss+xml', $this->createUrl('info/6'));
     require_once 'Zend/Feed.php';
     require_once 'Zend/Feed/Atom.php';
     $model = Yii::app()->cache->get($this->getUrlId());
     if ($model === false) {
         $criteria = Advertisement::model()->setFetchCondition(20);
         $model = Advertisement::model()->findAll($criteria);
         Yii::app()->cache->set($this->getUrlId(), $model, 36000, new CDbCacheDependency("SELECT MAX(id) FROM {{advertisement}}"));
     }
     $entries = array();
     foreach ($model as $post) {
         $entries[] = array('title' => $post->title, 'link' => $this->createUrl('info/view', array('id' => $post->id)), 'description' => UtilHelper::strSlice($post->content, 0, 1000), 'lastUpdate' => $post->create);
     }
     $feed = Zend_Feed::importArray(array('title' => '悦珂广告栏', 'link' => $this->createUrl(''), 'charset' => 'UTF-8', 'entries' => $entries));
     $feed->send();
 }
예제 #20
0
 public function actionFeed()
 {
     Yii::import('application.vendors.*');
     require_once 'Zend/Loader/Autoloader.php';
     spl_autoload_unregister(array('YiiBase', 'autoload'));
     spl_autoload_register(array('Zend_Loader_Autoloader', 'autoload'));
     spl_autoload_register(array('YiiBase', 'autoload'));
     // retrieve the latest 20 posts
     $offers = Offers::model()->findAll(array('order' => 'created DESC', 'limit' => 20));
     // convert to the format needed by Zend_Feed
     $entries = array();
     foreach ($offers as $offer) {
         $entries[] = array('title' => $offer->title, 'link' => CHtml::encode($this->createAbsoluteUrl('offers/view', array('slug' => $offer->slug))), 'description' => $offer->description);
     }
     // generate and render RSS feed
     $feed = Zend_Feed::importArray(array('title' => 'Offers Feed', 'link' => $this->createUrl(''), 'charset' => 'UTF-8', 'entries' => $entries), 'rss');
     $feed->send();
 }
예제 #21
0
 public function indexAction()
 {
     $conf = Zend_Registry::get("conf");
     $params = $this->getRequest()->getParams();
     $this->_model = new Joobsbox_Model_Jobs();
     $allJobs = false;
     if (isset($params['category'])) {
         $category = $this->_model->fetchCategories()->getCategory($params['category']);
         if ($category) {
             $categoryId = $category->getProperty('id');
             $jobs = $this->_model->fetchAllJobs(0)->order('id DESC')->where("categoryid = '{$categoryId}'")->limit($conf->rss->all_jobs_count, 0)->fetch();
             $jobs = $jobs->toArray();
             if (count($jobs)) {
                 $lastUpdate = strtotime($jobs[0]['changeddate']);
             } else {
                 $lastUpdate = strtotime("today");
             }
         } else {
             header("HTTP/1.0 404 Not Found", true, 404);
             header("Status: 404 Not Found", true, 404);
             exit;
         }
     } else {
         $allJobs = true;
         $jobs = $this->_model->fetchAllJobs(0)->order('ID DESC')->limit($conf->rss->all_jobs_count, 0)->fetch();
         $jobs = $jobs->toArray();
         if (count($jobs)) {
             $lastUpdate = strtotime($jobs[0]['changeddate']);
         } else {
             $lastUpdate = strtotime("today");
         }
     }
     // Generate the feed
     $siteUrl = "http://" . $_SERVER["HTTP_HOST"];
     $data = array("title" => $conf->general->common_title . " - " . ($allJobs ? $this->view->translate("All jobs") : $params['category']), "link" => $siteUrl . $_SERVER["REQUEST_URI"], "lastUpdate" => $lastUpdate, 'charset' => 'utf-8', 'description' => $conf->rss->description, 'entries' => array());
     if (count($jobs)) {
         foreach ($jobs as $job) {
             $data['entries'][] = array('title' => html_entity_decode($job['title'], ENT_QUOTES, "UTF-8"), 'link' => $this->view->serverUrl() . $this->view->baseUrl('/job') . '/' . $job['title'] . '-' . $job['id'] . '.html', 'description' => nl2br(strip_tags(html_entity_decode($job['description'], ENT_QUOTES, "UTF-8"))));
         }
     }
     $feed = Zend_Feed::importArray($data, 'rss');
     echo $feed->saveXml();
     exit;
 }
예제 #22
0
 /** Render the index pages and rss
  */
 public function indexAction()
 {
     if (in_array($this->_helper->contextSwitch()->getCurrentContext(), array('rss', 'atom'))) {
         $this->_helper->layout->disableLayout();
         $vacs = new Vacancies();
         $vacs = $vacs->getJobs(25);
         $feedArray = array('title' => 'Current vacancies at the Portable Antiquities Scheme', 'link' => $this->view->CurUrl(), 'charset' => 'utf-8', 'description' => 'The latest vacancies at the Portable Antiquities Scheme', 'author' => 'The Portable Antiquities Scheme', 'image' => Zend_Registry::get('siteurl') . '/images/logos/pas.gif', 'email' => '*****@*****.**', 'copyright' => 'Creative Commons Licenced', 'generator' => 'The Scheme database powered by Zend Framework and Dan\'s magic', 'language' => 'en', 'entries' => array());
         foreach ($vacs as $vac) {
             $feedArray['entries'][] = array('title' => $vac['title'] . ' - ' . $vac['staffregions'], 'link' => Zend_Registry::get('siteurl') . '/getinvolved/vacancies/vacancy/id/' . $vac['id'], 'guid' => Zend_Registry::get('siteurl') . '/getinvolved/vacancies/vacancy/id/' . $vac['id'], 'description' => strip_tags(substr($vac['specification'], 0, 300)), 'lastUpdate' => strtotime($vac['created']), 'content' => strip_tags($vac['specification'], ''));
         }
         $feed = Zend_Feed::importArray($feedArray, $this->_getParam('format'));
         $feed->send();
     } else {
         $vacs = new Vacancies();
         $this->view->vacs = $vacs->getLiveJobs($this->_getParam('page'));
         //		$links = new Links();
         //		$this->view->links = $links->getLinksByType('5');
     }
 }
예제 #23
0
 public function actionIndex()
 {
     $feed_title = Awecms::getSiteName();
     $feed_description = Settings::get('site', 'tagline');
     //provide model name or array of models, implementing page behavior
     $pageModels = array('Page', 'News', Event::model()->findAll());
     //for models other than implementing Page behavior
     $otherModels = array(array('Album', 'title', 'content', '/gallery/album/view/id/{id}'), array('Business', 'title', 'content', '/directory/business/view/id/{id}'), array('Image', 'title', 'description', '/gallery/image/view/id/{id}'));
     foreach ($otherModels as $otherModel) {
         $link = isset($otherModel[3]) ? $otherModel[3] : NULL;
         $this->addToFeed($otherModel[0], $otherModel[1], $otherModel[2], $link);
     }
     foreach ($pageModels as $model) {
         $this->addToFeed($model, 'title', 'content');
     }
     // generate and render RSS feed
     $feed = Zend_Feed::importArray(array('title' => $feed_title, 'description' => $feed_description, 'link' => $this->createUrl(''), 'charset' => 'UTF-8', 'generator' => 'AweCMS', 'entries' => $this->entries), 'rss');
     $feed->send();
 }
예제 #24
0
 public function postRssContext()
 {
     if (!$this->getAutorssSerialization()) {
         return;
     }
     $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
     $view = $viewRenderer->view;
     if ($view instanceof Zend_View_Interface) {
         if (method_exists($view, 'getVars')) {
             $vars = $view->getVars();
             $feed = $vars['feed'];
             $feedObj = Zend_Feed::importArray($feed, 'rss');
             $feedString = $feedObj->saveXml();
             $feedObj->send();
         } else {
             require_once 'Zend/Controller/Action/Exception.php';
             throw new Zend_Controller_Action_Exception('View does not implement the getVars() method needed to encode the view into JSON');
         }
     }
 }
예제 #25
0
 public function showAction()
 {
     $newsModel = new News_Model_News();
     $channel = $newsModel->getChannelInfo($this->_request->getParam('docid'), $this->_request->getParam('ctxid'), 20);
     $baseUrl = "http://{$_SERVER['HTTP_HOST']}";
     //		$baseUrl = $this->_request->baseUrl;
     //		$tempbook = $books->current();
     //		$pubDate = $tempbook->date_entered;
     $feedArray = array('title' => $channel->info['TITLE'], 'link' => "{$baseUrl}{$_SERVER['REQUEST_URI']}", 'description' => $channel->info['DESCRIPTION'], 'language' => $channel->info['LANGUAGE'], 'charset' => 'utf-8', 'published' => $channel->info['CREATEDATE'], 'entries' => array());
     foreach ($channel->news as $item) {
         $feedArray['entries'][] = array('title' => $item['TITLE'], 'link' => $item['URL'] ? $baseUrl . $item['URL'] : '', 'description' => $item['DESCRIPTION'], 'lastUpdate' => $item['NEWSDATE']);
     }
     $feed = Zend_Feed::importArray($feedArray, 'rss');
     // Not needed - see comments
     foreach ($feed as $entry) {
         $element = $entry->summary->getDOM();
     }
     $feed->send();
     exit;
 }
예제 #26
0
 /**
  * 
  * Generates a feed of newest released episodes
  * @param Doctrine_Collection $episodes
  */
 protected function _generateFeed($episodes)
 {
     $this->_helper->layout->disableLayout();
     $settings = Zend_Registry::get('environmentSettings');
     $mailSettings = Zend_Registry::get('emailSettings');
     foreach ($episodes as $episode) {
         # build the ep title to be shown
         $epTitle = $episode->Projects_Model_Episode->Projects_Model_Project->name . ' ' . $episode->Projects_Model_Episode->number;
         if ($episode->Projects_Model_Episode->version > 1) {
             $epTitle .= 'v' . $episode->Projects_Model_Episode->version;
         }
         # url encode project title
         $projUrl = $episode->Projects_Model_Episode->Projects_Model_Project->name_slug;
         # add entry
         $entries[] = array('title' => $epTitle, 'link' => 'http://' . $_SERVER['HTTP_HOST'] . $this->view->baseUrl() . '/projects/index/details/project/' . $projUrl, 'description' => $episode->Projects_Model_Episode->title, 'content' => $episode->Projects_Model_Episode->title, 'lastUpdate' => strtotime($episode->released_at));
     }
     // generate and render RSS feed
     $feed = Zend_Feed::importArray(array('title' => $settings->page->group->name, 'link' => 'http://' . $_SERVER['HTTP_HOST'] . $this->view->baseUrl() . '/projects/feed', 'charset' => 'UTF-8', 'entries' => $entries, 'author' => $settings->page->group->name, 'email' => $mailSettings->email->admin), 'atom');
     $feed->send();
     die;
 }
예제 #27
0
 public function indexAction()
 {
     $this->_helper->layout->disableLayout();
     $data = array();
     $feedData = array('title' => 'Ottawa PHP Community', 'link' => 'http://ottawaphpcommunity.ca/feed', 'published' => time(), 'charset' => 'UTF-8', 'description' => 'Aggregating the php developers in the Ottawa Valley');
     // Blog Posting
     foreach (Default_Model_BlogPostTable::getInstance()->getLatest(15) as $post) {
         $blogUrl = str_replace('http://', '', $post['Blog']['url']);
         $item = array('sortCol' => $post['posted_on'], 'title' => $post['title'], 'link' => $post['url'], 'lastUpdate' => strtotime($post['posted_on']), 'guid' => $post['guid'], 'description' => 'from ' . $blogUrl . ':  ' . PHP_EOL . strip_tags($post['content']), 'content' => '<em>from ' . $blogUrl . ':</em><br />' . PHP_EOL . $post['content']);
         $data[] = $item;
     }
     $tweetDigest = array();
     // Twitter Posting
     foreach (Default_Model_TwitterPostTable::getInstance()->getLatest(50) as $post) {
         $day = date('Y-m-d', strtotime($post['posted_on']));
         ini_set('display_errors', '1');
         error_reporting(E_ALL);
         if ($day == date('Y-m-d')) {
             // don't create digest for today... as it is not 'till it's done
             continue;
         }
         if (!isset($tweetDigest[$day])) {
             $tweetDigest[$day] = array('sortCol' => $post['posted_on'], 'title' => 'Tweets for ' . $day, 'link' => 'http://ottawaphpcommunity.ca', 'lastUpdate' => strtotime($post['posted_on']), 'guid' => 'http://ottawaphpcommunity.ca/#tweets-' . $day, 'description' => '@' . $post['Twitter']['screen_name'] . ': ' . strip_tags($post['content']) . PHP_EOL, 'content' => '<strong>@' . $post['Twitter']['screen_name'] . '</strong>: ' . $post['content'] . '<br />' . PHP_EOL);
         } else {
             $tweetDigest[$day]['description'] .= '@' . $post['Twitter']['screen_name'] . ': ' . strip_tags($post['content']) . PHP_EOL;
             $tweetDigest[$day]['content'] .= '<strong>@' . $post['Twitter']['screen_name'] . '</strong>: ' . $post['content'] . '<br />' . PHP_EOL;
         }
     }
     $entries = array_merge($data, $tweetDigest);
     // Order by date
     $sortable = array();
     foreach ($entries as $key => $val) {
         $sortable[$key] = $val['sortCol'];
     }
     array_multisort($sortable, SORT_DESC, $entries);
     $feedData['entries'] = $entries;
     $rss = Zend_Feed::importArray($feedData, 'rss');
     $rss->send();
     die;
 }
예제 #28
0
 function feedAction()
 {
     $test = $this->_request->getParam('test');
     if (empty($test)) {
         $this->_helper->layout->setLayout('printable');
     }
     // not test
     // create array for feed
     $afeed = array('title' => $this->view->config->feed->feed_title, 'link' => $this->view->baseUrl . '/feed/feed', 'description' => $this->view->config->feed->feed_desc, 'charset' => "UTF-8", 'entries' => array());
     // terminated Jobs
     $jobs = new Job();
     $result = $jobs->getTerminatedJobs(1);
     foreach ($result as $item) {
         // convert date to timestamp format
         $date = new Zend_Date($item['starttime'], 'YYYY-MM-dd HH:mm:ss');
         $itemTimestamp = $date->getTimestamp();
         $content = '<pre><b>' . $this->view->translate->_("Job Id") . ' : </b>' . $item['jobid'] . '<br>' . '<b>' . $this->view->translate->_("Job Name") . ' : </b>' . $item['jobname'] . '<br>' . '<b>' . $this->view->translate->_("Status") . ' : </b>' . $item['jobstatuslong'] . '<br>' . '<b>' . $this->view->translate->_("Level") . ' : </b>' . $item['level'] . '<br>' . '<b>' . $this->view->translate->_("Client") . ' : </b>' . $item['clientname'] . '<br>' . '<b>' . $this->view->translate->_("Pool") . ' : </b>' . $item['poolname'] . '<br>' . '<b>' . $this->view->translate->_("Start Time") . ' : </b>' . $item['starttime'] . '<br>' . '<b>' . $this->view->translate->_("End Time") . ' : </b>' . $item['endtime'] . '<br>' . '<b>' . $this->view->translate->_("Duration") . ' : </b>' . $item['durationtime'] . '<br>' . '<b>' . $this->view->translate->_("Files") . ' : </b>' . number_format($item['jobfiles']) . '<br>' . '<b>' . $this->view->translate->_("Bytes") . ' : </b>' . $this->view->convBytes($item['jobbytes']) . '<br>' . '<b>' . $this->view->translate->_("Errors") . ' : </b>' . number_format($item['joberrors']) . '<br>' . '</pre>';
         $afeed['entries'][] = array('title' => $item['jobname'] . ' ' . $item['jobstatuslong'], 'link' => $this->view->baseUrl . '/job/detail/jobid/' . $item['jobid'], 'description' => $content, 'lastUpdate' => $itemTimestamp);
     }
     // Get info Volumes with Status of media: Disabled, Error
     $media = new Media();
     $result = $media->getProblemVolumes();
     if ($result) {
         foreach ($result as $item) {
             $content = '<pre><b>' . $this->view->translate->_("Volume Name") . ' : </b>' . $item['volumename'] . '<br>' . '<b>' . $this->view->translate->_("Volume Status") . ' : </b>' . $item['volstatus'] . '<br>' . '</pre>';
             $afeed['entries'][] = array('title' => $this->view->translate->_("Volumes with errors"), 'link' => $this->view->baseUrl . '/volume/problem/', 'description' => $content, 'lastUpdate' => time());
         }
     }
     // import array to feed
     $feed = Zend_Feed::importArray($afeed, 'rss');
     // dump feed //  print "<pre>".$feed->saveXML();exit;
     if (empty($test)) {
         $feed->send();
     } else {
         print $feed->saveXML();
         // for unit tests
     }
 }
예제 #29
0
 public function actionFeed()
 {
     require_once 'Zend/Loader/Autoloader.php';
     spl_autoload_unregister(array('YiiBase', 'autoload'));
     spl_autoload_register(array('Zend_Loader_Autoloader', 'autoload'));
     spl_autoload_register(array('YiiBase', 'autoload'));
     Yii::import('application.extensions.hole.cms.*');
     $cmsHelper = new HoleCmsHelper();
     //$folderGuid = ($_GET['id']): $_GET['id'] ? 'ilb';
     $folderGuid = $_GET['id'];
     $sFolders = $cmsHelper->getStringRelatedFolders($folderGuid);
     $offset = 0;
     $limit = 10;
     $db = Yii::app()->db;
     //$command=$db->createCommand("select * from KutuCatalog where guid in (select catalogGuid from KutuCatalogFolder where folderGuid='$folderGuid') order by createdDate desc limit $offset, $limit ");
     $query = "select KutuCatalog.* from KutuCatalog, KutuCatalogFolder where KutuCatalogFolder.folderGuid IN {$sFolders} \n\t\t\t\tAND KutuCatalog.guid = KutuCatalogFolder.catalogGuid \n\t\t\t\torder by KutuCatalog.publishedDate desc limit {$offset}, {$limit}";
     $command = $db->createCommand($query);
     $dataReader = $command->query();
     $rows = $dataReader->readAll();
     $catalogManager = new HoleCatalogManager();
     foreach ($rows as $row) {
         $rowDetail = $catalogManager->getCatalogDetails($row['guid']);
         //echo $rowDetail['fixedTitle'].'<br>';
         $entries[] = array('title' => $rowDetail['fixedTitle'], 'link' => CHtml::encode($this->createAbsoluteUrl('default/details', array('guid' => $row['guid']))), 'description' => $this->_getSentences(2, $rowDetail['fixedContent']), 'lastUpdate' => strtotime($row['publishedDate']));
     }
     //var_dump($entries);
     $feed = Zend_Feed::importArray(array('title' => 'Hukumonline English RSS Feed', 'link' => $this->createUrl(''), 'charset' => 'UTF-8', 'entries' => $entries), 'rss');
     $feed->send();
     //echo 'test';
 }
예제 #30
0
 /**
  * Test the import of a RSS feed from an array
  */
 public function testAtomImportFullArray()
 {
     $feed = Zend_Feed::importArray($this->_getFullArray(), 'atom');
     $this->assertTrue($feed instanceof Zend_Feed_Atom);
 }