Movable Type ユーザーコミュニティの MTQ に「ブログ記事編集画面のカスタムフィールの項目をカスタマイズしたい。」という投稿を見つけました。藤本さんも MTAppjQuery プラグイン の出番だとおっしゃってるので、その方法を紹介します。 MTAppjQuery プラグインのインストールはこちらのページ(ちょっと古いです)をご覧ください。最新の情報はドキュメントも販売しております。...
Movable Type ユーザーコミュニティの MTQ に「ブログ記事編集画面のカスタムフィールの項目をカスタマイズしたい。」という投稿を見つけました。藤本さんも MTAppjQuery プラグイン の出番だとおっしゃってるので、その方法を紹介します。
MTAppjQuery プラグインのインストールはこちらのページ(ちょっと古いです)をご覧ください。最新の情報はドキュメントも販売しております。
ブログに、次の3つの1行テキストのカスタムフィールドがあります。
そして、次の2つの特定の記事で、表示するカスタムフィールドを変えます。
MTAppjQuery がインストールできたら、テンプレートの一覧画面の右側のウィジェットにある「user.jsとuser.cssをインストール」をクリックします。
すると、インデックステンプレートに user.js と user.css が作成されます。今回は user.css は利用しませんので削除してしまって構いません。
次に、user.js の編集画面を開き、以下の内容を書いて保存と再構築をします。
(function($){
if (mtappVars.entry_id == 72) {
$.MTAppCustomize({
basename: "cf01",
custom: true,
showField: "show"
});
$.MTAppCustomize({
basename: "cf02",
custom: true,
showField: "show"
});
$.MTAppCustomize({
basename: "cf03",
custom: true,
showField: "hide"
});
}
else if (mtappVars.entry_id == 73) {
$.MTAppCustomize({
basename: "cf01",
custom: true,
showField: "show"
});
$.MTAppCustomize({
basename: "cf02",
custom: true,
showField: "show"
});
$.MTAppCustomize({
basename: "cf03",
custom: true,
showField: "show"
});
}
})(jQuery);
少し解説します。
このようにすることで、記事のIDでカスタマイズを分岐することができます。ただし、一度記事を保存する必要があります。
MTAppCustomize メソッドに showField オプションを設定することで、表示・非表示を変えることができます。これは、「表示オプション」のチェックボックスよりも優先して適用されます。
MTAppCustomize() を使わずに、以下のようにシンプルに書くこともできます。ただし、要素のID等は、Firebug等で調べてください。
(function($){
if (mtappVars.entry_id == 72) {
$("#customfield_cf01-field").removeClass("hidden");
$("#customfield_cf02-field").removeClass("hidden");
$("#customfield_cf03-field").addClass("hidden");
}
else if (mtappVars.entry_id == 73) {
$("#customfield_cf01-field").removeClass("hidden");
$("#customfield_cf02-field").removeClass("hidden");
$("#customfield_cf03-field").removeClass("hidden");
}
})(jQuery);