$buf .= "<p><span class=\"error\">¥Ú¡¼¥¸¤Ï´û¤ËÊ̤Υ桼¥¶¤Ë¤è¤Ã¤Æ¹¹¿·¤µ¤ì¤Æ¤¤¤Þ¤¹¡£</span></p>";
my $mode = $wiki->get_edit_format();
- my $orig_source = $wiki->convert_from_fswiki($wiki->get_page($pagename), $mode);
+ my $orig_source = undef;
+ if($artno eq ""){
+ $orig_source = $wiki->convert_from_fswiki($wiki->get_page($pagename), $mode);
+ } else {
+ $orig_source = $wiki->convert_from_fswiki(&read_by_part($wiki->get_page($pagename), $artno), $mode);
+ }
my $your_source = $content;
$your_source =~ s/\r\n/\n/g;
$your_source =~ s/\r/\n/g;
<li>ºï½ü¤µ¤ì¤¿Éôʬ¤Ï<del class="diff">¤³¤Î¤è¤¦¤Ë</del>ɽ¼¨¤µ¤ì¤Þ¤¹¡£</li>
</ul>
<p>
- º¹Ê¬¤ò³Îǧ¤·¤ÆºÆÅÙÊÔ½¸¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡§
+ ºÇ¿·ÈǤȤκ¹Ê¬¤ò³Îǧ¤·¤ÆºÆÅÙÊÔ½¸¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡§
</p>
<div class="diff">$diff</div>
|;
# ¥Ñ¡¼¥ÈÊÔ½¸¤Î¾ì¹ç
if($artno ne ""){
- $save_content = &make_save_source($wiki->get_page($pagename),$save_content,$artno,$wiki);
+ $save_content = &make_save_source($wiki->get_page($pagename), $save_content, $artno, $wiki);
}
# FrontPage¤Ïºï½üÉÔ²Ä
if($pagename eq $wiki->config("frontpage") && $save_content eq ""){
# ¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï½èÍý¤ò¼Â¹Ô¤·¤Æ¥á¥Ã¥»¡¼¥¸¤òÊÖµÑ
} else {
- $wiki->save_page($pagename,$save_content,$sage);
+ $wiki->save_page($pagename, $save_content, $sage);
if($content ne ""){
$wiki->redirect($pagename, $artno);
}
}
#--------------------------------------------------------------------------
+ # º¹Ê¬³Îǧ½èÍý
+ } elsif($cgi->param("diff") ne ""){
+ if($wiki->config('page_max') ne '' && $wiki->config('page_max') > 0){
+ if(length($content) > $wiki->config('page_max')){
+ return $wiki->error('¥Ú¡¼¥¸¤¬Êݸ²Äǽ¤ÊºÇÂ祵¥¤¥º¤òĶ¤¨¤Æ¤¤¤Þ¤¹¡£');
+ }
+ }
+ $time = $cgi->param("lastmodified");
+
+ my $mode = $wiki->get_edit_format();
+ my $orig_source = undef;
+ if($artno eq ""){
+ $orig_source = $wiki->convert_from_fswiki($wiki->get_page($pagename), $mode);
+ } else {
+ $orig_source = $wiki->convert_from_fswiki(&read_by_part($wiki->get_page($pagename), $artno), $mode);
+ }
+ my $your_source = $content;
+ $your_source =~ s/\r\n/\n/g;
+ $your_source =~ s/\r/\n/g;
+
+ $buf .= qq|
+ <ul>
+ <li>Äɲ䵤줿Éôʬ¤Ï<ins class="diff">¤³¤Î¤è¤¦¤Ë</ins>ɽ¼¨¤µ¤ì¤Þ¤¹¡£</li>
+ <li>ºï½ü¤µ¤ì¤¿Éôʬ¤Ï<del class="diff">¤³¤Î¤è¤¦¤Ë</del>ɽ¼¨¤µ¤ì¤Þ¤¹¡£</li>
+ </ul>
+ |;
+
+ if($orig_source eq $your_source){
+ $buf .= '<p class="error">º¹Ê¬¤Ï¤¢¤ê¤Þ¤»¤ó¡£</p>';
+ } else {
+ my $diff = plugin::core::Diff::_get_diff_html($your_source, $orig_source);
+ $diff =~ s/\n/<br>/g;
+ $buf .= qq|<div class="diff">$diff</div>|;
+ }
+
+ #--------------------------------------------------------------------------
# ¥×¥ì¥Ó¥å¡¼½èÍý
} elsif($cgi->param("preview") ne ""){
if($wiki->config('page_max') ne '' && $wiki->config('page_max') > 0){
if($artno eq ""){
$content = $wiki->get_page($pagename);
} else {
- $content = &read_by_part($wiki->get_page($pagename),$artno);
+ $content = &read_by_part($wiki->get_page($pagename), $artno);
}
} elsif($template ne ""){
#¥Æ¥ó¥×¥ì¡¼¥È¤ò»ØÄꤵ¤ì¤¿¾ì¹ç
$tmpl->param({SCRIPT_NAME => $wiki->create_url(),
PAGE_NAME => $pagename,
- CONTENT => $wiki->convert_from_fswiki($content,$format),
+ CONTENT => $wiki->convert_from_fswiki($content, $format),
LAST_MODIFIED => $time,
ACTION => 'EDIT',
EXISTS_PAGE => $wiki->page_exists($pagename),
SAGE => $sage});
if($artno ne ""){
- $tmpl->param(OPTIONAL_PARAMS=>[{NAME=>'artno',VALUE=>$artno}]);
+ $tmpl->param(OPTIONAL_PARAMS=>[{NAME=>'artno', VALUE=>$artno}]);
}
$buf .= $tmpl->output();