Version: "Lemon Meringue" Updated: 3 November 2006 Copyright: 2004-2006 Ryan Parman, Geoffrey Sneddon http://simplepie.org LICENSE: GNU Lesser General Public License 2.1 (LGPL) Please submit all bug reports and feature requests to the SimplePie forums. http://simplepie.org/support/
Example #1
0
 /**
  * Provided a URL, will return an array representing the feed item for that
  * URL.  A feed item contains the content, url, simplepie object, and failure
  * status for the URL passed.  Handles caching of content requests.
  *
  * @return array
  * @author Jared Lang
  * */
 protected static function __new_feed($url)
 {
     require_once ABSPATH . '/wp-includes/class-simplepie.php';
     $simplepie = null;
     $failed = False;
     $cache_key = 'feedmanager-' . md5($url);
     $content = get_site_transient($cache_key);
     if ($content === False) {
         $content = @file_get_contents($url);
         if ($content === False) {
             $failed = True;
             $content = null;
             error_log('FeedManager failed to fetch data using url of ' . $url);
         } else {
             set_site_transient($cache_key, $content, self::$cache_length);
         }
     }
     if ($content) {
         $simplepie = new SimplePie();
         $simplepie->set_raw_data($content);
         $simplepie->init();
         $simplepie->handle_content_type();
         if ($simplepie->error) {
             error_log($simplepie->error);
             $simplepie = null;
             $failed = True;
         }
     } else {
         $failed = True;
     }
     return array('content' => $content, 'url' => $url, 'simplepie' => $simplepie, 'failed' => $failed);
 }
Example #2
0
 function add($render)
 {
     $url = $_REQUEST['url'];
     require_once 'lib/simplepie/simplepie.inc';
     $pie = new SimplePie();
     $pie->enable_cache(false);
     $pie->set_autodiscovery_level(SIMPLEPIE_LOCATOR_ALL);
     $pie->set_feed_url($url);
     $pie->init();
     $feed_url = $pie->feed_url;
     $feed_title = $pie->get_title();
     // Save feed to insert into session variables for later insertion into db
     // only do this if we found items at the given url. This way we won't
     // insert broken urls in doadd(). Also prevents inserting a new feed
     // that never gets subscribed to in the following page.
     if (count($pie->get_items()) > 0) {
         $_SESSION['new_feed_url'] = $feed_url;
         $_SESSION['new_feed_name'] = $feed_title;
     } else {
         $_SESSION['new_feed_url'] = NULL;
         $_SESSION['new_feed_name'] = NULL;
     }
     $render->assign('url', $url);
     $render->assign('feed_url', $feed_url);
     $render->assign('items', array_slice($pie->get_items(), 0, 5));
     $render->assign('feed', $pie);
     $render->assign('title', 'Adding Feed');
     $render->display('feed_search.tpl');
 }
 /**
  * MagpieFromSimplePie constructor
  *
  * @param SimplePie $pie The feed to convert to MagpieRSS format.
  * @param mixed $item
  *
  * @uses SimplePie::get_items
  * @uses MagpieFromSimplePie::processFeedData
  * @uses MagpieFromSimplePie::processItemData
  * @uses MagpieFromSimplePie::normalize 
  * @uses MagpieFromSimplePie::is_atom
  */
 function __construct($pie, $item = true)
 {
     $this->pie = $pie;
     // item in {NULL, true} = process channel data
     if (!is_a($item, 'SimplePie_Item')) {
         $this->originals = $this->pie->get_items();
         $this->channel = $this->processFeedData($this->pie->data);
     } else {
         $this->originals = array($item);
         $this->channel = NULL;
     }
     // item in {true, SimplePie_Item} = process item data
     if (!is_null($item)) {
         foreach ($this->originals as $key => $item) {
             $this->items[$key] = $this->processItemData($item->data);
         }
     } else {
         $this->items = NULL;
     }
     $this->normalize();
     // In case anyone goes poking around our private members (uh...)
     $this->feed_type = $this->is_atom() ? 'Atom' : 'RSS';
     $this->feed_version = $this->feed_version();
     $this->encoding = $pie->get_encoding();
 }
