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...
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

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

AMN
Categories
Monthly Archives
2020年
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 6.0.3