ラベル Plugin の投稿を表示しています。 すべての投稿を表示
ラベル Plugin の投稿を表示しています。 すべての投稿を表示

2006年3月21日火曜日

Template::Plugin::Encode

内部エンコーディングをFlagged UTF-8にしたところ、テンプレート内の日本語を含んだURLにuriフィルタを適用すると、空になるという現象が発生してしまいました。
uriフィルタをハックして、、とも思いましたが、テンプレート内でEncodeモジュールが使えたら便利かなと思い、プラグインを書いてみました。


Template::Plugin::Encode-0.01


使い方はこんな感じ。メソッドの実装は、Template::Plugin::Jcodeを参考に、virtual methodとして扱えるようにしてみました。

>

[% USE Encode %]

# encode
<a href="/foo/bar?jword=[% ja_str.encode.encode('utf-8')|html|uri %]">click here</a>

# decode
[% foo.encode.decode('euc-jp') %]

# from_to
[% num = bar.encode.from_to('sjis','euc-jp') %]
[% bar %]

<

こういうプラグインはすでにCPANにあるだろうと思ったんですが、ミストを感じなかったので、作成してみました。

2004年11月30日火曜日

Sledge::Plugin::SaveUploadImage

フォームからアップロードされた画像を指定の形式に保存するためのSledgeプラグインを書いてみました。

Sledge::Plugin::SaveUploadImage

自分のPagesクラスでuseすると、各画像フォーマット保存用に用意したsave_as_jpg, save_as_gif, save_as_pngがアップロードオブジェクトにインポートされます。save_as_xxxメソッドは引数に保存先のディレクトリのみ指定した場合は保存するファイル名を自動的に決定してくれるので、テンポラリーファイルを保存する際にいちいちテンポラリファイル名を考えるのが面倒くさいと思っていた人にとっては便利かなーと思います。
こんな感じに使います。

>

package Your::Pages;
use Sledge::Plugin::SaveUploadImage;

my $upload = $self->r->upload('upload_file');
my $filename = $upload->save_as_jpg( $save_dir );
<