テンプレートの保存・再構築を同時に行うボタン


カスタマイズしていると、保存しては再構築……を何度もしなくてはならず、結構めんどくさいものです。
このカスタマイズをすると、1クリックで保存と再構築ができるようになります。↓↓
button.jpg

こまめにカスタムする方にはとてもオススメ。
イライラが軽減されます。
MagicWhiteさんの記事小粋空間さんの記事を参考に作業しました。

なぜか最初うまくいかなくて、エラーを出したりしました。
結構いじるので、関連書類のバックアップ必須です。お気をつけて。
やり方は以下に。

  1. lib/MT/App/CMS.pmをテキストエディタで開きます。
  2. 1149行目付近にある
    sub save_object {

    を探します。(以下、エディタの検索機能を使うと便利です)

  3. その真下に

    my $sr = 0;

    を追加します。

  4. 1340行目付近にある

    $obj->text($text);

    をテキストエディタ機能を使って探します。

  5. その真下に

    ## Save and Rebuild
    if($q->param('sr')){
    $sr = 1;
    $app->rebuild_indexes( BlogID => $obj->blog_id, Template => $obj, Force => 1 )
    or return;
    }

    を追加します。


  6. $obj->rebuild_me : 1;

    をテキストエディタ機能を使って探します。

  7. その真下に

    $param{sr} = 1 if($q->param('sr')) ;

    を追加します。

  8. 1500行目付近にある

    } else {
    return $app->redirect($app->uri . '?__mode=view&_type=' . $type . '&id=' . $obj->id . '&blog_id=' . $blog_id . '&saved=1');
    }
    }

    sub list_objects {


    } else {
    if($sr == 1){
    return $app->redirect($app->uri . '?__mode=view&_type=' . $type . '&id=' . $obj->id . '&blog_id=' . $blog_id . '&sr=1');
    $sr = 0;
    } else {
    return $app->redirect($app->uri . '?__mode=view&_type=' . $type . '&id=' . $obj->id . '&blog_id=' . $blog_id . '&saved=1');
    }
    }
    }

    sub list_objects {

    に書き換えます。


  9. tmpl/cms/edit_template.tmplをテキストエディタで開きます。

  10. <form method="post" action="<TMPL_VAR NAME=SCRIPT_URL>">

    を探します。

  11. その上に

    <TMPL_IF NAME=SR>
    <div class="message">
    <MT_TRANS phrase="Your template changes have been saved and your template has been rebuilt.">
    </div>
    </TMPL_IF>

    を追加します。


  12. <input type="button" onclick="doRebuildOne(<TMPL_VAR NAME=ID>)" value="<MT_TRANS phrase="Rebuild">" />

    を探します。


  13. その下に

    <input type="submit" name="sr" value="<MT_TRANS phrase="Save & Rebuild">" />

    を追加します。

  14. 最後に編集したCMS.pmとedit_template.tmplを保存してアップロードします。

ここまででボタンが追加されているはずです。
動作確認してみてください。

以下はボタンを一番左へ配置と、フォームボタンおよびメッセージの日本語表示です。

  1. lib/MT/L10N/ja.pm を開きます。
  2. 523行目付近の

    'Your template changes have been saved.' => '変更したテンプレートを保存しました。',

    の真下に以下のコードを付け足します。

    'Your template changes have been saved and your template has been rebuilt.' => '変更したテンプレートを保存・再構築しました。',

  3. 541行目付近の

    'Rebuild' => '再構築',

    の真下に以下のコードを付け足します。

    'Save & Rebuild' => '保存&再構築',

    これでボタンが日本語になります。


以上です。
ちょっと面倒ですが、更新がすごく楽になりますよ。

トラックバックURL

このエントリーのトラックバックURL:

コメントしてください




保存しますか?