summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandi <andi@splitbrain.org>2005-04-23 12:32:19 +0200
committerandi <andi@splitbrain.org>2005-04-23 12:32:19 +0200
commit4d58bd99b9ee57a913e569eb83b609734dee7da9 (patch)
tree2a41ace109087a5eb4d675f93933e319163d6c55
parent7b7154fb651bff81672b7a5c0b2a0334ea53171e (diff)
downloadrpg-4d58bd99b9ee57a913e569eb83b609734dee7da9.tar.gz
rpg-4d58bd99b9ee57a913e569eb83b609734dee7da9.tar.bz2
feed fixed, linkto param added
darcs-hash:20050423103219-9977f-2373bc3ad2f6524f9076fe2cc91f891cd451e50e.gz
-rw-r--r--feed.php43
-rw-r--r--inc/html.php14
2 files changed, 39 insertions, 18 deletions
diff --git a/feed.php b/feed.php
index 839160a7b..4efec0a0a 100644
--- a/feed.php
+++ b/feed.php
@@ -8,10 +8,10 @@
if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__)).'/');
require_once(DOKU_INC.'inc/init.php');
- require_once("inc/common.php");
- require_once("inc/parser.php");
- require_once("inc/feedcreator.class.php");
- require_once("inc/auth.php");
+ require_once(DOKU_INC.'inc/common.php');
+ require_once(DOKU_INC.'inc/parserutils.php');
+ require_once(DOKU_INC.'inc/feedcreator.class.php');
+ require_once(DOKU_INC.'inc/auth.php');
//set auth header for login
if($_REQUEST['login'] && !isset($_SERVER['PHP_AUTH_USER'])){
@@ -21,10 +21,11 @@
}
- $num = $_REQUEST['num'];
- $type = $_REQUEST['type'];
- $mode = $_REQUEST['mode'];
- $ns = $_REQUEST['ns'];
+ $num = $_REQUEST['num'];
+ $type = $_REQUEST['type'];
+ $mode = $_REQUEST['mode'];
+ $ns = $_REQUEST['ns'];
+ $ltype = $_REQUEST['linkto'];
switch ($type){
case 'rss':
@@ -62,11 +63,11 @@
if($mode == 'list'){
rssListNamespace($rss,$ns);
}else{
- rssRecentChanges($rss,$num);
+ rssRecentChanges($rss,$num,$ltype);
}
- header('Content-Type: application/xml; charset='.$lang['encoding']);
- print $rss->createFeed($type,$lang['encoding']);
+ header('Content-Type: application/xml; charset=utf-8');
+ print $rss->createFeed($type,'utf-8');
// ---------------------------------------------------------------- //
@@ -75,16 +76,27 @@
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function rssRecentChanges(&$rss,$num){
+function rssRecentChanges(&$rss,$num,$ltype){
$recents = getRecents($num);
foreach(array_keys($recents) as $id){
- $desc = cleanDesc(parsedWiki($id));
+ $desc = cleanDesc(p_wiki_xhtml($id,'',false));
$item = new FeedItem();
$item->title = $id;
if(!empty($recents[$id]['sum'])){
$item->title .= ': '.strip_tags($recents[$id]['sum']);
}
- $item->link = wl($id,'rev='.$recents[$id]['date'],true);
+
+ switch ($ltype){
+ case 'page':
+ $item->link = wl($id,'rev='.$recents[$id]['date'],true);
+ break;
+ case 'rev':
+ $item->link = wl($id,'do=revisions&amp;rev='.$recents[$id]['date'],true);
+ break;
+ default:
+ $item->link = wl($id,'do=diff&amp;'.$recents[$id]['date'],true);
+ }
+
$item->description = $desc;
$item->date = date('r',$recents[$id]['date']);
if(strpos($id,':')!==false){
@@ -121,7 +133,7 @@ function rssListNamespace(&$rss,$ns){
foreach($data as $row){
$id = $row['id'];
$date = filemtime(wikiFN($id));
- $desc = cleanDesc(parsedWiki($id));
+ $desc = cleanDesc(p_wiki_xhtml($id,'',false));
$item = new FeedItem();
$item->title = $id;
$item->link = wl($id,'rev='.$date,true);
@@ -141,6 +153,7 @@ function rssListNamespace(&$rss,$ns){
*/
function cleanDesc($desc){
//remove TOC
+ $desc = preg_replace('!<div class="toc">.*?(</div>\n</div>)!s','',$desc);
$desc = strip_tags($desc);
$desc = preg_replace('/[\n\r\t]/',' ',$desc);
$desc = preg_replace('/ /',' ',$desc);
diff --git a/inc/html.php b/inc/html.php
index 06060e2db..9df9aae72 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -633,10 +633,18 @@ function html_diff($text='',$intro=true){
$lang['current'];
$right = $lang['yours'];
}else{
- $df = new Diff(split("\n",htmlspecialchars(rawWiki($ID,$REV))),
+ if($REV){
+ $r = $REV;
+ }else{
+ //use last revision if none given
+ $revs = getRevisions($ID);
+ $r = $revs[0];
+ }
+
+ $df = new Diff(split("\n",htmlspecialchars(rawWiki($ID,$r))),
split("\n",htmlspecialchars(rawWiki($ID,''))));
- $left = '<a class="wikilink1" href="'.wl($ID,"rev=$REV").'">'.
- $ID.' '.date($conf['dformat'],$REV).'</a>';
+ $left = '<a class="wikilink1" href="'.wl($ID,"rev=$r").'">'.
+ $ID.' '.date($conf['dformat'],$r).'</a>';
$right = '<a class="wikilink1" href="'.wl($ID).'">'.
$ID.' '.date($conf['dformat'],@filemtime(wikiFN($ID))).'</a> '.
$lang['current'];