--- /dev/null
+#!/usr/bin/perl\r
+################################################################################\r
+#\r
+# FSWiki Lite - ¥Ú¡¼¥¸ºîÀ®¡¢ÊÔ½¸ÍÑ¥¹¥¯¥ê¥×¥È\r
+#\r
+################################################################################\r
+require "./lib/common.pl";\r
+#===============================================================================\r
+# ½èÍý¤Î¿¶¤êʬ¤±\r
+#===============================================================================\r
+&ReadParse();\r
+if($in{"p"} eq ""){\r
+ $in{"p"} = "FrontPage";\r
+}\r
+\r
+if($in{"p"}=~ /[\|:\[\]]/){\r
+ &Util::error("¥Ú¡¼¥¸Ì¾¤Ë»ÈÍѤǤ¤Ê¤¤Ê¸»ú¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£");\r
+}\r
+\r
+if($in{"a"} eq "edit"){\r
+ &edit_page();\r
+\r
+} elsif($in{"a"} eq "new"){\r
+ &new_page();\r
+ \r
+} elsif($in{"a"} eq "save"){\r
+ &save_page();\r
+ \r
+} elsif($in{"a"} eq "attach"){\r
+ &attach_file();\r
+ \r
+} elsif($in{"a"} eq "delconf"){\r
+ &attach_delete_confirm();\r
+ \r
+} elsif($in{"a"} eq "delete"){\r
+ &attach_delete();\r
+ \r
+} else {\r
+ redirect("FrontPage");\r
+}\r
+\r
+#-------------------------------------------------------------------------------\r
+# ¥Ú¡¼¥¸¤ÎÊÔ½¸\r
+#-------------------------------------------------------------------------------\r
+sub edit_page {\r
+ my $source = shift;\r
+ my $page = $in{"p"};\r
+ my $preview = 0;\r
+ my $time = $in{"t"};\r
+ \r
+ if($source ne ""){\r
+ $preview = 1;\r
+ } elsif(&Wiki::exists_page($page)){\r
+ $source = &Wiki::get_page($page);\r
+ $time = &Wiki::get_last_modified($page);\r
+ }\r
+ \r
+ &print_header($in{"p"}."¤ÎÊÔ½¸");\r
+ \r
+ if($preview==1){\r
+ print &Wiki::process_wiki($source);\r
+ }\r
+ \r
+ print "<form action=\"$EDIT_SCRIPT\" method=\"POST\">\n";\r
+ print " <textarea name=\"source\" rows=\"20\" cols=\"80\">".&Util::escapeHTML($source)."</textarea><br>\n";\r
+ print " <input type=\"submit\" name=\"do_save\" value=\" ÊÝ Â¸ \">\n";\r
+ print " <input type=\"submit\" name=\"preview\" value=\"¥×¥ì¥Ó¥å¡¼\">\n";\r
+ print " <input type=\"hidden\" name=\"a\" value=\"save\">\n";\r
+ print " <input type=\"hidden\" name=\"p\" value=\"".&Util::escapeHTML($page)."\">\n";\r
+ print " <input type=\"hidden\" name=\"t\" value=\"".&Util::escapeHTML($time)."\">\n";\r
+ print "</form>\n";\r
+ \r
+ opendir(DIR, $main::ATTACH_DIR);\r
+ my ($attachentry, @attachfiles);\r
+ while($attachentry = readdir(DIR)){\r
+ my $type = rindex($attachentry,&Util::url_encode($page).".");\r
+ if($type eq 0){\r
+ push(@attachfiles, "$main::ATTACH_DIR/$attachentry");\r
+ }\r
+ }\r
+ closedir(DIR);\r
+ foreach my $attach (@attachfiles){\r
+ $attach =~ /^\Q$main::ATTACH_DIR\E\/(.+)\.(.+)$/;\r
+ my $pagename = $1;\r
+ my $filename = $2;\r
+ print &Wiki::Plugin::ref(&Util::url_decode($filename));\r
+ printf ("[<a href=\"$EDIT_SCRIPT?a=delconf&p=%s&f=%s\">ºï½ü</a>]\n",$pagename,$filename);\r
+ }\r
+ \r
+ print "<form action=\"$EDIT_SCRIPT\" method=\"post\" enctype=\"multipart/form-data\">\n";\r
+ print " <input type=\"file\" name=\"f\">\n";\r
+ print " <input type=\"submit\" name=\"do_attach\" value=\" ź ÉÕ \">\n";\r
+ print " <input type=\"hidden\" name=\"a\" value=\"attach\">\n";\r
+ print " <input type=\"hidden\" name=\"p\" value=\"".&Util::escapeHTML($page)."\">\n";\r
+ print "</form>\n";\r
+ \r
+ &print_footer();\r
+}\r
+\r
+#-------------------------------------------------------------------------------\r
+# ¥Ú¡¼¥¸¤ÎºîÀ®\r
+#-------------------------------------------------------------------------------\r
+sub new_page {\r
+ &print_header("¥Ú¡¼¥¸¤ÎºîÀ®");\r
+ print "<form action=\"$SCRIPT_NAME\" method=\"POST\">\n";\r
+ print " <input type=\"text\" name=\"p\" size=\"40\">\n";\r
+ print " <input type=\"submit\" name=\"do_save\" value=\" ºî À® \">\n";\r
+ print " <input type=\"hidden\" name=\"a\" value=\"edit\">\n";\r
+ print "</form>\n";\r
+ &print_footer();\r
+}\r
+\r
+#-------------------------------------------------------------------------------\r
+# ¥Ú¡¼¥¸¤ÎÊݸ\r
+#-------------------------------------------------------------------------------\r
+sub save_page {\r
+ my $page = $in{"p"};\r
+ my $source = $in{"source"};\r
+ \r
+ if($in{"preview"} ne ""){\r
+ &edit_page($source);\r
+ \r
+ } else {\r
+ # ¥Ú¡¼¥¸¤Îºï½ü\r
+ if($source eq ""){\r
+ # ¹¹¿·¤Î½ÅÊ£¥Á¥§¥Ã¥¯\r
+ if(&Wiki::exists_page($page)){\r
+ if($in{"t"} != &Wiki::get_last_modified($page)){\r
+ &Util::error("¤³¤Î¥Ú¡¼¥¸¤Ï´û¤Ë¹¹¿·¤µ¤ì¤Æ¤¤¤Þ¤¹¡£");\r
+ } else {\r
+ &Wiki::remove_page($page);\r
+ }\r
+ }\r
+ &redirect("FrontPage");\r
+ \r
+ # ¥Ú¡¼¥¸¤ÎºîÀ®¤Þ¤¿¤Ï¹¹¿·\r
+ } else {\r
+ # ¹¹¿·¤Î½ÅÊ£¥Á¥§¥Ã¥¯\r
+ if(&Wiki::exists_page($page)){\r
+ if($in{"t"} != &Wiki::get_last_modified($page)){\r
+ &Util::error("¤³¤Î¥Ú¡¼¥¸¤Ï´û¤Ë¹¹¿·¤µ¤ì¤Æ¤¤¤Þ¤¹¡£");\r
+ }\r
+ }\r
+ &Wiki::save_page($page,$source);\r
+ &redirect($page);\r
+ }\r
+ }\r
+}\r
+\r
+#-------------------------------------------------------------------------------\r
+# ¥Õ¥¡¥¤¥ë¤ÎźÉÕ\r
+#-------------------------------------------------------------------------------\r
+sub attach_file {\r
+ my $page = $in{"p"};\r
+ my $file = $in{"f"}; # ¥Õ¥¡¥¤¥ëÆâÍƤò¼èÆÀ\r
+ my $name = $incfn{"f"}; # ¥Õ¥¡¥¤¥ë̾¤ò¼èÆÀ\r
+ \r
+ if($file eq ""){\r
+ &Util::error("¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");\r
+ }\r
+ \r
+ if($name eq ""){\r
+ return;\r
+ }\r
+ \r
+ $name =~ s/\\/\//g; # ¥Ñ¥¹¶èÀÚ¤êʸ»ú¤ò/¤ËÊÑ´¹\r
+ $name = substr($name,rindex($name,"/")+1); # ¥Õ¥¡¥¤¥ë̾¤Î¤ß¤ò¼èÆÀ\r
+ \r
+ my $filename = sprintf("%s/%s.%s",$main::ATTACH_DIR,&Util::url_encode($page),&Util::url_encode($name));\r
+ open(DATA,">$filename");\r
+ binmode(DATA);\r
+ print DATA $file;\r
+ close(DATA);\r
+ \r
+ &redirectURL("$EDIT_SCRIPT?a=edit&p=".&Util::url_encode($page));\r
+}\r
+\r
+#-------------------------------------------------------------------------------\r
+# źÉÕ¥Õ¥¡¥¤¥ë¤Îºï½ü³Îǧ\r
+#-------------------------------------------------------------------------------\r
+sub attach_delete_confirm {\r
+ my $page = $in{"p"};\r
+ my $file = $in{"f"};\r
+ \r
+ if($file eq ""){\r
+ &Util::error("¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");\r
+ }\r
+ \r
+ &print_header("źÉÕ¥Õ¥¡¥¤¥ë¤Îºï½ü");\r
+ printf ("<p><a href=\"$MAIN_SCRIPT?p=%s\">%s</a>¤«¤é".\r
+ "<a href=\"$DOWNLOAD_SCRIPT?p=%s&f=%s\">%s</a>¤òºï½ü¤·¤Æ¤è¤í¤·¤¤¤Ç¤¹¤«¡©</p>\n",\r
+ &Util::url_encode($page),&Util::escapeHTML($page),\r
+ &Util::url_encode($page),&Util::url_encode($file),&Util::escapeHTML($file));\r
+ \r
+ print "<form action=\"$EDIT_SCRIPT\" method=\"POST\">\n";\r
+ print " <input type=\"submit\" name=\"do_delete\" value=\" ºï ½ü \">\n";\r
+ print " <input type=\"hidden\" name=\"p\" value=\"".&Util::escapeHTML($page)."\">\n";\r
+ print " <input type=\"hidden\" name=\"f\" value=\"".&Util::escapeHTML($file)."\">\n";\r
+ print " <input type=\"hidden\" name=\"a\" value=\"delete\">\n";\r
+ print "</form>\n";\r
+ &print_footer();\r
+}\r
+\r
+#-------------------------------------------------------------------------------\r
+# źÉÕ¥Õ¥¡¥¤¥ë¤Îºï½ü\r
+#-------------------------------------------------------------------------------\r
+sub attach_delete {\r
+ my $page = $in{"p"};\r
+ my $file = $in{"f"};\r
+ \r
+ if($file eq ""){\r
+ &Util::error("¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");\r
+ }\r
+ \r
+ my $filename = sprintf("$ATTACH_DIR/%s.%s",&Util::url_encode($page),&Util::url_encode($file));\r
+ unlink($filename);\r
+ \r
+ &redirectURL("$EDIT_SCRIPT?a=edit&p=".&Util::url_encode($page));\r
+}\r