home > Movable Type > Movable Type の記事投稿画面...
Movable Type の記事投稿画面の UI をカテゴリごとに変えるカスタマイズをカスタムフィールドにも適用させる
- 2009年2月26日 08:36
- Movable Type
なんてタイトルの長い記事なんでしょう。。。
さて、以前「Movable Type の記事投稿画面の UI をカテゴリごとに変えるカスタマイズ ( jQuery 版)」という方法を紹介しました。
その記事に「あとカスタムフィールドを使いたいのですが可能でしょうか?」というコメントを頂いたので、このカスタマイズをカスタムフィールドに適用する方法を紹介します。
ダウンロードと基本的な使い方
ダウンロードや基本的な使い方は、以下の記事を参照してください。
カスタムフィールドにも適用させる方法(カスタマイズ編)
この UI チェンジャーは、ui_changer.tmpl をカスタマイズすることで、カスタムフィールドにも適用することができます。
まず、カスタムフィールドの設定画面で、UI チェンジャーを適用させたいカスタムフィールドの「ベースネーム」を確認します。ここでは例として「publicdate」となっています。

次に、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です。
以上です。
TrackBack [0]
- TrackBack URL
- Link to this Entry



こんばんわ。
先日UIChangerについてコメントさせて頂いたものです。
返事が遅くなりましてごめんなさい。
新規エントリーまでしていただいて詳しく解説して頂いて大変感謝致しております。
しかし、やっぱり設定がうまく出来ませんでした。。。。
時間の都合で設置をあきらめてしまったんですが
また機会がありましたら利用させて下さい!
ありがとうございました。
Jackass さん、コメントありがとうございます。
そうですか、お役に立てずにすみませんでした。ご丁寧にありがとうございます。今後、時間があるときにもう少し改良してみます。
こんにちは。kazyと申します。
UIChangerがかなり便利そうなので
使わせて頂こうと思っているのですが、
インストールしたところカスタムフィールドが表示されなくなってしまいました。
「表示オプション」にも表示されなくなってしまいます。
もしかすると「edit_entry.tmpl」にもなにか修正する必要ありますでしょうか。
もしよければご回答お願いします
すみません。
上記に書いた現象ですが、問題解決しました。
自分は MT4.25 を使用しているのですが、
どうやら MT4.23 から MT4.25 にかけて
edit_entry.tmpl のカスタムフィールドの部分が
大幅に改編されたようです。
MT4.25 の edit_entry.tmpl と UIChanger の edit_entry.tmpl を
うまくマージさせたら動きました。
どうもお騒がせしました。
kazy さん、コメントありがとうございます。
解決できて良かったです。
はじめまして。
UIChangerすばらしくて驚いています。
とても便利で感動しました。。
ひとつ質問があるのですが、
こちらMT4.261で使用しておりまが
カスタムフィールドを用いて複数のUI画面を作るところまで
完了したのですが、適用ボタンを押して各画面を切り替えていくと、
常にカスタムフィールドが全てのページに対して引き継がれてしまうの
ですが、改善方法などはございますでしょうか?
NOOZY さん、コメントありがとうございます。
カスタムフィールドを表示させたくないUIの設定で、そのカスタムフィールドを非表示にするようになっていますでしょうか?
// .addClass('hidden') /* 非表示 */
この行頭のコメントを削除して、
.addClass('hidden') /* 非表示 */
のようにします。ご確認ください。
早々のご返答ありがとうございます。
追加していく各ui_changer.tmplには全てのカスタムフィールドを記入しておいて、表示・非表示により全ての画面を制御していくのですね!
解決いたしました。
一度ほかの画面に切り替えてしまうと、リロードするまで通常のブログのエントリー画面の状態には戻らないようなので、「通常のブログを適用」などで、デフォルト状態にも切り替えれるようにするなどで、対応するとよさそうですね!
「ブログ記事の編集」画面でも、切り替えのボタンを非表示にするなどは可能でしょうか?
たびたびの質問すいません。
NOOZY さん、解決されたようで良かったです。
確かにリロードしないとデフォルトの管理画面に戻らないのは不便ですね。
また、現時点では「ブログ記事の編集」画面では切り替え表示を非表示にすることは出来ません。
なぜなら、「新規投稿」も「編集」も、どちらも同じ管理画面用のテンプレートを使うからです。
上記のデフォルトに戻るボタンや、このカスタマイズ自体をプラグイン化できるかやってみます。
少々お時間をください。(できなかったらごめんなさい)
よろしくお願いいたします。
こんにちは。
MT4.261にて利用させていただいております。
2点機能についてお願いがございます。
1.記事編集画面に遷移したときデフォルトでUIはオフの状態だと思いますが、すでにカテゴリ選択した記事を作成していた場合には対象のUIをオンにして編集画面に遷移することは可能でしょうか?
また可能であれば「確認」ボタンでプレビューを表示後に戻った場合にも、選択カテゴリのUIがオン状態で遷移できるとうれしいです。
2.現在の仕様ではUIボタンからカテゴリのチェックをつけることは行えますが、逆にカテゴリのチェックによりUI表示をオンにすることは可能でしょうか?(現在UIボタンからの制御のみなのでカテゴリにチェックを入れてからUIボタンを押すとチェックが逆転します…)
以上2点についてご考慮いただけると幸いです。
宜しくお願いいたします。
reef さん、コメントありがとうございます。
1、2 について、どちらもカテゴリ選択のチェックボックスからUIを変更できるようにすれば可能です。
その機能については、最初から導入しようと思ったのですが、カテゴリのチェックボックス部分のJavaScriptとのからみで少し苦戦しまして、導入を見送ったという経緯があります。
これについては、当カスタマイズをMTのプラグイン化することと併せて実現してみたいと思います。
すぐに取りかかることはできそうにありませんが、近いうちに実現させたいと思います。
ご返答ありがとうございます。
対応可能なようで非常にありがたいです。
プラグイン版、お待ちしております!