From f3f0262c480d7e509b008d37c90aed884532bba8 Mon Sep 17 00:00:00 2001 From: andi Date: Wed, 12 Jan 2005 21:24:54 +0100 Subject: Initial revision. darcs-hash:20050112202454-9977f-60936f24fe2092a30223627e0683de2df61d0c4a.gz --- feed.php | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 feed.php (limited to 'feed.php') diff --git a/feed.php b/feed.php new file mode 100644 index 000000000..66d694f53 --- /dev/null +++ b/feed.php @@ -0,0 +1,121 @@ +title = $conf['title']; + $rss->link = wl(); + $rss->syndicationURL = getBaseURL().'/feed.php'; + $rss->cssStyleSheet = getBaseURL().'/feed.css'; + + if($mode == 'list'){ + rssListNamespace($rss,$ns); + }else{ + rssRecentChanges($rss,$num); + } + + header('Content-Type: application/xml; charset='.$lang['encoding']); + print $rss->createFeed($type,$lang['encoding']); + + + +/* some functions */ + +function rssRecentChanges(&$rss,$num){ + + $recents = getRecents($num); + foreach(array_keys($recents) as $id){ + $desc = cleanDesc(parsedWiki($id)); + if(!empty($recents[$id]['sum'])){ + $desc = '['.strip_tags($recents[$id]['sum']).'] '.$desc; + } + $item = new FeedItem(); + $item->title = $id; + $item->link = wl($id,'rev='.$recents[$id]['date']); + $item->description = $desc; + $item->date = date('r',$recents[$id]['date']); + if(strpos($id,':')!==false){ + $item->category = substr($id,0,strrpos($id,':')); + } + if($recents[$id]['user']){ + $item->author = $recents[$id]['user'].'@'; + }else{ + $item->author = 'anonymous@'; + } + $item->author .= $recents[$id]['ip']; + + $rss->addItem($item); + } +} + +function rssListNamespace(&$rss,$ns){ + require_once("inc/search.php"); + global $conf; + + $ns=':'.cleanID($ns); + $ns=str_replace(':','/',$ns); + + $data = array(); + sort($data); + search($data,$conf['datadir'],'search_list','',$ns); + foreach($data as $row){ + $id = $row['id']; + $date = filemtime(wikiFN($id)); + $desc = cleanDesc(parsedWiki($id)); + $item = new FeedItem(); + $item->title = $id; + $item->link = wl($id,'rev='.$date); + $item->description = $desc; + $item->date = date('r',$date); + $rss->addItem($item); + } +} + +function cleanDesc($desc){ + //remove TOC + $desc = strip_tags($desc); + $desc = preg_replace('/[\n\r\t]/',' ',$desc); + $desc = preg_replace('/ /',' ',$desc); + $desc = substr($desc,0,250); + $desc = $desc.'...'; + return $desc; +} + +?> -- cgit v1.2.3