/** * 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; }
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'); }
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(); }
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(); }
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(); }
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'); }
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(); }
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/'); } }
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()); } }
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(); }
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; }
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(); }
/** 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(); } } } }
/** * 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(); }
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; }
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(); }
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(); }
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(); }
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; }
/** 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'); } }
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(); }
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'); } } }
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; }
/** * * 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; }
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; }
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 } }
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'; }
/** * 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); }