From c307266c769f339eea3cc1834cb5bb20d00a2f05 Mon Sep 17 00:00:00 2001 From: dhawes Date: Sun, 23 Jan 2005 19:40:33 +0000 Subject: [PATCH] Fixed error discovered by Gustav - after updating to use newest magpie I failed to update all instances of rss fetching. --- blocks/rss_client/block_rss_client_action.php | 69 ++++++++++++------- 1 file changed, 45 insertions(+), 24 deletions(-) diff --git a/blocks/rss_client/block_rss_client_action.php b/blocks/rss_client/block_rss_client_action.php index 5a5f5a1cb4..41a70533c8 100644 --- a/blocks/rss_client/block_rss_client_action.php +++ b/blocks/rss_client/block_rss_client_action.php @@ -2,6 +2,7 @@ require_once('../../config.php'); require_once($CFG->dirroot .'/rss/rsslib.php'); + require_once(MAGPIE_DIR .'rss_fetch.inc'); global $USER, $CFG; require_login(); @@ -46,12 +47,23 @@ } else if ($act == 'updfeed') { require_variable($url); - $rss = rss_get_feed($rssid, $url, $rsstype); - + // By capturing the output from fetch_rss this way + // error messages do not display and clutter up the moodle interface + // however, we do lose out on seeing helpful messages like "cache hit", etc. + ob_start(); + $rss = fetch_rss($url); + $rsserror = ob_get_contents(); + ob_end_clean(); + $dataobject->id = $rssid; $dataobject->type = $rsstype; - $dataobject->description = addslashes($rss->channel['description']); - $dataobject->title = addslashes($rss->channel['title']); + if ($rss === false) { + $dataobject->description = addslashes($rss->channel['description']); + $dataobject->title = addslashes($rss->channel['title']); + } else { + $dataobject->description = ''; + $dataobject->title = ''; + } $dataobject->url = addslashes($url); if (!update_record('block_rss_client', $dataobject)) { @@ -78,26 +90,30 @@ error('There was an error trying to add a new rss feed:'. $url); } - $rss = rss_get_feed($rssid, $url, $rsstype); - - if (empty($rss)) { - print 'There was an error loading this rss feed. You may want to verify the url you have specified before using it.'; - } + // By capturing the output from fetch_rss this way + // error messages do not display and clutter up the moodle interface + // however, we do lose out on seeing helpful messages like "cache hit", etc. + ob_start(); + $rss = fetch_rss($rss_record->url); + $rsserror = ob_get_contents(); + ob_end_clean(); - $dataobject->id = $rssid; - if (!empty($rss->channel['description'])) { - $dataobject->description = addslashes($rss->channel['description']); - } - if (!empty($rss->channel['title'])) { - $dataobject->title = addslashes($rss->channel['title']); - } - - if (!update_record('block_rss_client', $dataobject)) { - error('There was an error trying to update rss feed with id:'. $rssid); + if ($rss === false) { + print 'There was an error loading this rss feed. You may want to verify the url you have specified before using it.'; //Daryl Hawes note: localize this line + } else { + + $dataobject->id = $rssid; + if (!empty($rss->channel['description'])) { + $dataobject->description = addslashes($rss->channel['description']); + } else if (!empty($rss->channel['title'])) { + $dataobject->title = addslashes($rss->channel['title']); + } + if (!update_record('block_rss_client', $dataobject)) { + error('There was an error trying to update rss feed with id:'. $rssid); + } + print ''. get_string('block_rss_feed_added', 'block_rss_client') .''; } - rss_display_feeds(); - print ''. get_string('block_rss_feed_added', 'block_rss_client') .''; rss_get_form($act, $url, $rssid, $rsstype); } else if ( $act == 'rss_edit') { @@ -132,9 +148,14 @@ if (!$rss_record->id){ print ''. get_string('block_rss_could_not_find_feed', 'block_rss_client') .': '. $rssid .''; } else { - // echo 'rssid = '. $rssid .', url ='. $rss_record->url .', type = '. $rss_record->type; - $rss = rss_get_feed($rssid, $rss_record->url, $rss_record->type); - // echo print_object($rss); + // By capturing the output from fetch_rss this way + // error messages do not display and clutter up the moodle interface + // however, we do lose out on seeing helpful messages like "cache hit", etc. + ob_start(); + $rss = fetch_rss($url); + $rsserror = ob_get_contents(); + ob_end_clean(); + print ''."\n"; print ''."\n"; for($y=0; $y < count($rss->items); $y++) { -- 2.39.5
'. $rss->channel['title'] .'