extended to deal with URLs containing "?" function rss ($call){ $rss_params = array("desc" => 0, "date"=>"", "max"=> -1); $desc = false; $max = -1; $parts = array(); $url = ""; $params = ""; $parts = explode("?",$call); $url = array_shift($parts); if (count($parts) == 2 ) { $url .= "?".array_shift($parts); } if (count($parts) > 0) { $params = array_shift($parts); foreach (explode("&",$params) as $param) { list($name,$value) = explode("=",$param); $rss_params[$name]=$value; } } if ($rss_params[max] == 0) return; global $lang; define('MAGPIE_CACHE_ON', false); //we do our own caching define('MAGPIE_DIR', DOKU_INC.'inc/magpie/'); define('MAGPIE_OUTPUT_ENCODING','UTF-8'); //return all feeds as UTF-8 require_once(MAGPIE_DIR.'/rss_fetch.inc'); //disable warning while fetching $elvl = error_reporting(E_ERROR); $rss = fetch_rss($url); error_reporting($elvl); $this->doc .= '<dl class="rss">'; if($rss){ $max = ($rss_params[max]>0 && $rss_params[max] <= count($rss->items)) ? $rss_params[max] : count($rss->items); for ($i=0; $i<$max; $i++) { //foreach ($rss->items as $item ) { //print_r($item); $item = $rss->items[$i]; $this->doc .= '<dt>'; $this->externallink($item['link'],$item['title']); $this->doc .= '</dt>'; if ($rss_params[date] != "") { $this->doc .= '<dd class="date">' . date($rss_params[date],$item['date_timestamp']) . '</dd>'."\n"; } if ($rss_params[desc]) { $this->doc .= '<dd>' . $item['description'] . '</dd>'."\n"; } } }else{ $this->doc .= '<dt>'; $this->doc .= '<em>'.$lang['rssfailed'].'</em>'; $this->externallink($url); $this->doc .= '</dt>'; } $this->doc .= '</dl>'; } -- DokuWiki mailing list - more info at http://wiki.splitbrain.org/wiki:mailinglist