################################################################################ # #

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> # タグの組み合わせと等価です。
# バナーの表示等に最適です。
#
# #

  • リンク先には、Wikiページ名、又はURLを指定できます。
  • #
  • Wiki文法と同様、リンク先をダブルブラケット "[[" 〜 "]]" で囲うとWikiページ # へのリンクになります。
  • #
  • 同様に、縦棒を用いると、表示名とリンク先をそれぞれ別々に指定できます。 # 指定された別名は、<img>タグのalt属性として出力されます。
  • #
  • 他のページに添付されている画像を表示させるには、画像ファイル名の前に、<ペ # ージ名>+「:」を入れて下さい。
  • #
  • 非推奨の属性や、セキュリティ上危険と思われる文字列を含んでいる場合は、その # 属性を無効化して出力します。
  • #
  • 属性は、全体をダブルクォーティション「"」で囲うと複数の属性が指定できます。 # 但し、この場合、直前のカンマ「,」との間に空白文字を入れてはいけません。また、 # 属性の右辺に空白を含めたい場合は、タブを使用して下さい。
  • #
  • デフォルトでは余計な属性を付加しませんので、画像の枠を表示させたくない場 # 合は、IMGタグ属性に「border=0」を指定してください。
  • #
  • 第3引数を省略する場合は、半角スペースを一つ入れて下さい。
  • # #

    #
    #   {{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 "\"$disp_name\"$img_attribute"; } 1;