OSDN Git Service

削除されたページを完全に削除できるようにした。
[fswiki/fswiki.git] / plugin / attach / Ref.pm
1 ############################################################
2 #
3 # <p>źÉÕ¥Õ¥¡¥¤¥ë¤Ø¤Î¥¢¥ó¥«¤òɽ¼¨¤·¤Þ¤¹¡£</p>
4 # <pre>
5 # {{ref ¥Õ¥¡¥¤¥ë̾}}
6 # </pre>
7 # <p>Ê̤Υڡ¼¥¸¤ËźÉÕ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£</p>
8 # <pre>
9 # {{ref ¥Õ¥¡¥¤¥ë̾,¥Ú¡¼¥¸Ì¾}}
10 # </pre>
11 # <p>
12 #   Ä̾ï¤Ï¥¢¥ó¥«¤È¤·¤Æ¥Õ¥¡¥¤¥ë̾¤¬É½¼¨¤µ¤ì¤Þ¤¹¤¬¡¢
13 #   ÊÌ̾¤È¤·¤ÆǤ°Õ¤Îʸ»úÎó¤òɽ¼¨¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£
14 # </p>
15 # <pre>
16 # {{ref ¥Õ¥¡¥¤¥ë̾,¥Ú¡¼¥¸Ì¾,ÊÌ̾}}
17 # </pre>
18 #
19 ############################################################
20 package plugin::attach::Ref;
21 use strict;
22 use plugin::attach::AttachHandler;
23 #===========================================================
24 # ¥³¥ó¥¹¥È¥é¥¯¥¿
25 #===========================================================
26 sub new {
27         my $class = shift;
28         my $self = {};
29         return bless $self,$class;
30 }
31
32 #===========================================================
33 # ¥¤¥ó¥é¥¤¥ó´Ø¿ô
34 #===========================================================
35 sub inline {
36         my $self  = shift;
37         my $wiki  = shift;
38         my $file  = shift;
39         my $page  = shift;
40         my $alias = shift;
41         
42         if($file eq ""){
43                 return &Util::inline_error("¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
44         }
45         if($page eq ""){
46                 $page = $wiki->get_CGI()->param("page");
47         }
48         unless($wiki->can_show($page)){
49                 return &Util::paragraph_error("¥Ú¡¼¥¸¤Î»²¾È¸¢¸Â¤¬¤¢¤ê¤Þ¤»¤ó¡£","WIKI");
50         }
51         if($alias eq ""){
52                 $alias = $file;
53         }
54
55         my $filename = $wiki->config('attach_dir')."/".&Util::url_encode($page).".".&Util::url_encode($file);
56         if(-e $filename){
57                 my $buf = "<a href=\"".$wiki->create_url({ action=>"ATTACH",page=>$page,,file=>$file })."\">".&Util::escapeHTML($alias)."</a>";
58                 
59                 # ¥À¥¦¥ó¥í¡¼¥É²ó¿ô¤ò¼èÆÀ
60                 my $count = Util::load_config_hash(undef,$wiki->config('log_dir')."/".$wiki->config('download_count_file'));
61                 if(defined($count->{$page."::".$file})){
62                         $buf .= "(".$count->{$page."::".$file}.")";
63                 } else {
64                         $buf .= "(0)";
65                 }
66                 return $buf;
67                 
68         } else {
69                 return &Util::inline_error("¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Þ¤»¤ó¡£");
70         }
71 }
72
73 1;