web-dev-qa-db-fra.com

Fermez the selection of media dès que le téléchargement est terminé?

Je travaille sur un téléchargeur frontal utilisant les propres fonctions de téléchargement de média de WP. Tout va bien, sauf que je veux simplement simplifier certains éléments de l'interface utilisateur, tels que la suppression des onglets et des informations inutiles pour mes utilisateurs. Plus important encore, j'aimerais fermer comme par magie la Boîte d'envoi Thickbox une fois les téléchargements terminés et les fichiers compressés.

Je connais le point d'ancrage add_attachment et je l'utilise déjà pour effectuer certaines opérations de traitement d'ImageMagick, mais il se déclenche à chaque fois qu'un fichier est chargé, c'est donc un peu trop.

En cherchant dans le noyau, je suis arrivé à wp-includes/js/swfupload/handlers.dev.js et autour de la ligne 232, il y a ceci:

function uploadComplete(fileObj) {
    // If no more uploads queued, enable the submit button
    if ( swfu.getStats().files_queued == 0 ) {
        jQuery('#cancel-upload').prop('disabled', true);
        jQuery('#insert-gallery').prop('disabled', false);
    }
}

C’est précisément là que je veux accrocher afin que, au lieu d’activer le bouton de soumission, je déclenche simplement TB_close().

Cela peut-il être fait de quelque manière que ce soit?

2
moraleida

Cela a été résolu aussi simplement que:

  1. Accrochage d'un script .js personnalisé à la boîte à mémoire média-upload, afin qu'il s'exécute dans l'iFrame:

    function admin_styles_scripts_media_upload() {
        wp_register_script('mediajs', get_template_directory_uri().'/js/button.js', array('jquery'), true);
        wp_enqueue_script('mediajs');
    
    }
    add_action('admin_print_scripts-media-upload-popup','admin_styles_scripts_media_upload');
    ?>
    
  2. Utilisez le script pour remplacer le bouton Enregistrer par défaut par un bouton personnalisé et appelez self.parent.tb_remove à partir de celui-ci:

    jQuery(document).ready(function() {
    
        jQuery('<a href="#" id="back_to_admin" class="button">Voltar para Edição</a>').insertAfter('.ml-submit');   
        jQuery('.savebutton.ml-submit').detach();
        jQuery('a.toggle').live("remove");
    
        jQuery('#back_to_admin').live('click',function() {
    
            parent.uploadedImages();
            self.parent.tb_remove();
    
    });
    
    });
    
1
moraleida