Закройте толстый ящик для загрузки мультимедиа сразу после завершения загрузки?


Я работаю над загрузчиком переднего плана, используя собственные функции загрузки мультимедиа WP. Все хорошо, за исключением того, что я просто хочу упростить некоторые вещи пользовательского интерфейса, такие как удаление вкладок и ненужной информации для моих пользователей. Самое главное, я хотел бы волшебным образом закрыть окно загрузки, как только загрузка будет завершена и файлы будут сжаты.

Я знаю о крючке add_attachment, и я уже использую его для некоторой обработки ImageMagick, но он срабатывает каждый раз при загрузке файла, поэтому это как-то чересчур.

Пробравшись через ядро, я добрался до wp-includes/js/swfupload/handlers.dev.js а в строке 232 есть вот что:

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);
    }
}

Это именно то место, где я хочу зацепиться, чтобы вместо включения кнопки отправки я просто выстрелил TB_close().

Можно ли это сделать каким-либо образом?

Author: moraleida, 2012-09-02

1 answers

Это было решено так же просто, как:

  1. Подключение пользовательского сценария .js к толстому ящику для загрузки мультимедиа, чтобы он запускался внутри 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. Используйте скрипт, чтобы заменить кнопку сохранения по умолчанию пользовательской, и вызовите self.parent.tb_remove из нее:

    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
Author: moraleida, 2012-09-28 16:03:16