2 ################################################################################
4 # FSWiki Lite - ¥Ú¡¼¥¸ºîÀ®¡¢ÊÔ½¸ÍÑ¥¹¥¯¥ê¥×¥È
6 ################################################################################
7 require "./lib/common.pl";
8 #===============================================================================
10 #===============================================================================
13 $in{"p"} = "FrontPage";
16 if(!&Util::check_pagename($in{"p"})){
17 &Util::error("¥Ú¡¼¥¸Ì¾¤Ë»ÈÍѤǤ¤Ê¤¤Ê¸»ú¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£");
20 if($in{"a"} eq "edit"){
23 } elsif($in{"a"} eq "new"){
26 } elsif($in{"a"} eq "save"){
29 } elsif($in{"a"} eq "attach"){
32 } elsif($in{"a"} eq "delconf"){
33 &attach_delete_confirm();
35 } elsif($in{"a"} eq "delete"){
39 &Wiki::redirect("FrontPage");
42 #-------------------------------------------------------------------------------
44 #-------------------------------------------------------------------------------
53 } elsif(&Wiki::page_exists($page)){
54 $source = &Wiki::get_page($page);
55 $time = &Wiki::get_last_modified($page);
58 &print_header($in{"p"}."¤ÎÊÔ½¸");
61 print &Wiki::process_wiki($source);
64 print "<form action=\"$EDIT_SCRIPT\" method=\"POST\">\n";
65 print " <textarea name=\"source\" rows=\"20\" cols=\"80\">".&Util::escapeHTML($source)."</textarea><br>\n";
66 print " <input type=\"submit\" name=\"do_save\" value=\" ÊÝ Â¸ \">\n";
67 print " <input type=\"submit\" name=\"preview\" value=\"¥×¥ì¥Ó¥å¡¼\">\n";
68 print " <input type=\"hidden\" name=\"a\" value=\"save\">\n";
69 print " <input type=\"hidden\" name=\"p\" value=\"".&Util::escapeHTML($page)."\">\n";
70 print " <input type=\"hidden\" name=\"t\" value=\"".&Util::escapeHTML($time)."\">\n";
73 opendir(DIR, $main::ATTACH_DIR);
74 my ($attachentry, @attachfiles);
75 while($attachentry = readdir(DIR)){
76 my $type = rindex($attachentry,&Util::url_encode($page).".");
78 push(@attachfiles, "$main::ATTACH_DIR/$attachentry");
82 foreach my $attach (@attachfiles){
83 $attach =~ /^\Q$main::ATTACH_DIR\E\/(.+)\.(.+)$/;
84 my $pagename = &Util::url_decode($1);
85 my $filename = &Util::url_decode($2);
86 print &Wiki::Plugin::ref($filename);
87 printf("[<a href=\"%s\">ºï½ü</a>]\n",&Wiki::create_url({a=>delconf,p=>$pagename,f=>$filename}));
90 print "<form action=\"$EDIT_SCRIPT\" method=\"post\" enctype=\"multipart/form-data\">\n";
91 print " <input type=\"file\" name=\"f\">\n";
92 print " <input type=\"submit\" name=\"do_attach\" value=\" ź ÉÕ \">\n";
93 print " <input type=\"hidden\" name=\"a\" value=\"attach\">\n";
94 print " <input type=\"hidden\" name=\"p\" value=\"".&Util::escapeHTML($page)."\">\n";
100 #-------------------------------------------------------------------------------
102 #-------------------------------------------------------------------------------
104 &print_header("¥Ú¡¼¥¸¤ÎºîÀ®");
105 print "<form action=\"$EDIT_SCRIPT\" method=\"POST\">\n";
106 print " <input type=\"text\" name=\"p\" size=\"40\">\n";
107 print " <input type=\"submit\" name=\"do_save\" value=\" ºî À® \">\n";
108 print " <input type=\"hidden\" name=\"a\" value=\"edit\">\n";
113 #-------------------------------------------------------------------------------
115 #-------------------------------------------------------------------------------
118 my $source = $in{"source"};
120 if($in{"preview"} ne ""){
127 if(&Wiki::page_exists($page)){
128 if($in{"t"} != &Wiki::get_last_modified($page)){
129 &Util::error("¤³¤Î¥Ú¡¼¥¸¤Ï´û¤Ë¹¹¿·¤µ¤ì¤Æ¤¤¤Þ¤¹¡£");
131 &Wiki::remove_page($page);
134 &Wiki::redirect("FrontPage");
136 # ¥Ú¡¼¥¸¤ÎºîÀ®¤Þ¤¿¤Ï¹¹¿·
139 if(&Wiki::page_exists($page)){
140 if($in{"t"} != &Wiki::get_last_modified($page)){
141 &Util::error("¤³¤Î¥Ú¡¼¥¸¤Ï´û¤Ë¹¹¿·¤µ¤ì¤Æ¤¤¤Þ¤¹¡£");
144 &Wiki::save_page($page,$source);
145 &Wiki::redirect($page);
150 #-------------------------------------------------------------------------------
152 #-------------------------------------------------------------------------------
155 my $file = $in{"f"}; # ¥Õ¥¡¥¤¥ëÆâÍƤò¼èÆÀ
156 my $name = $incfn{"f"}; # ¥Õ¥¡¥¤¥ë̾¤ò¼èÆÀ
159 &Util::error("¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
166 $name =~ s/\\/\//g; # ¥Ñ¥¹¶èÀÚ¤êʸ»ú¤ò/¤ËÊÑ´¹
167 $name = substr($name,rindex($name,"/")+1); # ¥Õ¥¡¥¤¥ë̾¤Î¤ß¤ò¼èÆÀ
169 my $filename = sprintf("%s/%s.%s",$main::ATTACH_DIR,&Util::url_encode($page),&Util::url_encode($name));
170 open(DATA,">$filename");
175 &Wiki::redirectURL(&Wiki::create_url({a=>edit,p=>$page}));
178 #-------------------------------------------------------------------------------
179 # źÉÕ¥Õ¥¡¥¤¥ë¤Îºï½ü³Îǧ
180 #-------------------------------------------------------------------------------
181 sub attach_delete_confirm {
186 &Util::error("¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
189 &print_header("źÉÕ¥Õ¥¡¥¤¥ë¤Îºï½ü");
190 printf ("<p><a href=\"%s\">%s</a>¤«¤é".
191 "<a href=\"%s\">%s</a>¤òºï½ü¤·¤Æ¤è¤í¤·¤¤¤Ç¤¹¤«¡©</p>\n",
192 &Wiki::create_url({p=>$page}),&Util::escapeHTML($page),
193 &Wiki::create_url({p=>$page,f=>$file},$main::DOWNLOAD_SCRIPT),&Util::escapeHTML($file));
195 print "<form action=\"$EDIT_SCRIPT\" method=\"POST\">\n";
196 print " <input type=\"submit\" name=\"do_delete\" value=\" ºï ½ü \">\n";
197 print " <input type=\"hidden\" name=\"p\" value=\"".&Util::escapeHTML($page)."\">\n";
198 print " <input type=\"hidden\" name=\"f\" value=\"".&Util::escapeHTML($file)."\">\n";
199 print " <input type=\"hidden\" name=\"a\" value=\"delete\">\n";
204 #-------------------------------------------------------------------------------
206 #-------------------------------------------------------------------------------
212 &Util::error("¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
215 my $filename = sprintf("$ATTACH_DIR/%s.%s",&Util::url_encode($page),&Util::url_encode($file));
218 &Wiki::redirectURL(&Wiki::create_url({a=>edit,p=>$page}));