Example #4
0
 /**
  * Fetches the latest entry from the source's feed
  **/
 function fetchfeed()
 {
     require_once SIMPLEPIEPATH;
     $feed = $this->select();
     if (preg_match('/twitter\\.com/', $feed[0]->feed_url) == true) {
         $istwitter = 1;
     }
     $feed_path = $feed[0]->feed_url;
     $feed = new SimplePie((string) $feed_path, TEMPLATEPATH . (string) '/app/cache/activity');
     SourceAdmin::clean_dir();
     $feed->handle_content_type();
     if ($feed->data) {
         foreach ($feed->get_items() as $entry) {
             $name = $stream->title;
             $update[]['name'] = (string) $name;
             $update[]['title'] = $entry->get_title();
             $update[]['link'] = $entry->get_permalink();
             $update[]['date'] = strtotime(substr($entry->get_date(), 0, 25));
         }
         $return = array_slice($update, 0, 5);
         // This auto-hyperlinks URLs
         $return[1]['title'] = preg_replace('((?:\\S)+://\\S+[[:alnum:]]/?)', '<a href="\\0">\\0</a>', $return[1]['title']);
         /**
          * If Twitter is the source, then we hyperlink any '@username's
          * to that user's Twitter address.
          **/
         if ($istwitter == 1) {
             $return[1]['title'] = preg_replace('/(@)([A-Za-z0-9_-]+)/', '<a href="http://twitter.com/\\2">\\0</a>', $return[1]['title']);
         }
         return substr($return[1]['title'], 0, 1000) . ' &mdash; <a href="' . $return[2]['link'] . '" title="">' . date('g:ia', $return[3]['date']) . '</a>';
     } else {
         return "Thanks for exploring my world! Can you believe this avatar is talking to you?";
     }
 }
 /**
  * Loads a newsfeed object.
  * @param string $feed
  * @return SimplePie $feed
  */
 public function load($feedurl)
 {
     $feed = new SimplePie();
     $feed->set_feed_url($feedurl);
     $feed->set_cache_location(DIR_FILES_CACHE);
     return $feed;
 }
 /**
  * _createSimplePie
  *
  * @param   string  &$feed  Params
  *
  * @return	object
  */
 private function _createSimplePie(&$feed)
 {
     include_once JPATH_AUTOTWEET . '/libs/SimplePie_autoloader.php';
     // Process the feed with SimplePie
     $simplePie = new SimplePie();
     $simplePie->set_feed_url($feed->xtform->get('url'));
     $simplePie->set_stupidly_fast(true);
     $simplePie->enable_order_by_date(true);
     if ($feed->xtform->get('encoding', 'utf-8')) {
         $simplePie->set_input_encoding($feed->xtform->get('encoding'));
     }
     if ($feed->xtform->get('force_fsockopen')) {
         $simplePie->force_fsockopen(true);
     }
     $use_sp_cache = EParameter::getComponentParam(CAUTOTWEETNG, 'use_sp_cache', true);
     if ($use_sp_cache && is_writable(JPATH_CACHE)) {
         $simplePie->set_cache_location(JPATH_CACHE);
         $simplePie->enable_cache(true);
     } else {
         $simplePie->enable_cache(false);
     }
     $set_sp_timeout = EParameter::getComponentParam(CAUTOTWEETNG, 'set_sp_timeout', 10);
     if ($set_sp_timeout) {
         $simplePie->set_timeout((int) $set_sp_timeout);
     }
     $simplePie->init();
     return $simplePie;
 }
