OSDN Git Service

BugTrack/2176 showrss: Fix character encoding issues etc.
[pukiwiki/pukiwiki.git] / plugin / rss.inc.php
index 8290897..1f76202 100644 (file)
@@ -1,9 +1,11 @@
 <?php
 // PukiWiki - Yet another WikiWikiWeb clone
-// $Id: rss.inc.php,v 1.18 2006/03/05 15:01:31 henoheno Exp $
+// rss.inc.php
+// Copyright 2003-2017 PukiWiki Development Team
+// License: GPL v2 or (at your option) any later version
 //
 // RSS plugin: Publishing RSS of RecentChanges
-//
+
 // Usage: plugin=rss[&ver=[0.91|1.0|2.0]] (Default: 0.91)
 //
 // NOTE for acronyms
@@ -13,7 +15,7 @@
 
 function plugin_rss_action()
 {
-       global $vars, $rss_max, $page_title, $whatsnew, $trackback;
+       global $vars, $rss_max, $page_title, $whatsnew;
 
        $version = isset($vars['ver']) ? $vars['ver'] : '';
        switch($version){
@@ -31,14 +33,14 @@ function plugin_rss_action()
 
        $lang = LANG;
        $page_title_utf8 = mb_convert_encoding($page_title, 'UTF-8', SOURCE_ENCODING);
-       $self = get_script_uri();
+       $self = get_base_uri(PKWK_URI_ABSOLUTE);
 
        // Creating <item>
        $items = $rdf_li = '';
 
        foreach (file_head($recent, $rss_max) as $line) {
                list($time, $page) = explode("\t", rtrim($line));
-               $r_page = rawurlencode($page);
+               $r_page = pagename_urlencode($page);
                $title  = mb_convert_encoding($page, 'UTF-8', SOURCE_ENCODING);
 
                switch ($version) {
@@ -64,19 +66,12 @@ EOD;
                                '?' . $r_page . '" />' . "\n";
 
                        $date = substr_replace(get_date('Y-m-d\TH:i:sO', $time), ':', -2, 0);
-                       $trackback_ping = '';
-                       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>$date</dc:date>
  <dc:identifier>$self?$r_page</dc:identifier>
-$trackback_ping
 </item>
 
 EOD;
@@ -89,7 +84,7 @@ EOD;
        header('Content-type: application/xml');
        print '<?xml version="1.0" encoding="UTF-8"?>' . "\n\n";
 
-       $r_whatsnew = rawurlencode($whatsnew);
+       $r_whatsnew = pagename_urlencode($whatsnew);
        switch ($version) {
        case '0.91':
                print '<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN"' .
@@ -112,12 +107,9 @@ EOD;
                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="$lang">
@@ -139,4 +131,3 @@ EOD;
        }
        exit;
 }
-?>