shortcode – ¿Cómo agregar varios botones a TinyMCE?

Pregunta:

Seguí un tutorial sobre Nettuts sobre cómo agregar un botón personalizado a TinyMCE ( http://net.tutsplus.com/tutorials/wordpress/wordpress-shortcodes-the-right-way/ )

Funciona muy bien y todo, pero quiero agregar muchos botones y me pregunto si hay una manera inteligente de hacerlo sin tener que duplicar todo el código una y otra vez.

Aquí está el código que uso para agregar un botón:

add_shortcode("quote", "quote");  
function quote( $atts, $content = null ) {  
    return '<div class="right text">"'.$content.'"</div>';  
}

add_action('init', 'add_button');  
function add_button() {  
   if ( current_user_can('edit_posts') &&  current_user_can('edit_pages') )  
   {  
     add_filter('mce_external_plugins', 'add_plugin');  
     add_filter('mce_buttons_3', 'register_button');  
   }  
}  
function register_button($buttons) {  
   array_push($buttons, "quote");  
   return $buttons;  
}  
function add_plugin($plugin_array) {  
   $plugin_array['quote'] = get_bloginfo('template_url').'/js/customcodes.js';  
   return $plugin_array;  
}

Y luego creo un archivo customcodes.js con este código en:

(function() {  
    tinymce.create('tinymce.plugins.quote', {  
        init : function(ed, url) {  
            ed.addButton('quote', {  
                title : 'Add a Quote',  
                image : url+'/image.png',  
                onclick : function() {  
                     ed.selection.setContent('[quote]' + ed.selection.getContent() + '[/quote]');  

                }  
            });  
        },  
        createControl : function(n, cm) {  
            return null;  
        },  
    });  
    tinymce.PluginManager.add('quote', tinymce.plugins.quote);  
})();

Entonces, nuevamente, ¿cómo puedo agregar varios botones sin tener que hacer todo este código para cada botón nuevo?

Gracias 🙂 Sebastian

Respuesta:

Primero agregue sus botones adicionales dentro de los botones de devolución de llamada.

function register_button($buttons) {  
   array_push($buttons, "quote","wpse-rules");  
   return $buttons;  
}

Luego agregue la función de botones adicionales dentro del complemento javascript.

    init : function(ed, url) {  
        ed.addButton('quote', {  
            title : 'Add a Quote',  
            image : url+'/image.png',  
            onclick : function() {  
                 ed.selection.setContent('[quote]' + ed.selection.getContent() + '[/quote]');  
            }  
        });
        ed.addButton('wpse-rules', {  
            title : 'WPSE Rules',  
            image : url+'/image.png',  
            onclick : function() {  
                 alert( 'WPSE Rules!' ); 
            }  
        });  
    },

Y así sucesivamente, para cualquier botón adicional que desee …

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım