[dokuwiki] Re: rss with details ?

  • From: Jan Galinski <jangal74@xxxxxxxxxxxxxx>
  • To: dokuwiki@xxxxxxxxxxxxx
  • Date: Fri, 4 Nov 2005 10:41:18 +0100

Verfeinert und jetzt mit {{rss>URL?name1=value1&name2=value2&...}}
konfigurierbar

/**
     * Renders an RSS feed using Magpie
     *
     * @author Andreas Gohr <andi@xxxxxxxxxxxxxx>
     */
    function rss ($url){

        $rss_params = array("desc" => 0, "date"=>"", "max"=> -1);
        $desc = false;
        $max = -1;



        list($url,$params) = explode("?",$url);


        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

Other related posts: