コマーシャルパックで利用する管理画面の代替テンプレートパス(その2)
「コマーシャルパックで利用する管理画面の代替テンプレートパス(その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',
},
});
}
Posted by yujiro このページの先頭に戻る
- コマーシャルパックで利用する管理画面の代替テンプレートパス(その1)
トラックバックURL
コメントする
greeting