7 * LICENSE: This source file is licensed under the terms of the GNU General Public License.
9 * @package Magic3 Framework
10 * @author 平田直毅(Naoki Hirata) <naoki@aplo.co.jp>
11 * @copyright Copyright 2006-2008 Magic3 Project.
12 * @license http://www.gnu.org/copyleft/gpl.html GPL License
13 * @version SVN: $Id: rss.inc.php 1137 2008-10-27 04:14:04Z fishbone $
14 * @link http://www.magic3.org
16 // Usage: plugin=rss[&ver=[0.91|1.0|2.0]] (Default: 0.91)
19 // RSS 0.9, 1.0 : RSS means 'RDF Site Summary'
20 // RSS 0.91, 0.92 : RSS means 'Rich Site Summary'
21 // RSS 2.0 : RSS means 'Really Simple Syndication' (born from RSS 0.92)
23 function plugin_rss_action()
25 //global $vars, $rss_max, $page_title, $whatsnew, $trackback;
26 global $rss_max, $page_title, $trackback;
29 //$version = isset($vars['ver']) ? $vars['ver'] : '';
30 $version = WikiParam::getVar('ver');
32 case '': $version = '0.91'; break; // Default
33 case '1': $version = '1.0'; break; // Sugar
34 case '2': $version = '2.0'; break; // Sugar
35 case '0.91': /* FALLTHROUGH */
36 case '1.0' : /* FALLTHROUGH */
38 default: die('Invalid RSS version!!');
41 //$recent = CACHE_DIR . 'recent.dat';
42 //if (! file_exists($recent)) die('recent.dat is not found');
43 $lines = WikiPage::getCacheRecentChanges();
44 if (empty($lines)) die('recent.dat is not found');
47 $page_title_utf8 = mb_convert_encoding($page_title, 'UTF-8', SOURCE_ENCODING);
48 $self = get_script_uri();
51 $items = $rdf_li = '';
53 //foreach (file_head($recent, $rss_max) as $line) {
54 $lineCount = $rss_max < count($lines) ? $rss_max : count($lines);
55 for ($i = 0; $i < $lineCount; $i++){
56 //list($time, $page) = explode("\t", rtrim($line));
57 list($time, $page) = explode("\t", rtrim($lines[$i]));
58 $r_page = rawurlencode($page);
59 $title = mb_convert_encoding($page, 'UTF-8', SOURCE_ENCODING);
60 $pageUrl = $self . WikiParam::convQuery("?$r_page");
63 case '0.91': /* FALLTHROUGH */
65 $date = get_date('D, d M Y H:i:s T', $time);
66 $date = ($version == '0.91') ?
67 ' <description>' . $date . '</description>' :
68 ' <pubDate>' . $date . '</pubDate>';
79 <link>$self?$r_page</link>
86 // Add <item> into <items>
87 $rdf_li .= ' <rdf:li rdf:resource="' . $self . WikiParam::convQuery('?' . $r_page) . '" />' . "\n";
89 $date = substr_replace(get_date('Y-m-d\TH:i:sO', $time), ':', -2, 0);
92 $tb_id = md5($r_page);
93 $trackback_ping = ' <trackback:ping>' . $self . WikiParam::convQuery('?tb_id=' . $tb_id, false) . '</trackback:ping>';
96 <item rdf:about="$pageUrl">
99 <dc:date>$date</dc:date>
100 <dc:identifier>$pageUrl</dc:identifier>
106 <item rdf:about="$self?$r_page">
107 <title>$title</title>
108 <link>$self?$r_page</link>
109 <dc:date>$date</dc:date>
110 <dc:identifier>$self?$r_page</dc:identifier>
120 $gPageManager->abortPage();
123 pkwk_common_headers();
124 header('Content-type: application/xml');
125 print '<?xml version="1.0" encoding="UTF-8"?>' . "\n\n";
127 //$r_whatsnew = rawurlencode($whatsnew);
128 $r_whatsnew = rawurlencode(WikiConfig::getWhatsnewPage());
129 $whatsnewUrl = $self . WikiParam::convQuery("?$r_whatsnew");
133 print '<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN"' .
134 ' "http://my.netscape.com/publish/formats/rss-0.91.dtd">' . "\n";
139 <rss version="$version">
141 <title>$page_title_utf8</title>
142 <link>$whatsnewUrl</link>
143 <description>PukiWiki RecentChanges</description>
144 <language>$lang</language>
151 <rss version="$version">
153 <title>$page_title_utf8</title>
154 <link>$self?$r_whatsnew</link>
155 <description>PukiWiki RecentChanges</description>
156 <language>$lang</language>
165 $xmlns_trackback = $trackback ?
166 ' xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"' : '';
169 xmlns:dc="http://purl.org/dc/elements/1.1/"
171 xmlns="http://purl.org/rss/1.0/"
172 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
174 <channel rdf:about="$whatsnewUrl">
175 <title>$page_title_utf8</title>
176 <link>$whatsnewUrl</link>
177 <description>PukiWiki RecentChanges</description>
190 xmlns:dc="http://purl.org/dc/elements/1.1/"
192 xmlns="http://purl.org/rss/1.0/"
193 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
195 <channel rdf:about="$self?$r_whatsnew">
196 <title>$page_title_utf8</title>
197 <link>$self?$r_whatsnew</link>
198 <description>PukiWiki RecentChanges</description>
213 $gPageManager->exitSystem();