2011-05-04 7 views
6

siguiendo las instrucciones en: http://www.farinspace.com/multiple-wordpress-wysiwyg-visual-editors/jquery-ui ordenable en divs con editores TinyMCE hace que el texto desaparezca

Tengo algunos buenos editores WYSIWYG en mis Metaboxes

mi margen de beneficio se ve así:

<div class="sortable"> 
<div class="sortme"> 
<?php $mb->the_field('extra_content2'); ?> 
     <div class="customEditor"><textarea name="<?php $mb->the_name(); ?>"><?php echo wp_richedit_pre($mb->get_the_value()); ?></textarea></div> 
</div> 
<div class="sortme" 
<?php $mb->the_field('extra_content3'); ?> 
     <div class="customEditor"><textarea name="<?php $mb->the_name(); ?>"><?php echo wp_richedit_pre($mb->get_the_value()); ?></textarea></div> 
</div> 
</div> 

que es sólo WP_alchemy (también de farinspace.com) para un área de texto envuelto en un div

y el guión º en tinymce dice a surtir efecto:

function my_admin_print_footer_scripts() 
{ 
    ?><script type="text/javascript">/* <![CDATA[ */ 

     jQuery(function($) 
     { 
      var i=1; 
      $('.customEditor textarea').each(function(e) 
      { 
       var id = $(this).attr('id'); 

       if (!id) 
       { 
        id = 'customEditor-' + i++; 
        $(this).attr('id',id); 
       } 
       tinyMCE.execCommand('mceAddControl', false, id); 

      }); 
     }); 
    /* ]]> */</script><?php 
} 

// important: note the priority of 99, the js needs to be placed after tinymce loads 
add_action('admin_print_footer_scripts','my_admin_print_footer_scripts',99); 

esa parte funciona bien. pero cuando intento para poner en jQueryUI sortable:

$('.sortable').sortable(); 

me permite ordenar las varias Div .sortme, pero el contenido de los editores desaparece. ¿Cómo puedo hacer que el texto persista? funciona muy bien sin los editores de tinymce, así que supongo que es un conflicto con eso de alguna manera.

+0

Parece ser duplicado de http://stackoverflow.com/questions/3919928/tinymce -instances-in-jquery-sortable –

Respuesta

10

Esto ($('.sortable').sortable();) no funcionará con los editores de tinymce. A Tinymce no le gusta ser arrastrado por el dom. Con el fin de hacer que se trabaje primera necesidad de apagar tinymce

tinyMCE.execCommand('mceRemoveControl', false, id); 

continuación, ordenar y luego reiniciar

tinyMCE.execCommand('mceAddControl', false, id); 
+0

así que busqué en los eventos ordenables y hay eventos de inicio y finalización. así que al principio me mceRemoveControl y al final me mceAddControl. parece funcionar. ¡Gracias! – helgatheviking

+0

ese es el camino a seguir, * aprobado * – Thariama

+0

gracias por esta respuesta! – hasentopf

Cuestiones relacionadas