Comment collecter une réponse à partir de l’objet plUpload jQuery une fois qu’il a téléchargé le média souhaité et comment utiliser les mêmes fonctionnalités dans une méta-boîte pour créer une galerie?
Il y a un fichier spécifique qui gère cette fonctionnalité: /wp-includes/js/plupload/handlers.dev.js
. Ce fichier contient tous les points d'ancrage et les déclencheurs qui relient Plupload (le système de fichiers multiples glissé-déposé tiers) au programme de téléchargement.
Il y a deux événements que vous voudrez peut-être regarder: "FileUploaded" et "Upload Complete"
Fichier téléchargé
Rappelez-vous que le nouveau téléchargeur est capable de télécharger plusieurs fichiers à la fois. Ainsi, si vous souhaitez effectuer une opération après le téléchargement de chaque fichier de la file d'attente, vous utiliserez jQuery pour établir une liaison avec cet événement.
WordPress, par exemple, lie les éléments suivants:
uploader.bind('FileUploaded', function(up, file, response) {
uploadSuccess(file, response.response);
});'
La uploadSuccess
fonction ici gère les vignettes d’image, récupère les méta de pièces jointes du serveur et lie les boutons de modification / suppression au bon objet.
Téléchargement complet
L'événement UploadComplete se déclenchera après tout le de la file d'attente est terminé. Si vous souhaitez déclencher une opération de nettoyage général une fois le téléchargement terminé, vous devez vous y reporter.
WordPress, par exemple, lie les éléments suivants:
uploader.bind('UploadComplete', function(up, files) {
uploadComplete();
});
La uploadComplete
fonction active ici simplement le bouton "Insérer une galerie" sur la page.
Malheureusement ...
... il ne semble pas y avoir de moyen pour nous de nous lier à ces événements. L' uploader
objet existe dans une fermeture du handlers.js
fichier et Plupload lui-même ne dispose pas d'un moyen de référencer des instances existantes. Vous ne pouvez pas utiliser un simple sélecteur jQuery pour le détecter et ajouter un événement personnalisé ... pour ne pas avoir de chance là-bas.
D'une part, vous pouvez utiliser ces événements personnalisés à volonté dans vos propres systèmes. Il suffit de lancer votre propre version duhandlers.js
fichier avec vos propres événements et vous pouvez faire ce que vous voulez. Mais pour le programme de téléchargement existant, vous êtes coincé avec l'API existante.
N'oubliez pas que le nouveau Pluploader appelle les mêmes méthodes au même moment que l'ancien téléchargeur Flash. Donc, ma meilleure hypothèse est que toutes les intégrations ou intégrations existantes que vous avez devraient continuer à fonctionner.
Tester cette hypothèse
J'ai un plugin qui utilise le programme de téléchargement existant pour télécharger des pièces jointes et afficher l'URL dans un champ méta personnalisé. Cela fonctionnait comme par magie avec l'ancien téléchargeur. Je l'ai donc lancé dans le WP 3.3 pour voir si cela fonctionnait également avec le nouvel importateur.
Et ça le fait!
Par conséquent, si vous intégrez déjà le programme de téléchargement de média, votre système doit toujours fonctionner avec le nouveau système sans aucune modification.