Example #7
0
 /**
  * Provided a URL, will return an array representing the feed item for that
  * URL.  A feed item contains the content, url, simplepie object, and failure
  * status for the URL passed.  Handles caching of content requests.
  *
  * @return array
  * @author Jared Lang
  **/
 protected static function __new_feed($url)
 {
     $timer = Timer::start();
     require_once THEME_DIR . '/third-party/simplepie.php';
     $simplepie = null;
     $failed = False;
     $cache_key = 'feedmanager-' . md5($url);
     $content = get_site_transient($cache_key);
     if ($content === False) {
         $content = @file_get_contents($url);
         if ($content === False) {
             $failed = True;
             $content = null;
             error_log('FeedManager failed to fetch data using url of ' . $url);
         } else {
             set_site_transient($cache_key, $content, self::$cache_length);
         }
     }
     if ($content) {
         $simplepie = new SimplePie();
         $simplepie->set_raw_data($content);
         $simplepie->init();
         $simplepie->handle_content_type();
         if ($simplepie->error) {
             error_log($simplepie->error);
             $simplepie = null;
             $failed = True;
         }
     } else {
         $failed = True;
     }
     $elapsed = round($timer->elapsed() * 1000);
     debug("__new_feed: {$elapsed} milliseconds");
     return array('content' => $content, 'url' => $url, 'simplepie' => $simplepie, 'failed' => $failed);
 }
 public function import($forceResync)
 {
     if (get_option('goodreads_user_id')) {
         if (!class_exists('SimplePie')) {
             require_once ABSPATH . WPINC . '/class-feed.php';
         }
         $rss_source = sprintf(self::$apiurl, get_option('goodreads_user_id'));
         /* Create the SimplePie object */
         $feed = new SimplePie();
         /* Set the URL of the feed you're retrieving */
         $feed->set_feed_url($rss_source);
         /* Tell SimplePie to cache the feed using WordPress' cache class */
         $feed->set_cache_class('WP_Feed_Cache');
         /* Tell SimplePie to use the WordPress class for retrieving feed files */
         $feed->set_file_class('WP_SimplePie_File');
         /* Tell SimplePie how long to cache the feed data in the WordPress database */
         $feed->set_cache_duration(apply_filters('wp_feed_cache_transient_lifetime', get_option('reclaim_update_interval'), $rss_source));
         /* Run any other functions or filters that WordPress normally runs on feeds */
         do_action_ref_array('wp_feed_options', array(&$feed, $rss_source));
         /* Initiate the SimplePie instance */
         $feed->init();
         /* Tell SimplePie to send the feed MIME headers */
         $feed->handle_content_type();
         if ($feed->error()) {
             parent::log(sprintf(__('no %s data', 'reclaim'), $this->shortname));
             parent::log($feed->error());
         } else {
             $data = self::map_data($feed);
             parent::insert_posts($data);
             update_option('reclaim_' . $this->shortname . '_last_update', current_time('timestamp'));
         }
     } else {
         parent::log(sprintf(__('%s user data missing. No import was done', 'reclaim'), $this->shortname));
     }
 }
Example #9
0
	/**
	 * Get a parsed XML Feed Source
	 *
	 * @param   string   $url         Url for feed source.
	 * @param   integer  $cache_time  Time to cache feed for (using internal cache mechanism).
	 *
	 * @return  mixed  SimplePie parsed object on success, false on failure.
	 *
	 * @since   12.2
	 * @deprecated  4.0   Use JFeedFactory($url) instead.
	 *
	 * @note  In 3.2 will be proxied to JFeedFactory()
	 */
	public static function getFeedParser($url, $cache_time = 0)
	{
		JLog::add(__METHOD__ . ' is deprecated.   Use JFeedFactory() or supply Simple Pie instead.', JLog::WARNING, 'deprecated');

		$cache = JFactory::getCache('feed_parser', 'callback');

		if ($cache_time > 0)
		{
			$cache->setLifeTime($cache_time);
		}

		$simplepie = new SimplePie(null, null, 0);

		$simplepie->enable_cache(false);
		$simplepie->set_feed_url($url);
		$simplepie->force_feed(true);

		$contents = $cache->get(array($simplepie, 'init'), null, false, false);

		if ($contents)
		{
			return $simplepie;
		}

		JLog::add(JText::_('JLIB_UTIL_ERROR_LOADING_FEED_DATA'), JLog::WARNING, 'jerror');

		return false;
	}
