diff --git a/feed.php b/feed.php index c241a610f504bf1e68e738b1e3622c466ace9e3a..521f9b96842fb56a6ef61e4fa138049c9162bad4 100644 --- a/feed.php +++ b/feed.php @@ -13,14 +13,7 @@ require_once(DOKU_INC.'inc/feedcreator.class.php'); require_once(DOKU_INC.'inc/auth.php'); - //set auth header for login FIXME: is this used anymore??? - if($_REQUEST['login'] && !isset($_SERVER['PHP_AUTH_USER'])){ - header('WWW-Authenticate: Basic realm="'.$conf['title'].'"'); - header('HTTP/1.0 401 Unauthorized'); - auth_logoff(); - } - - //close sesseion + //close session session_write_close(); @@ -44,13 +37,20 @@ $type = 'RSS1.0'; } - //some defaults for the feed - $CACHEGROUP = 'feed'; - $conf['typography'] = false; - $conf['canonical'] = true; - $parser['toc'] = false; + // the feed is dynamic - we need a cache for each combo + // (but most people just use the default feed so it's still effective) + $cache = getCacheName($num.$type.$mode.$ns.$ltype.$_SERVER['REMOTE_USER'],'.feed'); + + // check cacheage and deliver if nothing has changed since last + // time (with 5 minutes settletime) + $cmod = @filemtime($cache); // 0 if not exists + if($cmod && ($cmod+(5*60) >= @filemtime($conf['changelog']))){ + header('Content-Type: application/xml; charset=utf-8'); + print io_readFile($cache); + exit; + } -# $rss = new UniversalFeedCreator(); + // create new feed $rss = new DokuWikiFeedCreator(); $rss->title = $conf['title']; $rss->link = DOKU_URL; @@ -69,8 +69,14 @@ rssRecentChanges($rss,$num,$ltype); } + $feed = $rss->createFeed($type,'utf-8'); + + // save cachefile + io_saveFile($cache,$feed); + + // finally deliver header('Content-Type: application/xml; charset=utf-8'); - print $rss->createFeed($type,'utf-8'); + print $feed; // ---------------------------------------------------------------- //