私は現在、backbone.jsを使用してモーダルウィンドウを作成および設定する新しいWordPress3.5メディアマネージャーを利用しようとしています。
私がやりたいのは、ユーザーがアップロードボタンをクリックし、メディアマネージャーがポップアップし、ユーザーが画像を選択し、挿入を押して、画像がカスタムフィールドに保存されることです。
これらはすべてすでに機能しています。変更したいのは、メディアアップローダーのサイドバー(ユーザーがキャプション、タイトル、サイズの選択などを追加できる)に独自のテンプレートを入力することだけです。
バックボーンの操作方法に関するチュートリアルをすでに数十回読んでいますが、今は少し行き詰まっています。これが私のこれまでのコードの一部です:
//defined earlier:
var frame;
//on click:
if ( file_frame )
{
file_frame.open();
return;
}
else
{
// Create the media frame.
file_frame = wp.media(
{
frame: 'select',
state: 'mystate',
library: {type: 'image'},
multiple: false
});
file_frame.states.add([
new media.controller.Library({
id: 'mystate',
title: 'my title',
priority: 20,
toolbar: 'select',
filterable: 'uploaded',
library: media.query( file_frame.options.library ),
multiple: file_frame.options.multiple ? 'reset' : false,
editable: true,
displayUserSettings: false,
displaySettings: true,
allowLocalEdits: true,
//AttachmentView: ?
}),
]);
file_frame.open();
}
また、次のように自分のテンプレートを登録してみました。
media.view.Attachment.mySidebar = media.view.Settings.AttachmentDisplay.extend(
{
className: 'attachment-display-settings',
template: media.template('avia-choose-size')
});
しかし、問題は次のとおりです。元のサイドバーではなく、このテンプレートのみをロードするのかどうかはわかりません。サイドバーだけでなくテンプレート全体を置き換えるため、AttachmentViewパラメーターとして渡すことは明らかに機能しません。
助けてくれるbackbone.jsの経験を持っている人はいますか?