imagealt プラグインの知らせのあと、Transformer を使えるように勉強していたところ、ちょうど『カテゴリーの出力先を指定できるようになったのは良いのだけれど、そのフィールドのラベルが出力ファイル名なのはねえ。』という意見があったので、それ plu ということで練習を兼ねて作ってみました。実は管理画面のテンプレートを書き換えて lib/MT/L10N/ja.pm に文言を追加すれば済むのだけれど、そういう変更はなんかチョット元のファイルを弄ってしまうのでアレですし…。そもそも Movable Type のコード自体をカスタマイズしてしまっているばかりにアップグレードが大変に感じてしまうのも嫌なので。あわせて 3.3 からプラグインごとにローカライゼーションできるので、MT::Plugin::L10N を利用してみました。これで言語環境によってプラグインの説明の言語も変わります。ステキング!
ダウンロードしたら Transformer ディレクトリをそのまま [mt]/plugins/ にアップロードします。インストールはこれだけでオケイです。カテゴリーごとの管理画面に移動し、『出力ファイル名』となっている所が『出力ディレクトリ名』になっていると思います。ちなみに使用言語を英語にすると、『Category Path』になります。
カテゴリーの出力先ディレクトリを入力するフィールドのラベルは出力ファイル名となっています。
カテゴリーの出力先ディレクトリを入力するフィールドのラベルは Transformer Sample プラグインで出力ディレクトリ名 (使用言語が英語の場合は Category Path) に変更されました。合わせてシステムメニューのプラグインページにリストされている項目を言語環境 (en_us と ja) でチェックしてみてください。言語によって表示が異なるはずです。わかりやすいように全て日本語化できるように ja.pm で定義しています。

単なるサンプルですので、管理画面をちょこっと変更したい場合には、このプラグインに登録項目とサブルーチン追加すると良いかもしれません。プラグインファイルのソースは勉強中でもあるので晒しておきます。各部日本語化する必要が無い場合は、ファイルをダウンロードしなくても、以下のコードをTransformerSample.plといったファイル名で保存し、[MT]/plugins/ にアップロードすれば機能します。
package MT::Plugin::TransformerSample;
use strict;
use MT::Plugin;
@MT::Plugin::TransformerSample::ISA = qw(MT::Plugin);
use MT;
my $plugin = new MT::Plugin::TransformerSample({
name => '<MT_TRANS phrase="Transformer Sample">',
version => 'test',
description => '<MT_TRANS phrase="Transformer Test.">',
author_name => '<MT_TRANS phrase="Taichi Kaminogoya">',
author_link => 'http://2xup.org/',
l10n_class => 'TransformerSample::L10N',
});
MT->add_plugin($plugin);
MT->add_callback('MT::App::CMS::AppTemplateSource.edit_category', 9, $plugin, \&edit_category_basename_label);
sub edit_category_basename_label {
my ($eh, $app, $tmpl) = @_;
my $catpath = $plugin->translate('Category Path');
$$tmpl =~ s!(<label for="basename"><MT_TRANS phrase="Basename"></label>)!<label for="basename">$catpath</label>\n!is;
}
1;
テンプレートソースを変更する場合は、以下の様に登録項目を設定します。edit_category となっている所は .tmpl という拡張子を除いた 管理画面テンプレート名です。またそのあとの edit_category_basenamelabel の部分は後で書くサブルーチンの名前を入力します。
MT->add_callback('MT::App::CMS::AppTemplateSource.edit_category', 9, $plugin, \&edit_category_basenamelabel);
あとはサブルーチンで変更したい場所、変更後のソースを定義しています。
$$tmpl =~ s!(変更したうい部分を探すためのソース (変更前のソース))!変更後のソース!is;
もし、<span class="memo">memo</span> を <span class="memo">memo</span><span class="note">note</span> としたい場合は
$$tmpl =~ s!(<span class="memo">memo</span>)!$1<span class="memo">memo</span><span class="note">note</span>!is;
という風に変更後のソースの前に変更前のソースを返す$1を書きます。元のソースの簡単な追加や置換はこれだけでできます。
Transformer 機能を利用し Movable Type の管理画面をカスタマイズできるという事は、たとえばシステムとしてクライアントに提供する際にクライアントに合わせたカスタマイズで提供が可能になりますね。ただ管理画面の項目を追加するだけでなく、Right Fields プラグインや imagealt プラグインのように、機能自体の追加も可能なので、Movable Type を利用した CMS としての可能性は Transformer 機能でさらに広がりそうです。
ファイルダウンロードしようと思ったのですが、ファイルありませーん、っていわれちゃいましたので、かなピーです。
> 後大おおおおhhhhhhhhhhhhhhhhhhhさん
ファイルのリンクが間違えておりました。
修正しましたので、まだ間に合うようでしたらダウンロードしてみてくださいませ。
同じくファイルありませーん。
(T^T)
ダウンロード先教えてくださーい。
> ちゃまるさん
申し訳ございません、もう一度お試しになっていただけますか?
どうぞよろしくお願いします。