Мені конкретно, як зібрати відповідь з об’єкта plUpload jQuery, коли він завантажив потрібний вам медіа та як користувач міг би використовувати ту саму функціональність у мета-вікні для створення галереї?
Там є спеціальний файл , який обробляє цю функціональність: /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. Тому я найкраще здогадуюсь, що будь-які наявні у вас хаки чи інтеграції повинні продовжувати працювати.
Тестування цього припущення
У мене є плагін, який використовує наявний завантажувач для завантаження вкладених файлів та відображення URL-адреси у спеціальному метаполі. Він працював як магія зі старим завантажувачем, тому я запустив його в WP 3.3, щоб побачити, чи працює він і з новим завантажувачем.
І це робить!
Тож якщо ви вже інтегруєтесь із завантажувачем медіа, ваша система все одно повинна працювати з новою системою без будь-яких змін.