Example #10
0
 /**
  * Generate the module
  */
 protected function compile()
 {
     /** @var PageModel $objPage */
     global $objPage;
     if ($this->rss_template != 'rss_default') {
         $this->strTemplate = $this->rss_template;
         /** @var FrontendTemplate|object $objTemplate */
         $objTemplate = new \FrontendTemplate($this->strTemplate);
         $this->Template = $objTemplate;
         $this->Template->setData($this->arrData);
     }
     $this->Template->link = $this->objFeed->get_link();
     $this->Template->title = $this->objFeed->get_title();
     $this->Template->language = $this->objFeed->get_language();
     $this->Template->description = $this->objFeed->get_description();
     $this->Template->copyright = $this->objFeed->get_copyright();
     // Add image
     if ($this->objFeed->get_image_url()) {
         $this->Template->image = true;
         $this->Template->src = $this->objFeed->get_image_url();
         $this->Template->alt = $this->objFeed->get_image_title();
         $this->Template->href = $this->objFeed->get_image_link();
         $this->Template->height = $this->objFeed->get_image_height();
         $this->Template->width = $this->objFeed->get_image_width();
     }
     // Get the items (see #6107)
     $arrItems = array_slice($this->objFeed->get_items(0, intval($this->numberOfItems) + intval($this->skipFirst)), intval($this->skipFirst), intval($this->numberOfItems) ?: null);
     $limit = count($arrItems);
     $offset = 0;
     // Split pages
     if ($this->perPage > 0) {
         // Get the current page
         $id = 'page_r' . $this->id;
         $page = \Input::get($id) !== null ? \Input::get($id) : 1;
         // Do not index or cache the page if the page number is outside the range
         if ($page < 1 || $page > max(ceil(count($arrItems) / $this->perPage), 1)) {
             throw new PageNotFoundException('Page not found: ' . \Environment::get('uri'));
         }
         // Set limit and offset
         $offset = ($page - 1) * $this->perPage;
         $limit = $this->perPage + $offset;
         $objPagination = new \Pagination(count($arrItems), $this->perPage, \Config::get('maxPaginationLinks'), $id);
         $this->Template->pagination = $objPagination->generate("\n  ");
     }
     $items = array();
     $last = min($limit, count($arrItems)) - 1;
     /** @var \SimplePie_Item[] $arrItems */
     for ($i = $offset, $c = count($arrItems); $i < $limit && $i < $c; $i++) {
         $items[$i] = array('link' => $arrItems[$i]->get_link(), 'title' => $arrItems[$i]->get_title(), 'permalink' => $arrItems[$i]->get_permalink(), 'description' => str_replace(array('<?', '?>'), array('&lt;?', '?&gt;'), $arrItems[$i]->get_description()), 'class' => ($i == 0 ? ' first' : '') . ($i == $last ? ' last' : '') . ($i % 2 == 0 ? ' even' : ' odd'), 'pubdate' => \Date::parse($objPage->datimFormat, $arrItems[$i]->get_date('U')), 'category' => $arrItems[$i]->get_category(0), 'object' => $arrItems[$i]);
         // Add author
         if (($objAuthor = $arrItems[$i]->get_author(0)) != false) {
             $items[$i]['author'] = trim($objAuthor->name . ' ' . $objAuthor->email);
         }
         // Add enclosure
         if (($objEnclosure = $arrItems[$i]->get_enclosure(0)) != false) {
             $items[$i]['enclosure'] = $objEnclosure->get_link();
         }
     }
     $this->Template->items = array_values($items);
 }
Example #11
0
 function feed()
 {
     $feed = new SimplePie();
     $feed->set_raw_data($this->data);
     $feed->enable_cache(false);
     $feed->init();
     return $feed;
 }
Example #12
0
 /**
  * see http://simplepie.org/wiki/reference/start#simplepie_item
  *
  * @return array SimplePie_Item
  */
 static function getFeed($url)
 {
     $feed = new SimplePie();
     $feed->set_feed_url($url);
     $feed->enable_cache(false);
     $feed->init();
     return $feed;
 }
Example #13
0
 /**
  * RSS news page
  *
  * @param Request $request
  * @param Application $app
  */
 public function newsRss(Request $request, Application $app)
 {
     $simplePie = new \SimplePie();
     $simplePie->set_feed_url($app['resources']['news_rss']);
     $simplePie->init();
     $items = $simplePie->get_items();
     return $app['twig']->render('main/news-rss.twig', ['items' => $items]);
 }
Example #14
0
function lire_feed($url, $nb = 3)
{
    $feed = new SimplePie($url, '../client/cache/flux');
    $feed->init();
    $feed->handle_content_type();
    $tab = $feed->get_items();
    return count($tab) > 0 ? array_slice($tab, 0, 3) : false;
}
Example #15
0
 public function __construct($url)
 {
     $simplePie = new \SimplePie();
     $simplePie->set_cache_location($_SERVER['DOCUMENT_ROOT'] . '/zowcast/rest/cache');
     $simplePie->set_feed_url($url);
     $simplePie->init();
     $simplePie->handle_content_type();
     $this->rawData = $simplePie;
 }
 public function getItems()
 {
     $retVal = [];
     foreach ($this->simplePie->get_items() as $item) {
         /** @var \SimplePie_Item[] $item */
         $retVal[] = ['uuid' => $item->get_id(), 'author' => $item->get_author() ? $item->get_author()->get_name() : null, 'title' => $item->get_title(), 'content' => $item->get_content(), 'url' => $item->get_link(), 'date' => ($timeStamp = strtotime($item->get_gmdate())) > 0 ? $timeStamp : time()];
     }
     return $retVal;
 }
