--- /dev/null
+##########################################################################################
+#
+# ¥¹¥Ñ¥à¥Õ¥£¥ë¥¿¡¼¥×¥é¥°¥¤¥ó¡Ê³Ø½¬µ¡Ç½Ìµ¤·ÈÇ¡Ë
+#¡Êcore::EditPage¥×¥é¥°¥¤¥ó¡Ê¥Ú¡¼¥¸¤ÎÊÔ½¸¡Ë¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É¡Ë
+#
+##########################################################################################
+use strict;
+
+use plugin::core::EditPage;
+
+# plugin::core::EditPage¤Îdo_action¥á¥½¥Ã¥É¤ÎÃÖ¤´¹¤¨
+package plugin::core::EditPage;
+
+sub do_action {
+ my $self = shift;
+ my $wiki = shift;
+ my $cgi = $wiki->get_CGI;
+
+ my $pagename = $cgi->param("page");
+ my $format = $wiki->get_edit_format();
+ my $content = $cgi->param("content");
+ my $sage = $cgi->param("sage");
+ my $template = $cgi->param("template");
+ my $artno = $cgi->param("artno");
+ my $time = $wiki->get_last_modified($pagename);
+
+ my $buf = "";
+ my $login = $wiki->get_login_info();
+
+ if($pagename eq ""){
+ return $wiki->error("¥Ú¡¼¥¸¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
+ }
+ if($pagename =~ /([\|\[\]])|^:|([^:]:[^:])/){
+ return $wiki->error("¥Ú¡¼¥¸Ì¾¤Ë»ÈÍѤǤ¤Ê¤¤Ê¸»ú¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£");
+ }
+ if(!$wiki->can_modify_page($pagename)){
+ return $wiki->error("¥Ú¡¼¥¸¤ÎÊÔ½¸¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
+ }
+
+ #--------------------------------------------------------------------------
+ # Êݸ½èÍý
+ if($cgi->param("save") ne ""){
+ if($wiki->page_exists($pagename)){
+ if($cgi->param("lastmodified") < $time){
+ return $wiki->error("¥Ú¡¼¥¸¤Ï´û¤ËÊ̤Υ桼¥¶¤Ë¤è¤Ã¤Æ¹¹¿·¤µ¤ì¤Æ¤¤¤Þ¤¹¡£");
+ }
+ }
+
+#--------------------------------------------------------------------------------------------------
+ if($content){
+ unless(&plugin::_ex_spam_filter_light::Install::judgment_text($content)){
+ my $time = Util::format_date(time());
+ my $file = $wiki->config('log_dir')."/spam_page.txt";
+ if(open(SPAM_LOG, ">>$file")){
+ print SPAM_LOG "-" x 70 . "\n";
+ print SPAM_LOG "$pagename:$artno ($time)\n";
+ print SPAM_LOG "-" x 70 . "\n";
+ print SPAM_LOG "$content\n";
+ close(SPAM_LOG);
+ }
+ my $error_message = $wiki->error("ÊÔ½¸¤µ¤ì¤¿Ê¸¾Ï¤Ï¥¹¥Ñ¥àʸ¾Ï¤ÈȽÄꤵ¤ì¤Þ¤·¤¿¡£\n");
+ $content = Util::escapeHTML($content);
+ $content =~ s/\n/<br>/g;
+ $error_message .= "<p>\n";
+ $error_message .= "<div>Åê¹Æ¤µ¤ì¤¿Ê¸¾Ï¡§</div>\n";
+ $error_message .= "<div>¡ã¥Ú¡¼¥¸Ì¾¡ä</div>\n";
+ $error_message .= "<div>$pagename</div>\n";
+ $error_message .= "<div>¡ãËÜʸ¡ä</div>\n";
+ $error_message .= "<div>$content</div>\n";
+ $error_message .= "</p>\n";
+ return $error_message;
+ }
+ }
+#--------------------------------------------------------------------------------------------------
+\r
+ #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";
+
+ # ¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï½èÍý¤ò¼Â¹Ô¤·¤Æ¥á¥Ã¥»¡¼¥¸¤òÊÖµÑ
+ } 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)."¤òºï½ü¤·¤Þ¤·¤¿¡£";
+ } else {
+ $wiki->set_title($pagename."¤Î¥Ñ¡¼¥È¤òºï½ü¤·¤Þ¤·¤¿");
+ return $cgi->escapeHTML($pagename)."¤Î¥Ñ¡¼¥È¤òºï½ü¤·¤Þ¤·¤¿¡£";
+ }
+ }
+ }
+ #--------------------------------------------------------------------------
+ # ¥×¥ì¥Ó¥å¡¼½èÍý
+ } elsif($cgi->param("preview") ne ""){
+ $time = $cgi->param("lastmodified");
+ $buf = "°Ê²¼¤Î¥×¥ì¥Ó¥å¡¼¤ò³Îǧ¤·¤Æ¤è¤í¤·¤±¤ì¤Ð¡ÖÊݸ¡×¥Ü¥¿¥ó¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤¡£<br>";
+ if($content eq ""){
+ if($pagename eq $wiki->config("frontpage") && $artno eq ""){
+ $buf = $buf."<b>¡Ê".&Util::escapeHTML($wiki->config("frontpage"))."¤Ïºï½ü¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£¡Ë</b>";
+ } else {
+ if($artno eq ""){
+ $buf = $buf."<b>¡Ê¥Ú¡¼¥¸ÆâÍƤ϶õ¤Ç¤¹¡£¹¹¿·¤¹¤ë¤È¤³¤Î¥Ú¡¼¥¸¤Ïºï½ü¤µ¤ì¤Þ¤¹¡£¡Ë</b>";
+ } else {
+ $buf = $buf."<b>¡Ê¥Ú¡¼¥¸ÆâÍƤ϶õ¤Ç¤¹¡£¹¹¿·¤¹¤ë¤È¤³¤Î¥Ñ¡¼¥È¤Ïºï½ü¤µ¤ì¤Þ¤¹¡£¡Ë</b>";
+ }
+ }
+ }
+ $content = $wiki->convert_to_fswiki($content,$format);
+ $buf = $buf."<br>".$wiki->process_wiki($content);
+
+ } elsif($wiki->page_exists($pagename)) {
+ #¥Ú¡¼¥¸¤¬Â¸ºß¤¹¤ë¾ì¹ç
+ if($artno eq ""){
+ $content = $wiki->get_page($pagename);
+ } else {
+ $content = &read_by_part($wiki->get_page($pagename),$artno);
+ }
+ } elsif($template ne ""){
+ #¥Æ¥ó¥×¥ì¡¼¥È¤ò»ØÄꤵ¤ì¤¿¾ì¹ç
+ $content = $wiki->get_page($template);
+ }
+
+ #--------------------------------------------------------------------------
+ # ÆþÎÏ¥Õ¥©¡¼¥à
+ $wiki->set_title($pagename."¤ÎÊÔ½¸",1);
+
+ 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'),
+ PAGE_NAME => $pagename,
+ 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}]);
+ }
+
+ $buf .= $tmpl->output();
+
+ # ¥×¥é¥°¥¤¥ó¤òÁÞÆþ
+ $buf .= $wiki->get_editform_plugin();
+
+ return $buf;
+}
+
+1;