[ 新規 ] [ 検索 | 一覧 | FrontPage ] [ 履歴 (RSS) | 差分履歴 (RSS) ] [ ログイン ]
【PR】Amazon | SL-C3000 | SL-C1000(3/18発売!) | SL-C860 | SL-6000W | SL-6000L | SL-6000N

WalWiki/カスタマイズ/引数付きアンテナ

差分表示


編集前の状態に戻します。
引数付きのアンテナを定義/使用できるようになります。

* [dynamic antenna]

AntennaSiteNameのアンテナ定義で、InterWikiNameと同様に展開したいパラメータ部分を
euc($1),sjis($1)等の様に記述します。

 [[アンテナ名 http://URL?euc($1)]]

アンテナの埋め込み時に下記のようにしてパラメータを指定できます。

 [[#antenna:アンテナ名(0):パラメータ]]
** グローバル変数定義

 #my $embed_antenna = '^\[\[#antenna:(\S+?)(\(\d+\))?\]\]$';                      # Walrus add [wiki antenna]          # yakty del [dynamic antenna]
 my $embed_antenna = '^\[\[#antenna:(\S+?)(\(\d+\))?(:(\S+))?\]\]$';             # Walrus add [wiki antenna]           # yakty add [dynamic antenna]

** embedded_to_html()内の変更

     # Walrus add [wiki antenna] start
     } elsif ($embedded =~ /$embed_antenna/ and defined($antennasite{$1})) {
         $_ = ($2) ? substr($2, 1, length($2) - 2) : 0;
         #$_ = &make_antenna_data($1, $_);         # yakty del [dynamic antenna]
         $_ = &make_antenna_data($1, $_, $4);      # yakty add [dynamic antenna]
         return ($_) ? $_ : &escape($embedded);
     # Walrus add [wiki antenna] end

** make_antenna_data()内の変更

- [[#now]] 引数無しアンテナに引数が指定された場合の処理を追加。引数付きの場合の保存名が変だったので修正。

 sub make_antenna_data {
     #my ($name, $limit) = @_;           # yakty del [dynamic antenna]
     my ($name, $limit, $param) = @_;    # yakty add [dynamic antenna]
     return undef unless (defined($antennasite{$name}));
     my ($type, $url) = @{$antennasite{$name}};
     # yakty add [dynamic antenna] start
     if($param){
         $url =~ s/\b(euc|sjis|ykwk|asis|isbn)\(\$1\)/&interwiki_convert($1, $param)/e; 
         $name .= $name . ":" . $param;
         if($url =~ s/\b(euc|sjis|ykwk|asis|isbn)\(\$1\)/&interwiki_convert($1, $param)/e){
             $name .= ":" . $param;
         }
     }
     # yakty add [dynamic antenna] end
     my ($time, $status, $data) = ($antennabase{$name}) ? split(/\n/, $antennabase{$name}, 3) : (0, 'Not Retriebed', '');


02388