1 ################################################################################
5 ################################################################################
9 # ¥Ñ¥é¥°¥é¥Õ¥×¥é¥°¥¤¥ó¤Î¥¨¥ó¥È¥ê
10 $main::P_PLUGIN->{recent} = \&Wiki::Plugin::recent;
11 $main::P_PLUGIN->{recentdays} = \&Wiki::Plugin::recentdays;
12 $main::P_PLUGIN->{category_list} = \&Wiki::Plugin::category_list;
13 $main::P_PLUGIN->{ref_image} = \&Wiki::Plugin::ref_image;
14 $main::P_PLUGIN->{ref_text} = \&Wiki::Plugin::ref_text;
15 $main::P_PLUGIN->{outline} = \&Wiki::Plugin::outline;
16 $main::P_PLUGIN->{search} = \&Wiki::Plugin::search;
18 # ¥¤¥ó¥é¥¤¥ó¥×¥é¥°¥¤¥ó¤Î¥¨¥ó¥È¥ê
19 $main::I_PLUGIN->{category} = \&Wiki::Plugin::category;
20 $main::I_PLUGIN->{lastmodified} = \&Wiki::Plugin::lastmodified;
21 $main::I_PLUGIN->{ref} = \&Wiki::Plugin::ref;
24 #==============================================================================
25 # ¥Ú¡¼¥¸¤Î°ìÍ÷¤ò¹¹¿·Æü»þ½ç¤Ëɽ¼¨¤¹¤ë¥×¥é¥°¥¤¥ó¡£
26 #==============================================================================
29 $max = 0 if($max eq "");
32 my @pages = &Wiki::get_page_list();
36 foreach my $page (@pages){
37 $buf .= "<li><a href=\"$main::MAIN_SCRIPT?p=".&Util::url_encode($page->{NAME})."\">".
38 &Util::escapeHTML($page->{NAME})."</a></li>\n";
40 last if($count==$max && $max!=0);
47 #==============================================================================
48 # ÆüÉÕ¤´¤È¤Ë¹¹¿·¤µ¤ì¤¿¥Ú¡¼¥¸¤ò°ìÍ÷ɽ¼¨¤¹¤ë¥×¥é¥°¥¤¥ó¡£
49 #==============================================================================
52 $max = 5 if($max eq "");
55 my @pages = &Wiki::get_page_list();
62 foreach my $page (@pages){
63 my ($sec, $min, $hour, $day, $mon, $year) = localtime($page->{TIME});
68 if($last_year!=$year || $last_mon!=$mon || $last_day!=$day){
71 last if($count == $max+1);
77 $buf .= "</ul>\n" if($buf ne "");
78 $buf .= sprintf("<b>%04d/%02d/%02d</b>\n",$year,$mon,$day);
82 $buf .= "<li><a href=\"$main::MAIN_SCRIPT?p=".&Util::url_encode($page->{NAME})."\">".
83 &Util::escapeHTML($page->{NAME})."</a></li>\n";
93 #==============================================================================
94 # ¥Ú¡¼¥¸¤ò¥«¥Æ¥´¥é¥¤¥º¤¹¤ë¤¿¤á¤Î¥×¥é¥°¥¤¥ó¡£
95 #==============================================================================
99 return "¥«¥Æ¥´¥ê¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£";
101 return "[<a href=\"$main::CATEGORY_SCRIPT?c=".&Util::url_encode($category)."\">".
102 "¥«¥Æ¥´¥ê:".&Util::escapeHTML($category)."</a>]";
106 #=============================================================================
107 # ¥Ú¡¼¥¸¤ÎºÇ½ª¹¹¿·Æü»þ¤òɽ¼¨¤¹¤ë¥×¥é¥°¥¤¥ó¡£
108 #=============================================================================
110 my $page = $main::in{"p"};
111 if(&Wiki::exists_page($page)){
112 return "ºÇ½ª¹¹¿·»þ´Ö¡§".&Util::format_date(&Wiki::get_last_modified($page));
118 #=============================================================================
119 # ¥«¥Æ¥´¥ê¤´¤È¤Î¥Ú¡¼¥¸°ìÍ÷¤òɽ¼¨¤¹¤ë¥×¥é¥°¥¤¥ó¡£
120 #=============================================================================
122 my $category = shift;
125 # »ØÄꤵ¤ì¤¿¥«¥Æ¥´¥ê¤òɽ¼¨
127 my @pages = &Wiki::get_page_list();
128 $buf .= "<h2>".&Util::escapeHTML($category)."</h2>\n";
130 #foreach my $page (sort(@pages)){
131 foreach my $page (sort {$a->{NAME} cmp $b->{NAME}} @pages){
132 my $source = &Wiki::get_page($page->{NAME});
133 foreach my $line (split(/\n/,$source)){
134 # ¥³¥á¥ó¥È¤«À°·ÁºÑ¥Æ¥¥¹¥È¤Î¾ì¹ç¤ÏÈô¤Ð¤¹
135 next if($line =~ /^(\t| |\/\/)/);
137 # ¥«¥Æ¥´¥ê¤Ë¥Þ¥Ã¥Á¤·¤¿¤é¥ê¥¹¥Æ¥£¥ó¥°
138 if($line =~ /{{category\s+$category}}/){
139 $buf .= "<li><a href=\"$main::MAIN_SCRIPT?p=".&Util::url_encode($page->{NAME})."\">".
140 &Util::escapeHTML($page->{NAME})."</a></li>";
147 # Á´¤Æ¤Î¥«¥Æ¥´¥ê¤òɽ¼¨
150 my @pages = &Wiki::get_page_list();
152 foreach my $page (@pages){
153 my $source = &Wiki::get_page($page->{NAME});
154 foreach my $line (split(/\n/,$source)){
155 # ¥³¥á¥ó¥È¤«À°·ÁºÑ¥Æ¥¥¹¥È¤Î¾ì¹ç¤ÏÈô¤Ð¤¹
156 next if($line =~ /^(\t| |\/\/)/);
158 # ¥«¥Æ¥´¥ê¤Ë¥Þ¥Ã¥Á¤·¤¿¤é¥ê¥¹¥Æ¥£¥ó¥°
159 while($line =~ /{{category\s+(.+?)}}/g){
160 $category->{$1}->{$page->{NAME}} = 1;
165 foreach my $name (sort(keys(%$category))){
166 $buf .= "<h2>".&Util::escapeHTML($name)."</h2>\n";
168 foreach my $page (sort(keys(%{$category->{$name}}))){
169 $buf .= "<li><a href=\"$main::MAIN_SCRIPT?p=".&Util::url_encode($page)."\">".
170 &Util::escapeHTML($page)."</a></li>\n";
178 #=============================================================================
179 # źÉÕ¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯¤òɽ¼¨¤¹¤ë¤¿¤á¤Î¥×¥é¥°¥¤¥ó¡£
180 #=============================================================================
182 my $page = $main::in{"p"};
186 return "¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£";
189 my $filename = sprintf("$main::ATTACH_DIR/%s.%s",
190 &Util::url_encode($page),&Util::url_encode($file));
191 unless(-e $filename){
192 return "¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Þ¤»¤ó¡£";
195 return sprintf("<a href=\"$main::DOWNLOAD_SCRIPT?p=%s&f=%s\">%s</a>",
196 &Util::url_encode($page),&Util::url_encode($file),$file);
199 #=============================================================================
200 # źÉÕ¥Õ¥¡¥¤¥ë¤ò²èÁü¤È¤·¤Æɽ¼¨¤¹¤ë¤¿¤á¤Î¥×¥é¥°¥¤¥ó¡£
201 #=============================================================================
203 my $page = $main::in{"p"};
207 return "¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£";
210 my $filename = sprintf("$main::ATTACH_DIR/%s.%s",
211 &Util::url_encode($page),&Util::url_encode($file));
212 unless(-e $filename){
213 return "<p>¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Þ¤»¤ó¡£</p>\n";
216 return sprintf("<div><img src=\"$main::DOWNLOAD_SCRIPT?p=%s&f=%s\"></div>",
217 &Util::url_encode($page),&Util::url_encode($file));
220 #=============================================================================
221 # źÉÕ¥Õ¥¡¥¤¥ë¤ò²èÁü¤È¤·¤Æɽ¼¨¤¹¤ë¤¿¤á¤Î¥×¥é¥°¥¤¥ó¡£
222 #=============================================================================
224 my $page = $main::in{"p"};
228 return "¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£";
231 my $filename = sprintf("$main::ATTACH_DIR/%s.%s",
232 &Util::url_encode($page),&Util::url_encode($file));
233 unless(-e $filename){
234 return "<p>¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Þ¤»¤ó¡£</p>\n";
238 open(DATA,$filename);
245 $text =~ s/\r\n/\n/g;
248 &jcode::convert(\$text,"euc");
250 # pre¥¿¥°¤ò¤Ä¤±¤ÆÊÖµÑ
251 return "<pre>".&Util::escapeHTML($text)."</pre>\n";
254 #=============================================================================
255 # ¥¢¥¦¥È¥é¥¤¥ó¤òɽ¼¨¤¹¤ë¤¿¤á¤Î¥×¥é¥°¥¤¥ó
256 # ½ÐÎϤµ¤ì¤ëHTML¤Ï¤Á¤ç¤Ã¤È¼êÈ´¤¤Ç¤¹¡Ä
257 #=============================================================================
259 my $page = $main::in{'p'};
260 my $source = &Wiki::get_page($page);
264 foreach my $line (split(/\n/,$source)){
265 if($line=~/^(!{1,3})(.+)$/){
266 my $find_level = 4 - length($1);
268 while($level < $find_level){
273 while($level > $find_level){
277 my $section = &Util::delete_tag(&Wiki::process_wiki($2));
279 $buf .= "<li><a href=\"#p$count\">$section</a></li>\n";
290 #=============================================================================
291 # ¸¡º÷¥Õ¥©¡¼¥à¤òɽ¼¨¤¹¤ë¤¿¤á¤Î¥×¥é¥°¥¤¥ó
292 #=============================================================================
294 return "<form action=\"$main::MAIN_SCRIPT\" method=\"GET\">\n".
295 " ¥¡¼¥ï¡¼¥É <input type=\"text\" name=\"w\" size=\"20\" value=\"".&Util::escapeHTML($main::in{'w'})."\">\n".
296 " <input type=\"submit\" value=\" ¸¡ º÷ \">\n".
297 " <input type=\"hidden\" name=\"a\" value=\"search\">\n".