#--------------------------------------------------------------------------
# Êݸ½èÍý
if($cgi->param("save") ne ""){
- if($wiki->page_exists($pagename)){
- if($cgi->param("lastmodified") < $time){
- return $wiki->error("¥Ú¡¼¥¸¤Ï´û¤ËÊ̤Υ桼¥¶¤Ë¤è¤Ã¤Æ¹¹¿·¤µ¤ì¤Æ¤¤¤Þ¤¹¡£");
+ if($wiki->config('page_max') ne '' && $wiki->config('page_max') > 0){
+ if(length($content) > $wiki->config('page_max')){
+ return $wiki->error('¥Ú¡¼¥¸¤¬Êݸ²Äǽ¤ÊºÇÂ祵¥¤¥º¤òĶ¤¨¤Æ¤¤¤Þ¤¹¡£');
}
}
+ if($wiki->page_exists($pagename) && $cgi->param("lastmodified") != $time){
+ $buf .= "<p><span class=\"error\">¥Ú¡¼¥¸¤Ï´û¤ËÊ̤Υ桼¥¶¤Ë¤è¤Ã¤Æ¹¹¿·¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ºÇ¿·ÈǤȤκ¹Ê¬¤ò³Îǧ¤·¤ÆºÆÅÙÊÔ½¸¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£</span></p>";
+
+ 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;
+
+ my $diff = plugin::core::Diff::_get_diff_html($wiki, $orig_source, $your_source);
+ $buf .= $diff."<br>";
+
+ $content = $orig_source;
+
+ } else {
#--------------------------------------------------------------------------------------------------
if($content){
}
#--------------------------------------------------------------------------------------------------
\r
- #my $save_content = $content;
- my $mode = $wiki->get_edit_format();
- my $save_content = $wiki->convert_to_fswiki($content,$mode);
+ #my $save_content = $content;
+ my $mode = $wiki->get_edit_format();
+ my $save_content = $wiki->convert_to_fswiki($content,$mode);
- # ¥Ñ¡¼¥ÈÊÔ½¸¤Î¾ì¹ç
- if($artno ne ""){
- $save_content = &make_save_source($wiki->get_page($pagename),$save_content,$artno,$wiki);
- }
- # FrontPage¤Ïºï½üÉÔ²Ä
- if($pagename eq $wiki->config("frontpage") && $save_content eq ""){
- $buf = "<b>".&Util::escapeHTML($wiki->config("frontpage"))."¤Ïºï½ü¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£</b>\n";
+ # ¥Ñ¡¼¥ÈÊÔ½¸¤Î¾ì¹ç
+ if($artno ne ""){
+ $save_content = &make_save_source($wiki->get_page($pagename), $save_content, $artno, $wiki);
+ }
+ # FrontPage¤Ïºï½üÉÔ²Ä
+ if($pagename eq $wiki->config("frontpage") && $save_content eq ""){
+ $buf = "<b>".&Util::escapeHTML($wiki->config("frontpage"))."¤Ïºï½ü¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£</b>\n";
- # ¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï½èÍý¤ò¼Â¹Ô¤·¤Æ¥á¥Ã¥»¡¼¥¸¤òÊÖµÑ
- } else {
- $wiki->save_page($pagename,$save_content,$sage);
-
- if($content ne ""){
- $wiki->redirect($pagename);
+ # ¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï½èÍý¤ò¼Â¹Ô¤·¤Æ¥á¥Ã¥»¡¼¥¸¤òÊÖµÑ
} else {
- if($artno eq ""){
- $wiki->set_title($pagename."¤òºï½ü¤·¤Þ¤·¤¿");
- return $cgi->escapeHTML($pagename)."¤òºï½ü¤·¤Þ¤·¤¿¡£";
+ $wiki->save_page($pagename, $save_content, $sage);
+
+ if($content ne ""){
+ $wiki->redirect($pagename, $artno);
} else {
- $wiki->set_title($pagename."¤Î¥Ñ¡¼¥È¤òºï½ü¤·¤Þ¤·¤¿");
- return $cgi->escapeHTML($pagename)."¤Î¥Ñ¡¼¥È¤òºï½ü¤·¤Þ¤·¤¿¡£";
+ if($artno eq ""){
+ $wiki->set_title($pagename."¤òºï½ü¤·¤Þ¤·¤¿");
+ return Util::escapeHTML($pagename)."¤òºï½ü¤·¤Þ¤·¤¿¡£";
+ } else {
+ $wiki->set_title($pagename."¤Î¥Ñ¡¼¥È¤òºï½ü¤·¤Þ¤·¤¿");
+ return Util::escapeHTML($pagename)."¤Î¥Ñ¡¼¥È¤òºï½ü¤·¤Þ¤·¤¿¡£";
+ }
}
}
}
#--------------------------------------------------------------------------
+ # º¹Ê¬³Îǧ½èÍý
+ } 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;
+
+ if($orig_source eq $your_source){
+ $buf .= '<p class="error">º¹Ê¬¤Ï¤¢¤ê¤Þ¤»¤ó¡£</p>';
+ } else {
+ my $diff = plugin::core::Diff::_get_diff_html($wiki, $your_source, $orig_source);
+ $buf .= $diff."<br>";
+ }
+
+ #--------------------------------------------------------------------------
# ¥×¥ì¥Ó¥å¡¼½èÍý
} elsif($cgi->param("preview") 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");
$buf = "°Ê²¼¤Î¥×¥ì¥Ó¥å¡¼¤ò³Îǧ¤·¤Æ¤è¤í¤·¤±¤ì¤Ð¡ÖÊݸ¡×¥Ü¥¿¥ó¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤¡£<br>";
if($content eq ""){
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 ""){
#¥Æ¥ó¥×¥ì¡¼¥È¤ò»ØÄꤵ¤ì¤¿¾ì¹ç
my $tmpl = HTML::Template->new(filename=>$wiki->config('tmpl_dir')."/editform.tmpl",
die_on_bad_params => 0);
- $tmpl->param({SCRIPT_NAME => $wiki->config('script_name'),
+ $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();