嵌りメモ(perlのxampp環境でのファイル吐き出し実験)
Windows版のxampp環境で、プラグイン開発時に嵌ると思われる部分のメモ。
だいぶ嵌った。途中間が空いたが、2週間ほど嵌り続けた。
ことの発端は「MT4.2:QRコード画像を生成するプラグイン」で、ディレクトリまで指定するとQRコードの画像ファイルを書き出せなかったことにある。
こんな些細なことだったのね...
例えばこんなプラグインコードがあるとする。
注意:以下はとりあえず動作する切り貼り的なコードである。コール元ではMTTagsタグ内で<MTOutput path="$mypath" file="$myfile">などと呼び出し、ブログ中で使用されているタグをタグ個数だけ同じファイルへ上書きして、そのフルパスを返す、というめちゃくちゃなコード。実験用です...。
package MT::Plugin::OutPut;
use strict;
use MT::Plugin;
use base qw(MT::Plugin);
our $VERSION = '0.1';
use MT::Template::Context;
use File::Spec;
my $plugin = new MT::Plugin::OutPut({
id => 'OutPut',
key => 'output',
name => 'OutPut',
version => $VERSION,
description => 'OutPut',
author_name => 'apstar',
author_link => 'http://www.mtde.info/',
});
MT->add_plugin($plugin);
sub init_registry
{
my $plugin = shift;
$plugin->registry({
tags => {
function => {
'OutPut' => \&_hdlr_output,
},
},
});
}
sub _hdlr_output {
my ($ctx, $args, $cond) = @_;
my $path = $args->{path};
my $file = $args->{file};
my $tag = $ctx->stash('Tag');
#return '' unless $tag;
my $name = $tag->name || '';
if ($args->{quote} && $name =~ m/ /) {
$name = '"' . $name . '"';
} elsif ($args->{normalize}) {
$name = MT::Tag->normalize($name);
}
$name;
my $url = File::Spec->catfile($path,$file);
open(OUT,">$url");
binmode OUT;
print OUT $name;
close OUT;
return $url;
}
1;
呼び出し元は。Windows版xamppで動作させる(ファイルを吐き出させる)には以下のようにせねばいけないみたいだ。
<MTSetVarBlock name="mypath">C:\xampp\htdocs\test</MTSetVarBlock>
<MTSetVar name="myfile" value="mamagege.csv">
<MTTags>
<MTOutput path="$mypath" file="$myfile">
</MTTags>
注意点
- ファイルは、C:\xampp\htdocs\test\mamagege.csvを指定せねばいけない。
- MTSetVarBlockは改行するとスペースが入るので駄目(またお前かよ...という感じ)。
つまり以下のようなコードでは駄目だ。
<MTSetVarBlock name="mypath">
<MTBlogURL>
</MTSetVarBlock>
<MTSetVar name="myfile" value="mamagege.csv">
<MTTags>
<MTOutput path="$mypath" file="$myfile">
</MTTags>
これが駄目な点
- http://localhost/test/mamagege.csvでは駄目だ。
- というか上記コードではhttp://localhost/test//mamagege.csvとなる。「/」がひとつ多い。
- MTSetVarBlockは改行するとスペース入るんで駄目。
後記
かなり勘違いしてたし、今も勘違い継続中かも知れん。
この辺を読んだ。
- カテゴリ:215プラグイン関係
トラックバック(0)
このブログ記事を参照しているブログ一覧: 嵌りメモ(perlのxampp環境でのファイル吐き出し実験)
このブログ記事に対するトラックバックURL:
- Categories
- Entries
-
- MT4.2:JPEGファイルのEXIF情報を取得するプラグイン(Ver0.5)
- MT4.2:JPEGファイルのEXIF情報を取得するプラグイン(Ver0.4)
- memo:perlでプラグイン Image::ExifとImage::Info
- MT4.2:JPEGファイルのEXIF情報を取得するプラグイン(Ver0.3)
- MT4.2:JPEGファイルのEXIF情報を取得するプラグイン(Ver0.2)
- MT4.2:JPEGファイルのEXIF情報を取得するプラグイン(GPS Ready)
- MT4:エントリのURLをQRコードで自動生成する
- MT4.2:QRコード画像を生成するプラグイン(改)
- 嵌りメモ(perlのxampp環境でのファイル吐き出し実験)
- MT4.2:QRコード画像を生成するプラグイン
- MT4.2:JPEGファイルのEXIF情報を取得するプラグイン(失敗)
- 管理画面を拡張する(メニューとメソッド追加)
- MT4.1:追加したファンクションタグのみへモデファイア追加
- MT4.1:エントリの既存DBへアクセスしてデータ取得
- MT4.1:MTの計算機能を拡張するプラグイン(CalcExp)開発の話
- MT4.1:MTの計算機能を拡張するプラグイン(CalcExp)配布
- MT4.1:営業日(休日)をイッパツで表現するカレンダープラグイン(改)
- MT4.1:プラグイン作成におけるDBへのフィールド追加について(プラグイン設定編)
- MT4.1:プラグイン作成におけるDBへのフィールド追加について(ブログ毎編)
- MT4.1:プラグイン作成におけるDBへのフィールド追加について(カテゴリ編)
- MT4.1:プラグイン作成におけるDBへのフィールド追加について(エントリ編)
- MT4.1:カテゴリの並べ替え(オリジナルプラグイン+ハッシュ変数)
- サンプルプラグインを手入力した(AddField)
- MT4.1:営業日(休日)をイッパツで表現するカレンダープラグイン
- サンプルプラグインを手入力した(RandomEntry)
- 最小単位のプラグインを生成するサンプル(ファンクション、ブロック、モデファイア、コールバック)
コメントする