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

CVS リポジトリの参照

Annotation of /pukiwiki/pukiwiki/plugin/diff.inc.php

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


Revision 1.4 - (hide annotations) (download) (as text)
Sat Apr 3 15:27:07 2004 UTC (20 years, 1 month ago) by arino
Branch: MAIN
CVS Tags: r1_4_3
Changes since 1.3: +95 -31 lines
File MIME type: application/x-httpd-php
BugTrack/553 差分の削除

1 panda 1.1 <?php
2     /////////////////////////////////////////////////
3     // PukiWiki - Yet another WikiWikiWeb clone.
4     //
5 arino 1.4 // $Id: diff.inc.php,v 1.3 2003/06/22 06:37:18 arino Exp $
6 panda 1.1 //
7     //???若?吾??勲????茵?ず????
8     function plugin_diff_action()
9     {
10 arino 1.4 global $vars;
11 arino 1.3
12 arino 1.4 check_readable($vars['page'],true,true);
13 panda 1.1
14 arino 1.4 $action = array_key_exists('action',$vars) ? $vars['action'] : '';
15 panda 1.1
16 arino 1.4 switch ($vars['action']) {
17     case 'delete':
18     $retval = plugin_diff_delete($vars['page']);
19     break;
20     default:
21     $retval = plugin_diff_view($vars['page']);
22     break;
23     }
24     return $retval;
25     }
26     // 綏?????茵?ず
27     function plugin_diff_view($page)
28     {
29     global $script,$hr;
30     global $_msg_notfound,$_msg_goto,$_msg_deleted,$_msg_addline,$_msg_delline,$_title_diff;
31     global $_title_diff_delete;
32    
33     $r_page = rawurlencode($page);
34     $s_page = htmlspecialchars($page);
35    
36     $menu = array(
37     "<li>$_msg_addline</li>",
38     "<li>$_msg_delline</li>"
39     );
40    
41     if (is_page($page)) {
42     $menu[] = " <li>".str_replace('$1',"<a href=\"$script?$r_page\">$s_page</a>",$_msg_goto)."</li>";
43     } else {
44     $menu[] = " <li>".str_replace('$1',$s_page,$_msg_deleted)."</li>";
45 panda 1.1 }
46 arino 1.4
47     $delete_msg = '';
48     $filename = DIFF_DIR.encode($page).'.txt';
49     if (file_exists($filename)) {
50     $diffdata = htmlspecialchars(join('',file($filename)));
51 panda 1.1 $diffdata = preg_replace('/^(\-)(.*)$/m','<span class="diff_removed"> $2</span>',$diffdata);
52     $diffdata = preg_replace('/^(\+)(.*)$/m','<span class="diff_added"> $2</span>',$diffdata);
53 arino 1.4 $menu[] = "<li><a href=\"$script?cmd=diff&amp;action=delete&amp;page=$r_page\">" .
54     str_replace('$1',$s_page,$_title_diff_delete) . '</a></li>';
55     $msg = "<pre>$diffdata</pre>\n";
56 panda 1.1 }
57 arino 1.4 else if (is_page($page)) {
58     $diffdata = trim(htmlspecialchars(join('',get_source($page))));
59     $msg = "<pre><span class=\"diff_added\">$diffdata</span></pre>\n";
60 panda 1.1 }
61     else {
62 arino 1.4 return array('msg'=>$_title_diff, 'body'=>$_msg_notfound);
63 panda 1.1 }
64 arino 1.4
65     $menu = join("\n",$menu);
66     $body = <<<EOD
67     <ul>
68     $menu
69     </ul>
70     $hr
71     EOD;
72    
73     return array('msg'=>$_title_diff,'body'=>$body.$msg);
74 panda 1.1 }
75 arino 1.4 // ???????≪??????????/span>
76     function plugin_diff_delete($page)
77     {
78     error_reporting(E_ALL);
79    
80     global $script,$post,$adminpass;
81     global $_title_diff_delete,$_msg_diff_deleted,$_msg_diff_delete;
82     global $_msg_diff_adminpass,$_btn_delete,$_msg_invalidpass;
83    
84     if (!is_pagename($page)) { return; }
85     $filename = DIFF_DIR.encode($page).'.txt';
86     if (!file_exists($filename)) { return; }
87    
88     $s_page = htmlspecialchars($page);
89     $pass = array_key_exists('pass',$post) ? $post['pass'] : NULL;
90    
91     if (md5($pass) == $adminpass) {
92     unlink($filename);
93     return array(
94     'msg' => $_title_diff_delete,
95     'body' => str_replace('$1',make_pagelink($page),$_msg_diff_deleted)
96     );
97     }
98     $body = ($pass === NULL) ? '' : "<p><strong>$_msg_invalidpass</strong></p>\n";
99    
100     $msg_delete = str_replace('$1',make_pagelink($page),$_msg_diff_delete);
101     $body .= <<<EOD
102     <p>$_msg_diff_adminpass</p>
103     <form action="$script" method="post">
104     <div>
105     <input type="hidden" name="cmd" value="diff" />
106     <input type="hidden" name="page" value="$s_page" />
107     <input type="hidden" name="action" value="delete" />
108     <input type="password" name="pass" size="12" />
109     <input type="submit" name="ok" value="$_btn_delete" />
110     </div>
111     </form>
112     EOD;
113     return array('msg'=>$_title_diff_delete,'body'=>$body);
114     }
115 panda 1.1 ?>

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