テンプレート一覧のアクションに「テンプレートの再構築」を追加する

テンプレート一覧のアクションに「テンプレートの再構築」を追加する

Posted at January 29,2010 1:22 AM
Tag:[list_actions, ManagementPage, MovableType]

Movable Type の過去のバージョンでは、テンプレート一覧画面のアクションの一覧に「テンプレートの再構築」がありました。図はMovable Type 4.1のテンプレート一覧画面です。

Movable Type 4.1のテンプレート一覧画面

バージョン4.1x からボタンに代わり、Movable Type 5.0 でも「公開」ボタンが継承されています。

Movable Type 5.0のテンプレート一覧画面

アクションの一覧に「テンプレートの再構築」はありません。

Movable Type 5.0のテンプレート一覧画面

が、ソースコードは残っており、利用可能なようなので紹介します。

lib/MT/App/CMS.pm の core_list_actions() にある次のコメントアウトのマーク(赤色部分)をはずします。

sub core_list_actions {
    my $app = shift;
    my $pkg = '$Core::MT::CMS::';
    return {
        …中略…
        'template' => {
            refresh_tmpl_templates => {
                label      => "Refresh Template(s)",
                code       => "${pkg}Template::refresh_individual_templates",
                permit_action => 'refresh_template_via_list',
                order      => 100,
                condition  => sub {
                    my $app = MT->app;
                    my $tmpl_type = $app->param('filter_key') || '';
                    return
                        $tmpl_type eq 'backup_templates'
                            ? 0
                            : 1;
                },
            },
 
            # Now a button!
            # publish_index_templates => {
            #     label => "Publish Template(s)",
            #     code => "${pkg}Template::publish_index_templates",
            #     permission => 'rebuild',
            #     condition => sub {
            #         my $app = MT->app;
            #         my $tmpl_type = $app->param('filter_key');
            #         return $app->mode eq 'itemset_action'  ? 1
            #              : !$app->blog                     ? 0
            #              : !$tmpl_type                     ? 0
            #              : $tmpl_type eq 'index_templates' ? 1
            #              :                                   0
            #              ;
            #     },
            #     order => 200,
            # },
            # Now a button!
            # publish_archive_templates => {
            #     label      => "Publish Template(s)",
            #     code       => "${pkg}Template::publish_archive_templates",
            #     permission => 'rebuild',
            #     condition  => sub {
            #         my $app       = MT->app;
            #         my $tmpl_type = $app->param('filter_key');
            #         return $app->mode eq 'itemset_action' ? 1
            #           : !$app->blog ? 0
            #           : !$tmpl_type ? 0
            #           : $tmpl_type eq 'archive_templates' ? 1
            #           :                                     0;
            #     },
            #     order => 300,
            # },
            copy_templates => {
                label      => "Clone Template(s)",
                code       => "${pkg}Template::clone_templates",
                permit_action => 'copy_template_via_list',
                condition  => sub {
                    my $app = MT->app;
                    my $tmpl_type = $app->param('filter_key') || '';
                    return
                          $tmpl_type eq 'system_templates' ? 0
                        : $tmpl_type eq 'email_templates'  ? 0
                        : $tmpl_type eq 'backup_templates'  ? 0
                        :                                    1;
                },
                order => 400,
            },
        },
…後略…

これで表示されるようになります。個人的には「再構築」という表現の方が分かりやすいです。

Movable Type 5.0のテンプレート一覧画面(変更後)

関連記事
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)