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

CVS リポジトリの参照

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

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

revision 1.15 by teanan, Fri Dec 9 10:41:06 2005 UTC revision 1.16 by henoheno, Sat Dec 10 10:28:48 2005 UTC
# Line 1  Line 1 
1  <?php  <?php
 /////////////////////////////////////////////////  
2  // PukiWiki - Yet another WikiWikiWeb clone.  // PukiWiki - Yet another WikiWikiWeb clone.
 //  
3  // $Id$  // $Id$
4    // Copyright (C)
5    //   2002-2005 PukiWiki Developers Team
6    //   2002      Originally written by yu-ji
7    // License: GPL v2 or (at your option) any later version
8  //  //
9    // Showing colored-diff plugin
10    
 //ページの差分を表示する  
11  function plugin_diff_action()  function plugin_diff_action()
12  {  {
13          global $vars;          global $vars;
# Line 21  function plugin_diff_action() Line 23  function plugin_diff_action()
23          return $retval;          return $retval;
24  }  }
25    
 // 差分を表示  
26  function plugin_diff_view($page)  function plugin_diff_view($page)
27  {  {
28          global $script, $hr;          global $script, $hr;
# Line 46  function plugin_diff_view($page) Line 47  function plugin_diff_view($page)
47          $filename = DIFF_DIR . encode($page) . '.txt';          $filename = DIFF_DIR . encode($page) . '.txt';
48          if (file_exists($filename)) {          if (file_exists($filename)) {
49                  $diffdata = htmlspecialchars(join('', file($filename)));                  $diffdata = htmlspecialchars(join('', file($filename)));
50                  $diffdata = preg_replace('/^(\-)(.*)$/m', '<span class="diff_removed">$2</span>', $diffdata);  
51                  $diffdata = preg_replace('/^(\+)(.*)$/m', '<span class="diff_added"  >$2</span>', $diffdata);                  // Cut diff markers ('+' or '-' or ' ')
52                  $diffdata = preg_replace('/^\s(.*)$/m', '$1', $diffdata);                  $diffdata = preg_replace('/^\-(.*)$/m', '<span class="diff_removed">$1</span>', $diffdata);
53                    $diffdata = preg_replace('/^\+(.*)$/m', '<span class="diff_added"  >$1</span>', $diffdata);
54                    $diffdata = preg_replace('/^ (.*)$/m',  '$1', $diffdata);
55    
56                  if (! PKWK_READONLY) {                  if (! PKWK_READONLY) {
57                          $menu[] = "<li><a href=\"$script?cmd=diff&amp;action=delete&amp;page=$r_page\">" .                          $menu[] = '<li><a href="' . $script . '?cmd=diff&amp;action=delete&amp;page=' .
58                          str_replace('$1', $s_page, $_title_diff_delete) . '</a></li>';                                  $r_page . '">"' . str_replace('$1', $s_page, $_title_diff_delete) . '</a></li>';
59                  }                  }
60    
61                  $msg = "<pre>$diffdata</pre>\n";                  $msg = '<pre>' . $diffdata . '</pre>' . "\n";
62          }          } else if ($is_page) {
         else if ($is_page) {  
63                  $diffdata = trim(htmlspecialchars(join('', get_source($page))));                  $diffdata = trim(htmlspecialchars(join('', get_source($page))));
64                  $msg = "<pre><span class=\"diff_added\">$diffdata</span></pre>\n";                  $msg = '<pre><span class="diff_added">' . $diffdata . '</span></pre>' . "\n";
65          }          } else {
         else {  
66                  return array('msg'=>$_title_diff, 'body'=>$_msg_notfound);                  return array('msg'=>$_title_diff, 'body'=>$_msg_notfound);
67          }          }
68    
# Line 76  EOD; Line 77  EOD;
77          return array('msg'=>$_title_diff, 'body'=>$body . $msg);          return array('msg'=>$_title_diff, 'body'=>$body . $msg);
78  }  }
79    
 // バックアップを削除  
80  function plugin_diff_delete($page)  function plugin_diff_delete($page)
81  {  {
82          global $script, $vars;          global $script, $vars;
# Line 85  function plugin_diff_delete($page) Line 85  function plugin_diff_delete($page)
85    
86          $filename = DIFF_DIR . encode($page) . '.txt';          $filename = DIFF_DIR . encode($page) . '.txt';
87          $body = '';          $body = '';
88          if (! is_pagename($page))     $body = "Invalid page name";          if (! is_pagename($page))     $body = 'Invalid page name';
89          if (! file_exists($filename)) $body = make_pagelink($page) . "'s diff seems not found";          if (! file_exists($filename)) $body = make_pagelink($page) . '\'s diff seems not found';
90          if ($body) return array('msg'=>$_title_diff_delete, 'body'=>$body);          if ($body) return array('msg'=>$_title_diff_delete, 'body'=>$body);
91    
92          if (isset($vars['pass'])) {          if (isset($vars['pass'])) {
# Line 97  function plugin_diff_delete($page) Line 97  function plugin_diff_delete($page)
97                                  'body' => str_replace('$1', make_pagelink($page), $_msg_diff_deleted)                                  'body' => str_replace('$1', make_pagelink($page), $_msg_diff_deleted)
98                          );                          );
99                  } else {                  } else {
100                          $body .= "<p><strong>$_msg_invalidpass</strong></p>\n";                          $body .= '<p><strong>' . $_msg_invalidpass . '</strong></p>' . "\n";
101                  }                  }
102          }          }
103    

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.16

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