OSDN Git Service

data, theme ディレクトリ追加
[fswiki/fswiki-lite.git] / wiki.cgi
1 #!/usr/bin/perl
2 ################################################################################
3 #
4 # FSWiki Lite
5 #
6 ################################################################################
7 require "./lib/common.pl";
8 #===============================================================================
9 # ½èÍý¤Î¿¶¤êʬ¤±
10 #===============================================================================
11 &ReadParse();
12 if($in{"p"} eq ""){
13         $in{"p"} = "FrontPage";
14 }
15
16 if($in{"a"} eq "list"){
17         &list_page();
18         
19 } elsif($in{"a"} eq "search"){
20         &search_page();
21         
22 } else {
23         &show_page();
24         
25 }
26
27 #-------------------------------------------------------------------------------
28 # ¥Ú¡¼¥¸¤Î°ìÍ÷
29 #-------------------------------------------------------------------------------
30 sub list_page {
31         my @pages = &Wiki::get_page_list();
32         
33         &print_header("°ìÍ÷");
34         print "<ul>\n";
35         foreach my $page (@pages){
36                 print "<li><a href=\"$MAIN_SCRIPT?p=".&Util::url_encode($page->{NAME})."\">".
37                       &Util::escapeHTML($page->{NAME})."</a>".
38                       " - ".&Util::format_date($page->{TIME})."</li>\n";
39         }
40         print "</ul>\n";
41         &print_footer();
42 }
43
44 #-------------------------------------------------------------------------------
45 # ¥Ú¡¼¥¸¤òɽ¼¨
46 #-------------------------------------------------------------------------------
47 sub show_page {
48         
49         unless(&Wiki::exists_page($in{"p"})){
50                 undef %in;
51                 $in{"a"} = "edit";
52                 require $EDIT_SCRIPT;
53                 return;
54         }
55         
56         my $source = &Wiki::get_page($in{"p"});
57         my $html   = &Wiki::process_wiki($source,1);
58         
59         &print_header($in{"p"},1);
60         
61         if(&Wiki::exists_page("Header")){
62                 print "<div class=\"header\">\n";
63                 print &Wiki::process_wiki(&Wiki::get_page("Header"));
64                 print "</div>\n";
65         }
66
67         print "<div class=\"day body section\">\n";
68         print $html;
69         print "</div>\n";
70         
71         if(&Wiki::exists_page("Footer")){
72                 print "<div class=\"comment\">\n";
73                 print &Wiki::process_wiki(&Wiki::get_page("Footer"));
74                 print "</div>\n";
75         }
76         
77         &print_footer();
78 }
79
80 #-------------------------------------------------------------------------------
81 # ¥Ú¡¼¥¸¤Î¸¡º÷
82 #-------------------------------------------------------------------------------
83 sub search_page {
84         
85         &print_header("¸¡º÷");
86         print "<form action=\"$MAIN_SCRIPT\" method=\"GET\">\n";
87         print "  ¥­¡¼¥ï¡¼¥É <input type=\"text\" name=\"w\" size=\"20\" value=\"".&Util::escapeHTML($in{'w'})."\">\n";
88         print "  <input type=\"submit\" value=\" ¸¡ º÷ \">\n";
89         print "  <input type=\"hidden\" name=\"a\" value=\"search\">\n";
90         print "</form>\n";
91         
92         if($in{'w'} ne ""){
93                 my @pages = &Wiki::get_page_list();
94                 my $find  = 0;
95                 print "<ul>\n";
96                 foreach my $page (@pages){
97                         my $source = $page->{NAME}."\n".&Wiki::get_page($page->{NAME});
98                         if(index($source,$in{'w'})!=-1){
99                                 print "  <li><a href=\"$MAIN_SCRIPT?p=".&Util::url_encode($page->{NAME})."\">".&Util::escapeHTML($page->{NAME})."</a></li>\n";
100                                 $find = 1;
101                         }
102                 }
103                 if($find==0){
104                         print "<li>³ºÅö¤¹¤ë¥Ú¡¼¥¸¤Ï¸ºß¤·¤Þ¤»¤ó¡£</li>\n";
105                 }
106                 print "</ul>\n";
107         }
108         
109         &print_footer();
110 }
111