Adiciona um item de menu ao Wordpress 3.5 Media Manager

34

Como pode adicionar um novo item de menu abaixo do "insert From URL" na barra lateral esquerda no novo Wordpress 3.5 Media Manager?

Eu estive olhando para o backbone js e tentei engatar a mão com meu próprio JS, mas sem sucesso.

Editar 2: Isso parece fazer o truque:

enlace

Isso deve ser feito para coisas simples, mas eu acho que também é possível fazer a mesma coisa em Javascript. Seria bom se houvesse um tutorial / explicação sobre como funcionam os recursos internos do novo gerenciador de mídia.

    
por erezie 22.12.2012 / 17:17
fonte

4 respostas

19

OK, acho que tenho algo que está perto de ser uma resposta:

Eu coloquei meu código em uma essência

Aqui está o resultado:

Eu criei vários objetos Backbone para respeitar o padrão MVC: o controller.Custom é responsável por fazer toda a lógica, o view.Toolbar.Custom lida com os botões da barra de ferramentas e o view.Custom exibe a interface interna.

    
por Fabien Quatravaux 17.01.2013 / 22:50
fonte
10

Estou trabalhando em adicionar um botão ao "menu do roteador" (adicionando algo à direita da "Biblioteca de mídia"), mas o sistema é o mesmo.

<script type="text/javascript">
    jQuery(window).on('load', function() {
        var media   = window.wp.media,  
        Attachment  = media.model.Attachment,
        Attachments = media.model.Attachments,
        Query       = media.model.Query,
        l10n = media.view.l10n = typeof _wpMediaViewsL10n === 'undefined' ? {} : _wpMediaViewsL10n,
        NewMenuItem;

        jQuery(document).on( 'click', '.insert-media', function( event ) {
            var workflow = wp.media.editor.get();
            var options = workflow.options;
            if( undefined == NewMenuItem ) {
                NewMenuItem = new wp.media.view.RouterItem( _.extend( options, { text: 'New Item!' } ) );
                workflow.menu.view.views.set( '.media-menu', NewMenuItem, _.extend( options, { add: true } ) );
            }

        });
    });
</script>

Agora, não faz nada ainda. Esse é o próximo passo!

    
por Joost 30.12.2012 / 23:57
fonte
7

Você pode conectar-se ao filtro media_upload_tabs para adicionar a guia. Este é o método usado pelo plug-in Mídia compartilhada em rede :

function wpse_76980_add_upload_tab( $tabs ) {
    $newtab = array( 'tab_slug' => 'Tab Name' );
    return array_merge( $tabs, $newtab );
}
add_filter( 'media_upload_tabs', 'wpse_76980_add_upload_tab' );

Você pode, então, conectar-se à ação media_upload_tab_slug (onde tab_slug é o usado acima) para exibir o conteúdo da guia:

function wpse_76980_media_upload() {
    // display tab contents
}
add_action( 'media_upload_tab_slug', 'wpse_76980_media_upload' );
    
por shea 26.12.2012 / 10:18
fonte
3

Eu não tenho uma solução, mas sugestões. As seqüências de caracteres obtêm de uma matriz. Você pode filtrar através do gancho media_view_strings . A caixa modal após o clique é um javascript, construído com o backbone.js desde o WP 3.5. Veja em /wp-includes/js/media-views.js para uma solução. O backbone também é novo para mim e os scripts têm muitas linhas de origem.

    
por bueltge 22.12.2012 / 20:15
fonte