OSDN Git Service

Cleankup. Remove redundant tabs and spaces with sed 's/[ ][ ]*$//'
[pukiwiki/pukiwiki.git] / plugin / rss10.inc.php
1 <?php
2 /////////////////////////////////////////////////
3 // PukiWiki - Yet another WikiWikiWeb clone.
4 //
5 // $Id: rss10.inc.php,v 1.12 2004/07/31 03:09:20 henoheno Exp $
6 //
7 // RecentChanges ¤Î RSS ¤ò½ÐÎÏ
8 function plugin_rss10_action()
9 {
10         global $script,$rss_max,$page_title,$whatsnew;
11         global $trackback;
12
13         $self = (preg_match('#^https?://#',$script) ? $script : get_script_uri());
14         if ($self === FALSE)
15         {
16                 die_message("please set '\$script' in ".INI_FILE);
17         }
18
19         $page_title_utf8 = mb_convert_encoding($page_title,'UTF-8',SOURCE_ENCODING);
20
21         $items = $rdf_li = '';
22
23         if (!file_exists(CACHE_DIR.'recent.dat'))
24         {
25                 return '';
26         }
27         $recent = file(CACHE_DIR.'recent.dat');
28         $lines = array_splice($recent,0,$rss_max);
29         foreach ($lines as $line)
30         {
31                 list($time,$page) = explode("\t",rtrim($line));
32                 $r_page = rawurlencode($page);
33                 $title = mb_convert_encoding($page,'UTF-8',SOURCE_ENCODING);
34                 // 'O'¤¬½ÐÎϤ¹¤ë»þ¹ï¤ò'+09:00'¤Î·Á¤ËÀ°·Á
35                 $dc_date = substr_replace(get_date('Y-m-d\TH:i:sO',$time),':',-2,0);
36
37 //              $desc = get_date('D, d M Y H:i:s T',$time);
38 // <description>$desc</description>
39
40                 $dc_identifier = $trackback_ping = '';
41                 if ($trackback)
42                 {
43                         $tb_id = md5($r_page);
44                         $dc_identifier = " <dc:identifier>$self?$r_page</dc:identifier>";
45                         $trackback_ping = " <trackback:ping>$self?tb_id=$tb_id</trackback:ping>";
46                 }
47                 $items .= <<<EOD
48 <item rdf:about="$self?$r_page">
49  <title>$title</title>
50  <link>$self?$r_page</link>
51  <dc:date>$dc_date</dc:date>
52 $dc_identifier
53 $trackback_ping
54 </item>
55
56 EOD;
57                 $rdf_li .= "    <rdf:li rdf:resource=\"$self?$r_page\" />\n";
58         }
59
60         $xmlns_trackback = $trackback ?
61                 '  xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"' : '';
62
63         header('Content-type: application/xml');
64
65         $r_whatsnew = rawurlencode($whatsnew);
66
67         print <<<EOD
68 <?xml version="1.0" encoding="utf-8"?>
69
70 <rdf:RDF
71   xmlns:dc="http://purl.org/dc/elements/1.1/"
72 $xmlns_trackback
73   xmlns="http://purl.org/rss/1.0/"
74   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
75   xml:lang="ja">
76
77  <channel rdf:about="$self?$r_whatsnew">
78   <title>$page_title_utf8</title>
79   <link>$self?$r_whatsnew</link>
80   <description>PukiWiki RecentChanges</description>
81   <items>
82    <rdf:Seq>
83 $rdf_li
84    </rdf:Seq>
85   </items>
86  </channel>
87
88 $items
89 </rdf:RDF>
90 EOD;
91         exit;
92 }
93 ?>