W szczególności, jak zebrać odpowiedź z obiektu jQuery plUpload po przesłaniu żądanego nośnika i jak użyć tej samej funkcjonalności w meta boxie, aby utworzyć galerię?
Istnieje konkretny plik, który obsługuje tę funkcję: /wp-includes/js/plupload/handlers.dev.js
. Ten plik zawiera wszystkie zaczepki i wyzwalacze, które wiążą Plupload (system wielu plików do przeciągania / upuszczania) z przesyłającym.
Istnieją dwa zdarzenia, na które warto spojrzeć: „FileUploaded” i „Upload Complete”
Plik przesłany
Pamiętaj, że nowy przesyłający może przesyłać wiele plików jednocześnie. Więc jeśli chcesz coś zrobić po przesłaniu każdego pliku w kolejce, użyjesz jQuery do powiązania z tym zdarzeniem.
Na przykład WordPress wiąże następujące elementy:
uploader.bind('FileUploaded', function(up, file, response) {
uploadSuccess(file, response.response);
});'
Ta uploadSuccess
funkcja obsługuje miniatury obrazów, pobiera meta załącznika z serwera i wiąże przyciski edycji / usuwania z odpowiednim obiektem.
Wgrywanie zakończone
Zdarzenie UploadComplete zostanie uruchomione po zakończeniu przesyłania wszystkiego w kolejce. Jeśli chcesz uruchomić ogólną operację czyszczenia po zakończeniu pobierania, z tym chcesz się połączyć.
Na przykład WordPress wiąże następujące elementy:
uploader.bind('UploadComplete', function(up, files) {
uploadComplete();
});
Ta uploadComplete
funkcja po prostu włącza przycisk „Wstaw galerię” na stronie.
Niestety ...
... wydaje się, że nie ma sposobu, aby związać się z tymi wydarzeniami. uploader
Obiekt istnieje w zamknięciu w handlers.js
pliku, a sam Plupload nie ma sposobu, aby odwołać istniejących instancji. Nie możesz użyć prostego selektora jQuery do wykrycia go i dodania niestandardowego zdarzenia ... więc nie mamy szczęścia.
Z jednej strony możesz dowolnie wykorzystywać te niestandardowe zdarzenia we własnych systemach. Po prostu uruchom własną wersjęhandlers.js
pliku z własnymi wydarzeniami i możesz robić, co chcesz. Ale w przypadku istniejącego programu przesyłającego utkniesz z istniejącym interfejsem API.
Pamiętaj, że nowy Pluploader wywołuje te same metody w tym samym czasie, co stary uploader Flash. Więc przypuszczam, że wszelkie istniejące modyfikacje lub integracje, które posiadasz, powinny nadal działać.
Testowanie tego założenia
Mam wtyczkę, która korzysta z istniejącego programu do przesyłania plików, aby przesyłać załączniki i wyświetlać adres URL w niestandardowym polu meta. Działa jak magia ze starym programem do przesyłania, więc uruchomiłem go w WP 3.3, aby sprawdzić, czy działa również z nowym programem do przesyłania.
I robi to!
Jeśli więc już integrujesz się z programem do przesyłania multimediów, Twój system powinien nadal działać z nowym systemem bez żadnych zmian.