В частности, как получить ответ от объекта jQuery plUpload после того, как он загрузил требуемый носитель, и как можно использовать те же функции в мета-поле для создания галереи?
Там есть специальный файл , который обрабатывает эту функциональность: /wp-includes/js/plupload/handlers.dev.js
. Этот файл содержит все хуки и триггеры, которые связывают Plupload (сторонняя мультифайловая система перетаскивания) с загрузчиком.
Есть два события, которые вы можете посмотреть: «FileUploaded» и «Upload Complete»
FileUploaded
Помните, новый загрузчик способен загружать несколько файлов одновременно. Поэтому, если вы хотите что-то сделать после загрузки каждого файла в очереди, вы будете использовать jQuery для привязки к этому событию.
WordPress, например, связывает следующее:
uploader.bind('FileUploaded', function(up, file, response) {
uploadSuccess(file, response.response);
});'
Здесь uploadSuccess
функция обрабатывает миниатюры изображений, извлекает мета вложения с сервера и привязывает кнопки редактирования / удаления к нужному объекту.
UploadComplete
Событие UploadComplete сработает после завершения загрузки всего в очереди. Если вы хотите запустить обычную операцию очистки после завершения всей загрузки, это то, что вы хотите связать.
WordPress, например, связывает следующее:
uploader.bind('UploadComplete', function(up, files) {
uploadComplete();
});
uploadComplete
Функция здесь только позволяет кнопку «Вставить галерею» на этой странице.
К несчастью ...
... кажется, у нас нет возможности связываться с этими событиями. uploader
Объект существует в замыкании в handlers.js
файле, а сам Plupload не есть способ ссылаться на существующие экземпляры. Вы не можете использовать простой селектор jQuery, чтобы прослушать его и добавить пользовательское событие ... так что нам не повезло.
С одной стороны, вы можете использовать эти пользовательские события по своему усмотрению в ваших собственных системах. Просто раскрутите свою версию handlers.js
файла с вашими собственными событиями, и вы сможете делать все, что захотите. Но для существующего загрузчика вы застряли с существующим API.
Помните, что новый Pluploader вызывает те же методы, что и старый Flash Uploader. Поэтому я думаю, что любые существующие у вас хаки или интеграции должны продолжать работать.
Проверка этого предположения
У меня есть плагин, который использует существующий загрузчик для загрузки файловых вложений и отображения URL-адреса в пользовательском метаполе. Он работал как по волшебству со старым загрузчиком, поэтому я запустил его в WP 3.3, чтобы посмотреть, работает ли он и с новым загрузчиком.
И это делает!
Так что, если вы уже интегрируют с медиа - пользователя, система должна по- прежнему работать с новой системой без каких - либо изменений.