OSDN Git Service

改行コードをLFに統一。
[fswiki/fswiki.git] / plugin / google / Google.pm
1 ######################################################################
2 #
3 # <p>Google¤Î¸¡º÷¥Ü¥Ã¥¯¥¹¤òɽ¼¨¤·¤Þ¤¹¡£</p>
4 # <pre>
5 # {{google}}
6 # </pre>
7 # <p>¥µ¥¤¥È¸¡º÷µ¡Ç½¤ò»ý¤¿¤»¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£</p>
8 # <pre>
9 # {{google ¥µ¡¼¥Ð̾}}
10 # </pre>
11 # <p>ÆüËܸì¤Î¥Ú¡¼¥¸¤«¤é¸¡º÷¤µ¤»¤ë¤¿¤á¤ÎÁªÂò¤òɽ¼¨¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£</p>
12 # <pre>
13 # {{google l}}
14 # </pre>
15 # <p>Menu¸þ¤±¤ËGoogle¥í¥´¤È¥Æ¥­¥¹¥È¥Ü¥Ã¥¯¥¹¤È¥Ü¥¿¥ó¤ò½Ä¤ËÇÛÃ֤Ǥ­¤Þ¤¹¡£</p>
16 # <pre>
17 # {{google v}}
18 # </pre>
19 # <p>¸¡º÷·ë²Ì¤ò¿·¤·¤¤Áë¤Ç³«¤¯¤è¤¦¤Ë½ÐÍè¤Þ¤¹¡£</p>
20 # <pre>
21 # {{google t}}
22 # </pre>
23 # <p>Google¥í¥´¤Î¥µ¥¤¥º¤ÈÇØ·Ê¿§¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£</p>
24 # <pre>
25 # {{google (25|40|50|60)(wht|gry|blk)}}
26 # </pre>
27 # <p>
28 #   Á°¤Î¿ô»ú¤¬¥µ¥¤¥º(ËÜÍè¤Î¥í¥´¤È¤ÎÈæΨ)¡¢¸å¤í¤Î¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤¬
29 #   =ÇØ·Ê¿§(wht=Çò¡¢gry=³¥¿§¡¢blk=¹õ)¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
30 #   ¼ÂºÝ¤Î¥í¥´¤Î°ìÍ÷¤Ï¡¢
31 #   =<a href='http://www.google.co.jp/intl/ja/logos.html'>Google ¥í¥´»ÈÍÑ</a>
32 #   ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
33 # </p>
34 # <p>¥Æ¥­¥¹¥È¥Ü¥Ã¥¯¥¹¤ÎÉý¤¬»ØÄê¤Ç¤­¤Þ¤¹¡£</p>
35 # <pre>
36 # {{google sÉý}}
37 # </pre>
38 # <p>Éý¤Ï1¡Á255¤Î´Ö¤Ç»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£</p>
39 # <p>ɽ¼¨°ÌÃ֤λØÄ꤬½ÐÍè¤Þ¤¹¡£</p>
40 # <pre>
41 # {{google (center|right|left)}}
42 # </pre>
43 # <p>
44 #   ¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤ÏÊ»ÍѤ¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£
45 #   ¥«¥ó¥Þ¤Ç¶èÀڤäƵ­½Ò¤·¤Æ¤¯¤À¤µ¤¤¡£½ç½ø¤ÏǤ°Õ¤Ç¤¹¡£
46 # </p>
47 # <pre>
48 # {{google ¥µ¡¼¥Ð̾,l,v,t,25wht,sÉý,center}}
49 # </pre>
50 #
51 ######################################################################
52 package plugin::google::Google;
53 use strict;
54
55 #=====================================================================
56 # ¥³¥ó¥¹¥È¥é¥¯¥¿
57 #=====================================================================
58 sub new {
59         my $class = shift;
60         my $self = {};
61         return bless $self,$class;
62 }
63
64 #=====================================================================
65 # ¥Ñ¥é¥°¥é¥Õ¥á¥½¥Ã¥É
66 #=====================================================================
67 sub paragraph {
68         my $self = shift;
69         my $wiki = shift;
70         my @args = @_;
71
72         my $error = undef;
73         my $logo = '40wht';
74         my $domain = undef;
75         my $lang = undef;
76         my $size = 31;
77         my $align = "center";
78         my $target = '';
79         my $vertical_br = '';
80         my $logolist = '|25wht|40wht|50wht|60wht|25gry|40gry|50gry|60gry|25blk|40blk|50blk|60blk|';
81
82         foreach my $arg (@args) {
83                 $arg = Util::trim($arg);
84                 if (index($logolist, '|' . lc($arg) . '|') >= 0) {
85                         $logo = lc($arg);
86                 } elsif (lc($arg) eq 'v') {
87                         $vertical_br = '<br>';
88                 } elsif (lc($arg) eq 'l') {
89                         $lang = 1;
90                 } elsif (lc($arg) eq 't') {
91                         $target = 'target=blank';
92                 } elsif ($arg =~ /^s([0-9]+)/) {
93                         $size = $1;
94                         if (($size < 1) || ($size > 255)) {
95                                 $error = '¥µ¥¤¥º¤Ï1¡Á255¤Ç»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£';
96                         }
97                 } elsif ($arg =~ /(center|right|left)/) {
98                         $align = $1;
99                 } else {
100                         if (defined($domain)) {
101                                 $error = '¥É¥á¥¤¥ó¤¬Ê£¿ô»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£';
102                         } elsif (($arg eq '') || ($arg =~ /[^-0-9A-Za-z.]/)) {
103                                 $error = '¥É¥á¥¤¥ó̾¤Ë»ÈÍѤǤ­¤Ê¤¤Ê¸»ú¤¬¤¢¤ê¤Þ¤¹¡£';
104                         } else {
105                                 $domain = $arg;
106                         }
107                 }
108         }
109         return &Util::paragraph_error($error) if defined($error);
110
111         if ($vertical_br ne '') {
112                 my $siteoption = '';
113
114                 $siteoption .= <<"EOD" if defined($domain);
115 <input type=hidden name=domains value="${domain}"><br><input type=radio name=sitesearch value="">WWW <input type=radio name=sitesearch value="${domain}" checked>${domain}
116 EOD
117
118                 $siteoption .= <<"EOD" if defined($lang);
119 <br><input type=radio name=lr value="" checked>¥¦¥§¥ÖÁ´ÂΠ<input type=radio name=lr value=lang_ja >ÆüËܸì
120 EOD
121
122                 $siteoption = "<font size=-1>${siteoption}</font>" if $siteoption ne '';
123
124                 return <<"EOD";
125 <!-- Google  -->
126 <div class="plugin_google" align="$align">
127 <form method=GET action="http://www.google.co.jp/search" $target>
128 <a href="http://www.google.co.jp/"><IMG SRC="http://www.google.com/logos/Logo_${logo}.gif" border="0" ALT="Google" align="absmiddle"></a> <INPUT type=submit name=btnG VALUE="¸¡º÷"><input type=hidden name=hl value="ja"><input type=hidden name=ie value="EUC-JP"><br>
129 <INPUT TYPE=text name=q size=${size} maxlength=255 value="">${siteoption}
130 </form>
131 </div>
132 <!-- Google -->
133 EOD
134         } else {
135                 my $siteoption = '';
136
137                 $siteoption .= <<"EOD" if defined($domain);
138 <input type=hidden name=domains value="${domain}"><br><input type=radio name=sitesearch value=""> WWW ¤ò¸¡º÷ <input type=radio name=sitesearch value="${domain}" checked> ${domain} ¤ò¸¡º÷
139 EOD
140
141                 $siteoption .= <<"EOD" if defined($lang);
142 <br><input type=radio name=lr value="" checked>¥¦¥§¥ÖÁ´ÂΤ«¤é¸¡º÷ <input type=radio name=lr value=lang_ja >ÆüËܸì¤Î¥Ú¡¼¥¸¤ò¸¡º÷
143 EOD
144
145                 $siteoption = "<font size=-1>${siteoption}</font>" if $siteoption ne '';
146
147                 return <<"EOD";
148 <!-- Google  -->
149 <div class="plugin_google" align="$align">
150 <FORM method=GET action="http://www.google.co.jp/search" $target>
151 <TABLE style="border: none"><tr><td  style="border: none" align=center>
152 <A HREF="http://www.google.co.jp/">
153 <IMG SRC="http://www.google.com/logos/Logo_${logo}.gif" 
154 border="0" ALT="Google" align="absmiddle"></A>
155 </td>
156 <td  style="border: none" align=center>
157 <INPUT TYPE=text name=q size=${size} maxlength=255 value="">
158 <input type=hidden name=hl value="ja">
159 <input type=hidden name=ie value="EUC-JP">
160 <INPUT type=submit name=btnG VALUE="Google¸¡º÷">${siteoption}
161 </td></tr></TABLE>
162 </FORM>
163 </div>
164 <!-- Google -->
165 EOD
166         }
167 }
168
169 1;