オープンソース・ソフトウェアの開発とダウンロード

CVS リポジトリの参照

Diff of /pukiwiki/pukiwiki/plugin/rss10.inc.php

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.1 by panda, Mon Jan 27 05:38:46 2003 UTC revision 1.10 by arino, Sun Feb 29 07:43:21 2004 UTC
# Line 7  Line 7 
7  // RecentChanges の RSS を出力  // RecentChanges の RSS を出力
8  function plugin_rss10_action()  function plugin_rss10_action()
9  {  {
10          global $script,$BracketName,$rss_max,$page_title,$whatsnew,$BracketName;          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                    
         $self = 'http://'.SERVER_NAME.PHP_SELF.'?';  
   
         $page_title_utf8 = $page_title;  
         if (function_exists('mb_convert_encoding'))  
                 $page_title_utf8 = mb_convert_encoding($page_title_utf8,'UTF-8','auto');  
   
21          $items = $rdf_li = '';          $items = $rdf_li = '';
         $lines = array_splice(preg_grep('/^\/\//',get_source($whatsnew)),0,$rss_max);  
22                    
23          foreach($lines as $line) {          if (!file_exists(CACHE_DIR.'recent.dat'))
24                  if (!preg_match("/^\/\/(\d+)\s($BracketName)$/",$line,$match))          {
25                          continue; // fatal error, die?                  return '';
26                            }
27                  $page = $match[2];          $recent = file(CACHE_DIR.'recent.dat');
28                            $lines = array_splice($recent,0,$rss_max);
29                  $r_url = rawurlencode($page);          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                  $title = strip_bracket($match[2]);  //              $desc = get_date('D, d M Y H:i:s T',$time);
38                  if (function_exists('mb_convert_encoding'))  // <description>$desc</description>
                         $title = mb_convert_encoding($title,'UTF-8','auto');  
39                                    
40                  $dcdate = get_date('Y-m-d\TH:i:sO');                  $dc_identifier = $trackback_ping = '';
41                  $desc = get_date('D, d M Y H:i:s T',get_filetime($page));                  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?plugin=tb&amp;tb_id=$tb_id</trackback:ping>";
46                    }
47                  $items .= <<<EOD                  $items .= <<<EOD
48  <item rdf:about="$self$r_url">  <item rdf:about="$self?$r_page">
49   <title>$title</title>   <title>$title</title>
50   <link>$self$r_url</link>   <link>$self?$r_page</link>
51   <dc:date>$dcdate</dc:date>   <dc:date>$dc_date</dc:date>
52   <description>$desc</description>  $dc_identifier
53    $trackback_ping
54  </item>  </item>
55    
56  EOD;  EOD;
57                  $rdf_li .= "    <rdf:li rdf:resource=\"$self$r_url\" />\n";                  $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');          header('Content-type: application/xml');
64                    
65          print <<<EOD          print <<<EOD
# Line 51  EOD; Line 67  EOD;
67    
68  <rdf:RDF  <rdf:RDF
69    xmlns:dc="http://purl.org/dc/elements/1.1/"    xmlns:dc="http://purl.org/dc/elements/1.1/"
70    $xmlns_trackback
71    xmlns="http://purl.org/rss/1.0/"    xmlns="http://purl.org/rss/1.0/"
72    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
73    xml:lang="ja">    xml:lang="ja">
74    
75   <channel rdf:about="{$self}rss">   <channel rdf:about="$self?$whatsnew">
76    <title>$page_title_utf8</title>    <title>$page_title_utf8</title>
77    <link>$self$whatsnew</link>    <link>$self?$whatsnew</link>
78    <description>PukiWiki RecentChanges</description>    <description>PukiWiki RecentChanges</description>
79    <items>    <items>
80     <rdf:Seq>     <rdf:Seq>

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.10

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26