################################################################################ # #
HTMLの<a>タグと<img>タグの組み合わせを出力します。
## {{a_img リンク先,画像ファイル名}} # {{a_img リンク先,画像ファイル名,<a>タグ属性,<img>タグ属性}} # {{a_img リンク先,画像ファイル名,"<a>タグ属性1 <a>タグ属性2","<img>タグ属性1 <img>タグ属性2"}} # {{a_img 表示名|リンク先,画像ファイル名}} # {{a_img [[ページ名]],画像ファイル名}} # {{a_img [[表示名|ページ名]],画像ファイル名}} # {{a_img リンク先,画像添付ページ名:画像ファイル名}} ##
# イメージによるリンクを出力します。HTMLでいうところの<a>タグと<img>
# タグの組み合わせと等価です。
# バナーの表示等に最適です。
#
#
# {{a_img http://yahoo.co.jp,xxx.gif}} # {{a_img http://yahoo.co.jp,xxx.gif,target="_blank",border=0}} # {{a_img http://www.google.co.jp,xxx.gif,"target=_blank charset=UTF-8","border='0' style='width:120px;height:70px;'"}} ## ↓ と書くと、次のように出力される。 #
# <a href="http://yahoo.co.jp"><img src="?action=ATTACH&page=FrontPage&file=xxx%2Egif" alt="http://yahoo.co.jp" /></a> # <a href="http://yahoo.co.jp" target="_blank"><img src="?action=ATTACH&page=FrontPage&file=xxx%2Egif" alt="http://yahoo.co.jp" border="0" /></a> # <a href="http://www.google.co.jp" target="_blank" charset="UTF-8"><img src="?action=ATTACH&page=FrontPage&file=xxx%2Egif" alt="http://yahoo.co.jp" border='0' style='"width:120px;height:70px;'" /></a> ##
# {{a_img YAHOO!JAPAN|http://yahoo.co.jp,xxx.gif}} # {{a_img [[FrontPage]],xxx.gif}} # {{a_img [[トップページ|FrontPage]],xxx.gif}} # {{a_img http://yahoo.co.jp,xxx.gif,Menu:xxx.gif}} ## ↓ と書くと、次のように出力される。 #
# <a href="http://yahoo.co.jp"><img src="?action=ATTACH&page=FrontPage&file=xxx%2Egif" alt="YAHOO!JAPAN" /></a>> # <a href="?page=FrontPage"><img src="?action=ATTACH&page=FrontPage&file=xxx%2Egif" alt="FrontPage" /></a> # <a href="?page=FrontPage"><img src="?action=ATTACH&page=FrontPage&file=xxx%2Egif" alt="トップページ" /></a> # <a href="http://yahoo.co.jp"><img src="?action=ATTACH&page=FrontPage&file=xxx%2Egif" alt="http://yahoo.co.jp" /></a> ## ################################################################################ use strict; package plugin::tag2::A_IMG; use plugin::tag2::common; #tag2モジュール内での共通関数群読み込み use plugin::image::Image; #=============================================================================== # コンストラクタ #=============================================================================== sub new($) { my ($class) = @_; my $self = {}; return bless($self, $class); } #=============================================================================== # インラインメソッド #=============================================================================== sub inline($$$$$$) { my ($self, $wiki, $link, $img_fname, $a_attribute, $img_attribute) = @_; #属性指定を無害化 $a_attribute = &plugin::tag2::common::check_attribute("#target#charset#hreflang#type#class#dir#id#lang#name#style#title#", $a_attribute); $img_attribute = &plugin::tag2::common::check_attribute("#alt#height#width#align#border#hspace#lowsrc#vspace#loop#start#class#dir#id#lang#name#style#title#", $img_attribute); #リンク先を表示名とURLに分解。URLをエンコード my ($disp_name, $name) = &plugin::tag2::common::conv_url($link); #画像のファイル名をURLに変換 # my $img_url = &plugin::tag2::common::conv_img_url($wiki, $img_fname); my $page = ""; my $img_url; if($img_fname =~ /http:\/\//){ $img_url = $img_fname; }elsif($img_fname =~ /^([^:]+):([^:]+)$/){ ($page, $img_fname) = ($1, $2); }else{ $page = $wiki->get_CGI()->param("page"); } if($page ne ""){ $img_url = &plugin::image::Image::create_image_url($wiki,$page,$img_fname); } return ""; } 1;