MT/MTOSのCMSテンプレートは直接触らずにコピーをいぢくるのだ。

| コメント(0) | トラックバック(0)

MTのカスタマイズ方法を紹介したブログとかで、 tmpl/の中のファイルの何行目に手を入れたりパッチを当てたりしてカスタマイズできるよ、みたいな Tips を紹介しているケースがあるけれど、直接ソースをいぢくる必要は全然ないのです。

そりゃぁMTOSはGPLだし直接触っても怒られやしないんだけどね。

例えばエントリーの投稿画面をごにょごにょしたいとして、プラグインの中で


callbacks => {
            'MT::App::CMS::template_param.edit_entry'
                => ¥&_entry_param,

としていぢる方法は良く知られているわけで、MT4からはDOMでもって項目を追加したりすることも出来る。


callbacks => {
            'MT::App::CMS::template_source.edit_entry'
                => ¥&_entry_source,

とすれば、ソースをプログラムで書き換えることができるし、


callbacks => {
            'MT::App::CMS::template_output.edit_entry'
                => ¥&_entry_output,

とすれば、テンプレートレンダリング後のソースにアクセスして書き換えることもできる。

でも、所詮プログラムだし、Perlわかんねーし、ってな場合はノンプログラミングでカスタマイズ出来る方法も用意されている。

mtフォルダの直下に alt_tmpl フォルダがあって、ここに edit_entry.tmplのコピーを置く。このコピーに対して修正をかければ、そいつが優先される。

テンプレートを他のフォルダに置きたければ mt-config.cgi に


AltTemplatePath my-alt-tmpl

とか書けば良い。

プラグインを作成する時に、前述のようにcallbackでDOMとかMT3時代に良く見られたtemplate_sourceを正規表現でって言う方法も良いけど、alt_tmplに置く方法だとノンプログラミングでカスタマイズ出来て、且つノンプログラミングとは言ってもMT4.1のMTタグはもはやプロムラミング言語チックなんだから、代替テンプレートを用意して「管理画面の見た目カスタマイズ部分」と「プラグラミング部分」をうまくわけると効率アップと分業化がうまく出来るんじゃないでしょうかね。

DOMでプラグインが壊れにくいっていってもメジャーアップグレードの時は駄目だろうし、MT4.0→4.1でもやっぱりテンプレート変わってるから調整は皆無にはならないから、見た目調整をプログラミングから分離させる方法は良いと思うんだけど。

プラグインの場合は配布とかセッティングとか一発で、alt_tmplにこれ、pluginにこれ、mt-staticにこれっていかにも面倒なんだが、プラグイン配布とか設置とか考えるのならばテンプレートの場所をプラグインで定義してやれば良い(実はこれを書こうと思ったというか、ちょっとさっきやってみたのがこれで、そう考えると長い前振りだね)。

プラグインでCMSのテンプレートをカスタマイズする際に、プラグインフォルダ直下の/tmplフォルダにテンプレートを置くには以下のように書く。


sub init_request {
    my $plugin = shift;
    my ( $app ) = @_;
    if ( $app->isa('MT::App::CMS') ) {
        $app->config( 'AltTemplatePath', File::Spec->catdir($plugin->path,'tmpl') );
    }
}

というようなことで、管理画面のカスタマイズ方法をまとめ中。

トラックバック(0)

トラックバックURL: http://junnama.alfasado.net/cgi/mt/mt-tb.cgi/122

コメントする

Facebook

Twitter

このブログ記事について

このページは、Junnama Nodaが2008年1月29日 22:55に書いたブログ記事です。

ひとつ前のブログ記事は「MTから吐き出されるHTML中の改行がやたらと連続して何かきれいじゃないというのが気になるあなたに。」です。

次のブログ記事は「AltTemplateでMTタグを使う。」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 6.2.6