Top > Movable Type > カスタマイズ > 代替テンプレート [全て開く]
2010年4月30日

コマーシャルパックで利用する管理画面の代替テンプレートパス(その2)

April 30,2010 11:55 PM
Tag:[, ]
Permalink

コマーシャルパックで利用する管理画面の代替テンプレートパス(その1)」の続きです。

カスタムフィールドの一覧を表示するlist_field.tmplは、代替テンプレートに配置したファイルを正常に取得しないようです。

原因は、Community.pack::lib::MT::Community::list_fieldのテンプレート取得処理で、テンプレートファイルのパスを直接指定している(下記赤色部分)ためと思われます。

sub list_field {
    my ($app) = @_;
    my $plugin = $app->component('Commercial');
    my $q = $app->param;
    …中略…
    return $app->listing({
        terms => {
            $blog_id ? ( blog_id => [ $blog_id, 0 ] ) : ()
        },
        args => { sort => 'name', 'direction' => 'ascend' },
        no_limit => 1,
        type => 'field',
        code => $hasher,
        template => File::Spec->catdir($plugin->path,'tmpl','list_field.tmpl'),
        params => {
            ($blog_id ? (
                blog_id => [ $blog_id, 0 ],
                edit_blog_id => $blog_id,
            ) : ( system_overview => 1 )),
            list_noncron => 1,
            saved_deleted => $q->param('saved_deleted') || 0,
            saved => $q->param('saved') || 0,
            obj_types_loop => \@customfield_objs,
            cfg_customfield => 1,
            search_type => 'entry',
        },
    });
}

赤色部分を次のように修正すれば、代替テンプレートが取得できるようになります。

sub list_field {
    my ($app) = @_;
    my $plugin = $app->component('Commercial');
    my $q = $app->param;
    …中略…
    return $app->listing({
        terms => {
            $blog_id ? ( blog_id => [ $blog_id, 0 ] ) : ()
        },
        args => { sort => 'name', 'direction' => 'ascend' },
        no_limit => 1,
        type => 'field',
        code => $hasher,
        template => 'list_field.tmpl',
        params => {
            ($blog_id ? (
                blog_id => [ $blog_id, 0 ],
                edit_blog_id => $blog_id,
            ) : ( system_overview => 1 )),
            list_noncron => 1,
            saved_deleted => $q->param('saved_deleted') || 0,
            saved => $q->param('saved') || 0,
            obj_types_loop => \@customfield_objs,
            cfg_customfield => 1,
            search_type => 'entry',
        },
    });
}
Comments [0] | Trackbacks [0]
2010年4月29日

コマーシャルパックで利用する管理画面の代替テンプレートパス(その1)

April 29,2010 11:55 PM
Tag:[, ]
Permalink

Movable Typeのコマーシャルパックで利用する管理画面用テンプレートファイル(addons/Commercial.pack/tmpl)の代替テンプレートパスについて、本エントリーにて紹介します。

これは、Twitterriatwさんの次のような質問をみつけましたので、それに応答したものです。

riatwさん

1.コマーシャルパックの代替テンプレートの探索動作

コマーシャルパックでも代替テンプレートは有効ですが、実験したところ、元のテンプレートが存在しない場合に限って、代替テンプレートを検索するようです。コア機能の代替テンプレートは、元のテンプレートが存在しても代替テンプレートを優先して検索するので、動作が異なります。

よって、コマーシャルパックで代替テンプレートを利用する場合、元のテンプレートファイルをリネームまたは削除する必要があります。

2.代替テンプレートの検索順序

コマーシャルパックの代替テンプレートは、次の順番でパスを検索します。

  • addons/Commercial.pack/tmpl
  • addons/Commercial.pack
  • alt-tmpl/cms
  • alt-tmpl
  • tmpl/cms
  • tmpl

環境変数AltTemplatePathの値はデフォルト(alt-tmpl)です。

Comments [0] | Trackbacks [0]
Now loading...
Introduction
List of "代替テンプレート"
Recent Entries
Recent Comments
Recent Trackbacks
QRcode

現在停止中です
携帯電話からこのQRcodeを撮影することで携帯用URLを取得することができます

URI for cellular phones
ギターに入った猫
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

loading ...
Categories
Monthly Archives
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
クリエイティブ・コモンズ・ライセンス
Powered by
Movable Type 5.04