Movable Type の記事投稿画面の UI をカテゴリごとに変えるカスタマイズをカスタムフィールドにも適用させる

なんてタイトルの長い記事なんでしょう。。。

さて、以前「Movable Type の記事投稿画面の UI をカテゴリごとに変えるカスタマイズ ( jQuery 版)」という方法を紹介しました。

その記事に「あとカスタムフィールドを使いたいのですが可能でしょうか?」というコメントを頂いたので、このカスタマイズをカスタムフィールドに適用する方法を紹介します。

ダウンロードと基本的な使い方

ダウンロードや基本的な使い方は、以下の記事を参照してください。

カスタムフィールドにも適用させる方法(カスタマイズ編)

この UI チェンジャーは、ui_changer.tmpl をカスタマイズすることで、カスタムフィールドにも適用することができます。

まず、カスタムフィールドの設定画面で、UI チェンジャーを適用させたいカスタムフィールドの「ベースネーム」を確認します。ここでは例として「publicdate」となっています。

uichanger_custom_001.png

次に、ui_changer.tmpl の 11〜16行目の後に、次のような形式でカスタムフィールドのボックスに関する設定を追加します。

var title       = jQuery('div#title-field');
var content     = jQuery('div#editor');
var tags        = jQuery('div#tags-field');
var excerpt     = jQuery('div#excerpt-field');
var keywords    = jQuery('div#keywords-field');
var authored_on = jQuery('div#authored_on-field');
var ベースネーム = jQuery('div#customfield_ベースネーム-field');

「ベースネーム」の部分を先ほど確認したベースネームに差し替えてください。ここでは「publicdate」だったので、次のようになります。

var title       = jQuery('div#title-field');
var content     = jQuery('div#editor');
var tags        = jQuery('div#tags-field');
var excerpt     = jQuery('div#excerpt-field');
var keywords    = jQuery('div#keywords-field');
var authored_on = jQuery('div#authored_on-field');
var publicdate  = jQuery('div#customfield_publicdate-field');

続いて、上記変更後の 62〜68行目付近の後に以下のように挿入します。

【62〜68行目付近】

    // 公開日
    authored_on
//        .removeClass('hidden')/*  表示  */
//        .addClass('hidden')   /* 非表示 */
//        .insertBefore()
//        .insertAfter()
        .find('label#authored_on-label').text('公開日');

【68行目付近の後に次のように挿入】

    // カスタムフィールド名
    ベースネーム
//        .removeClass('hidden')/*  表示  */
//        .addClass('hidden')   /* 非表示 */
//        .insertBefore()
//        .insertAfter()
        .find('label#customfield_ベースネーム-label').text('カスタムフィールド名');

この「カスタムフィールド名」をカスタムフィールドの「名前」に、「ベースネーム」の部分を先ほど確認したベースネームに差し替えてください。ここでは「カスタムフィールド名」は「公開日時」(紛らわしくてすみません)、「ベースネーム」は「publicdate」だったので、次のようになります。

    // 公開日時
    publicdate
//        .removeClass('hidden')/*  表示  */
//        .addClass('hidden')   /* 非表示 */
//        .insertBefore()
//        .insertAfter()
        .find('label#customfield_publicdate-label').text('公開日時');

次に、95行目あたりに次のように挿入します。

jQuery('label#authored_on-label').text('公開日');【95行目あたり】
jQuery('label#customfield_ベースネーム-label').text('カスタムフィールド名');

これまでと同様に書き換えると次のようになります。

jQuery('label#authored_on-label').text('公開日');【95行目あたり】
jQuery('label#customfield_publicdate-label').text('公開日時');

最後に、100行目あたりに次のように挿入します。

jQuery('div#tags-field').insertAfter('div#editor-content');【100行目あたり】
jQuery('div#customfield_ベースネーム-field').insertAfter('div#editor-content');

ここも同様に書き換えると次のようになります。

jQuery('div#tags-field').insertAfter('div#editor-content');【100行目あたり】
jQuery('div#customfield_publicdate-field').insertAfter('div#editor-content');

これで、UI チェンジャーをカスタムフィールドにも適用させる準備が整いました。あとは他のフィールドと同様に設定すればOKです。

以上です。

トラックバック

The trackback URL is "".

コメント

こんばんわ。
先日UIChangerについてコメントさせて頂いたものです。
返事が遅くなりましてごめんなさい。
新規エントリーまでしていただいて詳しく解説して頂いて大変感謝致しております。
しかし、やっぱり設定がうまく出来ませんでした。。。。
時間の都合で設置をあきらめてしまったんですが
また機会がありましたら利用させて下さい!
ありがとうございました。

こんにちは。kazyと申します。

UIChangerがかなり便利そうなので
使わせて頂こうと思っているのですが、
インストールしたところカスタムフィールドが表示されなくなってしまいました。
「表示オプション」にも表示されなくなってしまいます。
もしかすると「edit_entry.tmpl」にもなにか修正する必要ありますでしょうか。
もしよければご回答お願いします

すみません。
上記に書いた現象ですが、問題解決しました。

自分は MT4.25 を使用しているのですが、
どうやら MT4.23 から MT4.25 にかけて
edit_entry.tmpl のカスタムフィールドの部分が
大幅に改編されたようです。
MT4.25 の edit_entry.tmpl と UIChanger の edit_entry.tmpl を
うまくマージさせたら動きました。

どうもお騒がせしました。

はじめまして。

UIChangerすばらしくて驚いています。
とても便利で感動しました。。

ひとつ質問があるのですが、
こちらMT4.261で使用しておりまが

カスタムフィールドを用いて複数のUI画面を作るところまで
完了したのですが、適用ボタンを押して各画面を切り替えていくと、
常にカスタムフィールドが全てのページに対して引き継がれてしまうの
ですが、改善方法などはございますでしょうか?

早々のご返答ありがとうございます。

追加していく各ui_changer.tmplには全てのカスタムフィールドを記入しておいて、表示・非表示により全ての画面を制御していくのですね!

解決いたしました。

一度ほかの画面に切り替えてしまうと、リロードするまで通常のブログのエントリー画面の状態には戻らないようなので、「通常のブログを適用」などで、デフォルト状態にも切り替えれるようにするなどで、対応するとよさそうですね!

「ブログ記事の編集」画面でも、切り替えのボタンを非表示にするなどは可能でしょうか?

たびたびの質問すいません。

こんにちは。
MT4.261にて利用させていただいております。
2点機能についてお願いがございます。

1.記事編集画面に遷移したときデフォルトでUIはオフの状態だと思いますが、すでにカテゴリ選択した記事を作成していた場合には対象のUIをオンにして編集画面に遷移することは可能でしょうか?
また可能であれば「確認」ボタンでプレビューを表示後に戻った場合にも、選択カテゴリのUIがオン状態で遷移できるとうれしいです。

2.現在の仕様ではUIボタンからカテゴリのチェックをつけることは行えますが、逆にカテゴリのチェックによりUI表示をオンにすることは可能でしょうか?(現在UIボタンからの制御のみなのでカテゴリにチェックを入れてからUIボタンを押すとチェックが逆転します…)

以上2点についてご考慮いただけると幸いです。
宜しくお願いいたします。

ご返答ありがとうございます。
対応可能なようで非常にありがたいです。
プラグイン版、お待ちしております!

コメントする