logo
home > web > MTの管理画面にテンプレート名を表示させる

MTの管理画面にテンプレート名を表示させる


MTの管理画面にテキストを追加したり、修正を加えたい場合、どのテンプレートファイルを修正して良いかよくわかりませんでした。

そんな時は管理画面で表示に使用されているテンプレート名をフッターに表示させておきましょう。
そうすればどのテンプレートを修正して良いか簡単に見つけることができます。

テンプレート名を表示させるにはlib/MT.pmの下記の部分を修正します。


中略・・・
sub load_tmpl {
    my $mt = shift;
    if ( exists($mt->{component}) && ( $mt->{component} ne 'Core' ) ) {
        if (my $c = $mt->component($mt->{component})) {
            return $c->load_tmpl(@_);
        }
    }

    my($file, @p) = @_;
    my $param;
    if (@p && (ref($p[$#p]) eq 'HASH')) {
        $param = pop @p;
    }
    my $cfg = $mt->config;
    require MT::Template;
    my $tmpl;
    my @paths = $mt->template_paths;

    my $type = {'SCALAR' => 'scalarref', 'ARRAY' => 'arrayref'}->{ref $file}
        || 'filename';
    $tmpl = MT::Template->new(
        type => $type, source => $file,
        path => \@paths,
        filter => sub {
            my ($str, $fname) = @_;
            if ($fname) {
                $fname = File::Basename::basename($fname);
                $fname =~ s/\.tmpl$//;
                $mt->run_callbacks("template_source.$fname", $mt, @_);
            } else {
                $mt->run_callbacks("template_source", $mt, @_);
            }
            return $str;
        },
        @p);
    return $mt->error(
        $mt->translate("Loading template '[_1]' failed.", $file)) unless $tmpl;
    $mt->set_default_tmpl_params($tmpl);
    $param->(template_file) = $file;
    $tmpl->param($param) if $param;
    $tmpl;
}
・・・中略

赤字部分を追記しましょう。
さらに、tmpl/cms/include/footer.tmplに赤字部部を追記。

中略・・・
            <mt:include name="include/copyright.tmpl">
            <p id="version">
                <strong><__trans phrase="<a href="[_1]"><mt:var name="mt_product_name"></a> version [_2]" params="<mt:var name="portal_url">%%<mt:var name="mt_version_id">"></strong>
<mt:if name="packs_installed">
                <__trans phrase="with">: <mt:loop name="packs_installed" glue=", "><a href="<__trans phrase="http://www.sixapart.com/movabletype/">pack/<mt:var name="id">/"><mt:var name="label" escape="html"> <mt:var name="version" escape="html"></a></mt:loop>
</mt:if>
            <MTVar name="template_file">
            </p>
        </div><!-- /footer -->
・・・中略

これでフッターにテンプレート名が表示されるはずです。

JavaScript Journal | JavaScript総合情報サイト

このブログ記事について

このページは、marooonが2011年1月12日 00:00に書いたブログ記事です。

ひとつ前のブログ記事は「MTの記事をソートしてみよう」です。

次のブログ記事は「MTでサイトマップXMLを作成してウェブマスターツールに登録するSEO対策」です。

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