Under the Bridge

a Picture of the Late Him

MT4.2:QRコード画像を生成するプラグイン(改)

2008年10月14日 23:53 | Writer: yoshi | 記事本文 | コメント(0) | トラックバック(1)

前回の「MT4.2:QRコード画像を生成するプラグイン」の、xampp上にQRコードが出来ない原因がはっきりとわかった。

ついでに少し手直しした。

動作しなかった原因

Windows版xammp上で指定したディレクトリへ画像ファイルが出来なかったのは、先の「嵌りメモ(perlのxampp環境でのファイル吐き出し実験)」エントリに記述のとおり。

修正したプラグインコード

引数を追加して、変換したいURL、変換後のQRコードのパスを渡すようにした。

情報量がちょっと大きいようなので、プラグイン中の「Version => 2」から「Version => 3」へ変更した。

引数の名前とかちょっとてきとう。構成は最小単位に近い。

package MT::Plugin::GetQRCode;
use strict;
use MT::Plugin;
use base qw(MT::Plugin);
our $VERSION = '0.1';
use MT::Template::Context;
use GD::Barcode;

my $plugin = new MT::Plugin::GetQRCode({
    id => 'GetQRCode',
    key => 'get_qrcode',
    name => 'GetQRCode',
    version => $VERSION,
    description => 'GetQRCode',
    author_name => 'apstar',
    author_link => 'http://www.mtde.info/',
});
MT->add_plugin($plugin);

sub init_registry
{
    my $plugin = shift;
    $plugin->registry({
        tags => {
            function => {
                'GetQRCode' => \&_hdlr_getqrcode,
            },
        },
    });
    
}

sub _hdlr_getqrcode {
my ($ctx, $args) = @_;
my $url = $args->{url};
my $qrcodeurl = $args->{qrcodeurl};

my $oGdBar = GD::Barcode->new('QRcode', $url,
{ Ecc => 'L',
ModuleSize=> 2,
Version => 3,
});

open(OUT,">$qrcodeurl");
binmode OUT;
print OUT $oGdBar->plot->png;
close OUT;
}

1;

使用例

こんな感じでいいみたい。

QRコード生成プラグイン 実験
<MTSetVarBlock name="myurl"><MTBlogURL></MTSetVarBlock>
<MTSetVarBlock name="qrurl">C:\xampp\htdocs\test\amemakanpei.png</MTSetVarBlock>
<mt:GetQRCode url="$myurl" qrcodeurl="$qrurl">

今後の課題

作成元文字列に日本語を混ぜると、その生成QRコードを読み取った際に文字化けする。

ローカル環境でできたたので、このプラグインをアップロードし、CORESERVER上でちょっと試したが、QRコード画像ファイルが生成されない。なんで?

トラックバック(1)

このブログ記事を参照しているブログ一覧: MT4.2:QRコード画像を生成するプラグイン(改)

このブログ記事に対するトラックバックURL:

» MT4.2:QRコード画像を生成するプラグイン(改)(pligg.com)~のトラックバック

嵌りメモ(perlのxampp環境でのファイル吐き出し実験) 続きを読む

2008年11月 4日 17:05

コメントする






Categories
Entries
Feed
スポンサードリンク

parts

フィードメーター - Under the Bridge

あわせて読みたい

なかのひと

2008 yoshi(apstar)