Cụ thể của tôi làm thế nào để thu thập phản hồi từ đối tượng jQuery plUpload khi nó đã tải lên phương tiện mà bạn muốn và làm thế nào một người sẽ sử dụng cùng chức năng trong hộp meta để tạo thư viện?
Có một tệp cụ thể xử lý chức năng này : /wp-includes/js/plupload/handlers.dev.js
. Tệp này chứa tất cả các móc và trình kích hoạt liên kết Plupload (hệ thống đa tệp kéo / thả của bên thứ ba) với trình tải lên.
Có hai sự kiện bạn có thể muốn xem xét: "FileUploaded" và "Upload Complete"
Tập tin đã được tải lên
Hãy nhớ rằng, trình tải lên mới có khả năng tải lên nhiều tệp cùng một lúc. Vì vậy, nếu có điều gì đó bạn muốn làm sau khi mỗi tệp trong hàng đợi được tải lên, bạn sẽ sử dụng jQuery để liên kết với sự kiện này.
WordPress, ví dụ, liên kết như sau:
uploader.bind('FileUploaded', function(up, file, response) {
uploadSuccess(file, response.response);
});'
Các uploadSuccess
chức năng ở đây xử lý hình ảnh thu nhỏ, lấy về meta tập tin đính kèm từ máy chủ, và liên kết chỉnh sửa / xóa các nút cho các đối tượng đúng.
UploadComplete
Sự kiện UploadComplete sẽ kích hoạt sau khi mọi thứ trong hàng đợi được tải lên xong. Nếu bạn muốn thực hiện thao tác dọn dẹp chung sau khi toàn bộ quá trình tải xuống kết thúc, đây là điều bạn sẽ muốn liên kết.
WordPress, ví dụ, liên kết như sau:
uploader.bind('UploadComplete', function(up, files) {
uploadComplete();
});
Các uploadComplete
chức năng ở đây chỉ cho phép nút "Insert gallery" trên trang.
Không may ...
... dường như không có cách nào để chúng ta liên kết với những sự kiện này. Đối uploader
tượng tồn tại trong một bao đóng trong handlers.js
tệp và Plupload tự nó không có cách nào để tham chiếu các thể hiện hiện có. Bạn không thể sử dụng một bộ chọn jQuery đơn giản để đánh hơi nó và thêm một sự kiện tùy chỉnh ... vì vậy chúng tôi không gặp may ở đó.
Một mặt, bạn có thể sử dụng các sự kiện tùy chỉnh này theo ý muốn trong các hệ thống của riêng bạn. Chỉ cần quay phiên bản handlers.js
tệp của riêng bạn với các sự kiện của riêng bạn và bạn có thể làm bất cứ điều gì bạn muốn. Nhưng đối với trình tải lên hiện tại, bạn bị mắc kẹt với API hiện có.
Hãy nhớ rằng Pluploader mới gọi các phương thức tương tự vào cùng thời điểm với trình tải lên Flash cũ đã làm. Vì vậy, dự đoán tốt nhất của tôi là bất kỳ hack hoặc tích hợp nào bạn có nên tiếp tục hoạt động.
Kiểm tra giả định đó
Tôi có một plugin sử dụng trình tải lên hiện có để tải lên tệp đính kèm và hiển thị URL trong trường meta tùy chỉnh. Nó hoạt động như ma thuật với trình tải lên cũ, vì vậy tôi đã kích hoạt nó trong WP 3.3 để xem nó có hoạt động với trình tải lên mới không .
Và nó làm được!
Vì vậy, nếu bạn đã tích hợp với trình tải lên phương tiện, hệ thống của bạn vẫn sẽ hoạt động với hệ thống mới mà không có bất kỳ thay đổi nào.