Implementation of RSS 1.0 is merged from rss10 plugin (but always dc:identifier).
/////////////////////////////////////////////////
// PukiWiki - Yet another WikiWikiWeb clone.
//
/////////////////////////////////////////////////
// PukiWiki - Yet another WikiWikiWeb clone.
//
-// $Id: html.php,v 1.11 2004/11/02 13:45:37 henoheno Exp $
+// $Id: html.php,v 1.12 2004/11/07 12:18:14 henoheno Exp $
$_LINK['help'] = "$script?" . rawurlencode($help_page);
$_LINK['list'] = "$script?cmd=list";
$_LINK['new'] = "$script?plugin=newpage&refer=$r_page";
$_LINK['help'] = "$script?" . rawurlencode($help_page);
$_LINK['list'] = "$script?cmd=list";
$_LINK['new'] = "$script?plugin=newpage&refer=$r_page";
- $_LINK['rdf'] = "$script?cmd=rss10";
+ $_LINK['rdf'] = "$script?cmd=rss&ver=1.0";
$_LINK['recent'] = "$script?" . rawurlencode($whatsnew);
$_LINK['refer'] = "$script?plugin=referer&page=$r_page";
$_LINK['reload'] = "$script?$r_page";
$_LINK['recent'] = "$script?" . rawurlencode($whatsnew);
$_LINK['refer'] = "$script?plugin=referer&page=$r_page";
$_LINK['reload'] = "$script?$r_page";
/////////////////////////////////////////////////
// PukiWiki - Yet another WikiWikiWeb clone.
//
/////////////////////////////////////////////////
// PukiWiki - Yet another WikiWikiWeb clone.
//
-// $Id: rss.inc.php,v 1.7 2004/07/31 03:09:20 henoheno Exp $
+// $Id: rss.inc.php,v 1.8 2004/11/07 12:18:14 henoheno Exp $
//
// RecentChanges ¤Î RSS ¤ò½ÐÎÏ
//
// RecentChanges ¤Î RSS ¤ò½ÐÎÏ
+// »È¤¤Êý :
+// rss.inc.php?ver=[version]
+// version¤Ï0.91¤«1.0¤«2.0¤Î¤¦¤Á¤É¤ì¤«¡£
function plugin_rss_action()
{
function plugin_rss_action()
{
- global $script,$rss_max,$page_title,$whatsnew;
+ global $vars,$script,$rss_max,$page_title,$whatsnew,$trackback;
+
+ $version = isset($vars['ver']) ? $vars['ver'] : '0.91';
$self = (preg_match('#^https?://#',$script) ? $script : get_script_uri());
$self = (preg_match('#^https?://#',$script) ? $script : get_script_uri());
- if ($self === FALSE)
- {
die_message("please set '\$script' in ".INI_FILE);
}
$page_title_utf8 = mb_convert_encoding($page_title,'UTF-8',SOURCE_ENCODING);
die_message("please set '\$script' in ".INI_FILE);
}
$page_title_utf8 = mb_convert_encoding($page_title,'UTF-8',SOURCE_ENCODING);
- if (!file_exists(CACHE_DIR.'recent.dat'))
- {
+ if (!file_exists(CACHE_DIR.'recent.dat')) {
return '';
}
$recent = file(CACHE_DIR.'recent.dat');
$lines = array_splice($recent,0,$rss_max);
return '';
}
$recent = file(CACHE_DIR.'recent.dat');
$lines = array_splice($recent,0,$rss_max);
- foreach ($lines as $line)
- {
+ foreach ($lines as $line) {
list($time,$page) = explode("\t",rtrim($line));
$r_page = rawurlencode($page);
$title = mb_convert_encoding($page,'UTF-8',SOURCE_ENCODING);
list($time,$page) = explode("\t",rtrim($line));
$r_page = rawurlencode($page);
$title = mb_convert_encoding($page,'UTF-8',SOURCE_ENCODING);
- $desc = get_date('D, d M Y H:i:s T',$time);
- $items .= <<<EOD
+ switch ($version) {
+ case '0.91':
+ /* FALLTHROUGH */
+ case '2.0':
+ $date = get_date('D, d M Y H:i:s T',$time);
+ $date = ($version == '0.91') ?
+ " <description>" . $date . "</description>" :
+ " <pubDate>" . $date . "</pubDate>";
+ $items .= <<<EOD
<item>
<title>$title</title>
<link>$self?$r_page</link>
<item>
<title>$title</title>
<link>$self?$r_page</link>
- <description>$desc</description>
+$date
+</item>
+
+EOD;
+ break;
+
+ case '1.0':
+ $dc_date = substr_replace(get_date('Y-m-d\TH:i:sO',$time),':',-2,0);
+ $dc_identifier = " <dc:identifier>$self?$r_page</dc:identifier>";
+ $trackback_ping = '';
+ $rdf_li .= " <rdf:li rdf:resource=\"$self?$r_page\" />\n";
+ if ($trackback) {
+ $tb_id = md5($r_page);
+ $trackback_ping = " <trackback:ping>$self?tb_id=$tb_id</trackback:ping>";
+ }
+ $items .= <<<EOD
+<item rdf:about="$self?$r_page">
+ <title>$title</title>
+ <link>$self?$r_page</link>
+ <dc:date>$dc_date</dc:date>
+$dc_identifier
+$trackback_ping
+ break;
+ default:
+ die("Invalid RSS version!!");
+ break;
+ }
}
header('Content-type: application/xml');
$r_whatsnew = rawurlencode($whatsnew);
}
header('Content-type: application/xml');
$r_whatsnew = rawurlencode($whatsnew);
- print <<<EOD
-<?xml version="1.0" encoding="UTF-8"?>
+ print '<?xml version="1.0" encoding="UTF-8"?>' . "\n\n";
+ switch ($version) {
+ case '0.91':
+ print '<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN"' .
+ ' "http://my.netscape.com/publish/formats/rss-0.91.dtd">' . "\n";
+ /* FALLTHROUGH */
-<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN"
- "http://my.netscape.com/publish/formats/rss-0.91.dtd">
-
-<rss version="0.91">
-
-<channel>
-<title>$page_title_utf8</title>
-<link>$self?$r_whatsnew</link>
-<description>PukiWiki RecentChanges</description>
-<language>ja</language>
+ case '2.0':
+ print <<<EOD
+<rss version="$version">
+ <channel>
+ <title>$page_title_utf8</title>
+ <link>$self?$r_whatsnew</link>
+ <description>PukiWiki RecentChanges</description>
+ <language>ja</language>
+ break;
+ case '1.0':
+ $xmlns_trackback = $trackback ?
+ ' xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"' : '';
+ print <<<EOD
+<rdf:RDF
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+$xmlns_trackback
+ xmlns="http://purl.org/rss/1.0/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xml:lang="ja">
+ <channel rdf:about="$self?$r_whatsnew">
+ <title>$page_title_utf8</title>
+ <link>$self?$r_whatsnew</link>
+ <description>PukiWiki RecentChanges</description>
+ <items>
+ <rdf:Seq>
+$rdf_li
+ </rdf:Seq>
+ </items>
+ </channel>
+
+$items
+</rdf:RDF>
+EOD;
+ break;
+ }