sebfck
  • 0
Новичок

Как добавить несколько кнопок в TinyMCE?

  • 0

Я следовал руководству Nettuts о том, как добавить пользовательскую кнопку в TinyMCE ( http://net.tutsplus.com/tutorials/wordpress/wordpress-shortcodes-the-right-way/ ).

Он отлично работает и все такое, но я хочу добавить много кнопок, и мне интересно, есть ли умный способ сделать это без необходимости дублировать весь код снова и снова.

Вот код, который я использую для добавления кнопки:

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

И затем я создаю файл customcodes.js с этим кодом в:

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

Итак, еще раз, как я могу добавить несколько кнопок, не выполняя весь этот код для каждой новой кнопки?

Спасибо 🙂 Себастьян

Share
  1. Сначала добавьте дополнительные кнопки внутри обратного вызова кнопок.

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

    Затем добавьте дополнительные функции кнопок внутри 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!' ); 
                }  
            });  
        },
    

    И так далее, для любых дополнительных кнопок, которые вы хотите.

    • 0

Оставить ответ

You must login to add an answer.