Example #17
0
 public function __construct($url)
 {
     $simplePie = new \SimplePie();
     $simplePie->set_cache_location(getcwd() . '/cache');
     $simplePie->set_feed_url($url);
     $simplePie->init();
     $simplePie->handle_content_type();
     $this->rawData = $simplePie;
 }
 public function setUp()
 {
     parent::setUp();
     $rss_sample = file_get_contents(dirname(__FILE__) . '/test-assets/rss');
     $sampleFeed = new SimplePie();
     $sampleFeed->set_raw_data($rss_sample);
     $sampleFeed->init();
     self::$sampleFeed = $sampleFeed;
     $this->testFeedUrl = 'http://www.theguardian.com/world/rss';
 }
Example #19
0
 public function __construct(array $feedUrls)
 {
     require_once __DIR__ . '/../autoloader.php';
     $feed = new \SimplePie();
     $feed->set_cache_location(__DIR__ . '/cache');
     $feed->set_feed_url($feedUrls);
     $feed->init();
     $feed->handle_content_type();
     $this->feed = $feed;
 }
Example #20
0
 public function getNews()
 {
     $feed = new SimplePie();
     $feed->set_feed_url('http://feeds.rapidfeeds.com/54082/');
     $success = $feed->init();
     if (!$success) {
         throw new Exception('couldnt init blog feed');
     }
     return $feed->get_items();
 }
Example #21
0
 public function respond()
 {
     $url = trim($this->matches[1]);
     $index = 0;
     if (isset($this->matches[2])) {
         $index = intval(trim($this->matches[2]));
         $index = $index - 1;
         $index = max(0, $index);
     }
     $error_level = error_reporting();
     error_reporting($error_level ^ E_USER_NOTICE);
     $feed = new \SimplePie();
     if ($this->cacheEnabled()) {
         $feed->set_cache_location($this->config['cache_directory']);
         $feed->set_cache_duration(600);
     }
     $feed->set_feed_url($url);
     $feed->init();
     $feed->handle_content_type();
     if ($index > $feed->get_item_quantity() - 1) {
         $index = $feed->get_item_quantity() - 1;
     }
     $item = $feed->get_item($index);
     $result = null;
     if ($item) {
         $title = html_entity_decode($item->get_title());
         $link = $item->get_permalink();
         $date = $item->get_date();
         $i = $index + 1;
         $result = "[{$i}] {$date} - {$title} - {$link}";
     }
     error_reporting($error_level);
     return $result;
 }
 static function parseFeed($url, $omitDB = false)
 {
     global $wgOut;
     //reset array
     self::$data = array('feedTitle' => '', 'images' => array());
     if (!$omitDB) {
         //check DB for this URL - we might have it already (background task will refresh it)
         $data = self::getDataByUrl($url);
     }
     if ($omitDB || is_null($data)) {
         //no data in DB - fetch from feed
         $itemCount = 0;
         $rssContent = Http::get($url);
         $feed = new SimplePie();
         $feed->set_raw_data($rssContent);
         $feed->init();
         self::$data['feedTitle'] = $feed->get_title();
         foreach ($feed->get_items() as $item) {
             $enclosures = $item->get_enclosures();
             $enclosuresFound = false;
             //we have enclosures - use them instead of content of feed (usually there are bigger image while content uses thumbnails)
             if (!is_null($enclosures)) {
                 foreach ($enclosures as $enclosure) {
                     $type = $enclosure->get_type();
                     if (!empty($type) && substr($type, 0, 6) === 'image/') {
                         self::$data['images'][] = array('src' => $enclosure->get_link(), 'caption' => $item->get_title(), 'link' => $item->get_link());
                         $enclosuresFound = true;
                         break;
                         //one image per feed
                     }
                 }
             }
             //if enclosures has not been found or doesn't contain any images - use regular method
             if (!$enclosuresFound) {
                 //look for <img /> tags
                 $description = $item->get_description();
                 preg_match('/<img .*?src=([\'"])(.*?\\.(?:jpg|jpeg|gif|png))\\1/', $description, $matches);
                 if (!empty($matches[2])) {
                     self::$data['images'][] = array('src' => $matches[2], 'caption' => $item->get_title(), 'link' => $item->get_link());
                 }
             }
             if (count(self::$data['images']) >= 20 || ++$itemCount > 50) {
                 break;
                 //take up to 20 images, from up to 50 articles.
             }
         }
         //store data in DB only if valid rss (images found)
         if (count(self::$data['images'])) {
             self::setData($url, self::$data);
         }
     } else {
         self::$data = $data;
     }
     return self::$data;
 }
