MTAppjQueryを使ってMTEntriesが使えるドロップダウンリストのカスタムフィールドを疑似的に作る
目次
Movable Type ユーザーコミュニティの MTQ に「カスタムフィールド作成(編集)画面のMTタグ使用について」という投稿を見つけました。
MTAppjQuery プラグインを利用すれば疑似的に実現することができるので、その方法を紹介します。
MTAppjQuery プラグインのインストールはこちらのページ(ちょっと古いです(>_<))をご覧ください。最新の情報はドキュメントも販売しております。
さて、本題です。
今回の内容を実現するためには、1行テキストのカスタムフィールドを作成し、それを MTAppjQuery の「MTAppMultiForm」というメソッドを使って実現します。
カスタムフィールドの作成
今回は、「entrydropdown」というベースネームの1行テキストフィールドを作成しました。
user.js の作成
MTAppjQuery がインストールできたら、テンプレートの一覧画面の右側のウィジェットにある「user.jsとuser.cssをインストール」をクリックします。
すると、インデックステンプレートに user.js と user.css が作成されます。今回は user.css は利用しませんので削除してしまって構いません。
次に、user.js の編集画面を開き、以下の内容を書いて保存します。
(function($){
'(ID:)',
$('#customfield_entrydropdown').MTAppMultiForm({
type: 'select',
items: []
});
})(jQuery); 少し解説します。
$(foo).MTAppMultiForm()
MTAppMultiForm() を使うと、テキストフォームをチェックボックス、ラジオボタン、ドロップダウンリスト、複数選択セレクトボックスに変更できます。type、items 等のオプションを指定して利用します。
MTEntries で取り出した値を渡す
変数 entrydropdown_item に、MTEntries で取り出した値を入れます。その値を、MTAppMultiForm の items オプションに渡します。渡すときに、compress="3" のモディファイを付けて、余分な改行や余白を取り払います(compress モディファイアは MTAppjQuery の機能です)。
デモ