Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/02/2015, 10:32
Avatar de TMeister
TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 22 años, 10 meses
Puntos: 193
Respuesta: Boton personalizado en TYNIMCE

Aqui te dejo mis pasos, compatibles con la ultima version de WP 4.1

Son 3 pasos

1.- Agregar el boton al menu, yo lo agrego a lado de boton de add media para mayor visibilidad



Código PHP:
Ver original
  1. function add_button(){
  2.  
  3.     echo '<a href="#" id="some-id" class="button">' . __('Button Text', 'textdomain') . '</a>';
  4.  
  5. }
  6. add_action( 'media_buttons', 'add_button' );

2.- Agregar el plugin correspondiente que es el que maneja toda la logica, es decir que se hara cuando se de click en el boton.

Código PHP:
Ver original
  1. function add_mce_plugin($plugins_array){
  2.     $plugins_array['impactfulplugin'] = plugin_dir_url( __FILE__ ) . 'js/file-mce-plugin.js';
  3.     return $plugins_array;
  4. }
  5. add_filter( 'mce_external_plugins', 'add_mce_plugin');

Finalmente el JS que controla toda la logica y que ejecuta el comando del TYNIMCE

Código Javascript:
Ver original
  1. (function($) {
  2.     /**********************************************************************
  3.     * SHORTCODE GENERATOR
  4.     **********************************************************************/
  5.     tinymce.PluginManager.add('impactfulplugin', function( ed ) {
  6.  
  7.         $('#some-id').on('click', function(event) {
  8.             //Muestra tu UI
  9.             //aka el creador del shortcode
  10.         });
  11.  
  12.         $('#button-impactful-insert').on('click', function(event) {
  13.             //este es el boton que crea el shorcode
  14.             event.preventDefault();
  15.             ed.execCommand('addImpactfulShortcode');
  16.             //Cerrar tu UI
  17.         });
  18.  
  19.         ed.addCommand('addImpactfulShortcode', function() {
  20.             var shortcode = "[shortcode_name]";
  21.             ed.execCommand('mceInsertContent', 0, shortcode);
  22.         });
  23.     });
  24. })( window.jQuery );