Example #23
0
 public function createSimplePieObject($fileName)
 {
     $filePath = self::calcFixtureFilePath($fileName);
     $feed = new SimplePie();
     $feed->set_file(new SimplePie_File($filePath));
     $feed->set_cache_location(sfConfig::get('sf_cache_dir'));
     if (!@$feed->init()) {
         return false;
     }
     return $feed;
 }
Example #24
0
function rss($url)
{
    $feed = new SimplePie();
    $feed->set_feed_url($url);
    $feed->handle_content_type();
    // Display content:
    echo '<h2>' . $feed->get_title() . '<br />';
    foreach ($feed->get_items() as $item) {
        echo $item->get_title();
    }
}
Example #25
0
 /**
  * Run a test using a sprintf template and data
  *
  * @param string $template 
  */
 protected function checkFromTemplate($template, $data, $expected)
 {
     if (!is_array($data)) {
         $data = array($data);
     }
     $xml = vsprintf($template, $data);
     $feed = new SimplePie();
     $feed->set_raw_data($xml);
     $feed->enable_cache(false);
     $feed->init();
     return $feed;
 }
 /**
  * Register the service provider.
  *
  * @return  void
  */
 public function register()
 {
     $this->app['feed.parser'] = function ($app) {
         $cache = PATH_APP . DS . 'cache';
         $cache .= DS . (isset($app['client']->alias) ? $app['client']->alias : $app['client']->name);
         include_once PATH_CORE . DS . 'libraries' . DS . 'simplepie' . DS . 'simplepie.php';
         $reader = new \SimplePie(null, $cache, $app['config']->get('cachetime', 15));
         $reader->enable_cache(false);
         $reader->force_feed(true);
         return $reader;
     };
 }
Example #27
0
 public function item_content($index = 0)
 {
     $this->fetch_feed();
     if (!$this->feed) {
         return false;
     }
     /** @var SimplePie_Item[] $items */
     $items = $this->feed->get_items($index, 1);
     if (empty($items)) {
         return false;
     }
     return $items[0]->get_content();
 }
Example #28
0
 private function setFeeds()
 {
     $feeds = $this->_db->queryAll('SELECT id, url FROM feeds WHERE user = ?', $this->getIdUser());
     for ($i = 0, $e = sizeof($feeds); $i < $e; ++$i) {
         $feed = $feeds[$i];
         $pie = new SimplePie();
         $pie->set_feed_url($feed['url']);
         $pie->set_cache_location(rtrim(DIR_TPL_COMPILE, '/'));
         $pie->init();
         $pie->handle_content_type();
         $this->feeds[] = array('feed' => $pie, 'id' => $feed['id']);
     }
 }
Example #29
0
 function tagAction()
 {
     $tag = $this->_request->getParam('tag');
     if (empty($tag)) {
         $this->_redirect('/index');
     }
     $feed = new SimplePie("http://baphled.wordpress.com/tag/{$tag}/feed");
     $feed->init();
     $this->view->description = $feed->get_description();
     $this->view->title = $feed->get_title();
     $this->view->items = $feed->get_items();
     $this->render('feed');
 }
Example #30
0
 public function displayslideshow()
 {
     $this->load->library('simplepie');
     $simplepie = new SimplePie();
     $simplepie->set_cache_location(APPPATH . '/cache');
     $simplepie->set_feed_url('http://feeds.feedburner.com/the99percent/DPIn');
     $simplepie->init();
     //echo $simplepie->get_title();
     $simplepie->handle_content_type();
     $data['feed'] = $simplepie;
     //$this->load->view("/feed/listing.php", $data);
     $this->load->view("/feed/slideshow.php", $data);
 }