Hola, hemos pensado en usar un editor de textos mejorado para insertar
mensajes en los foros, ya sabéis lo tÃpico: permitir negritas, modificar
estilos de fuente, etc. Nos hemos fijado en el TinyMCE, un editor HTML
de código abierto que funciona plenamente en Javascript. Aquà esta el
enlace por si a alguien le interesa: http://tinymce.moxiecode.com/
Comento un poco el proceso que hemos seguido:
Instalación–>script/plugin install git://github.com/kete/tiny_mce.git
Copiar archivos javascript–> rake tiny_mce:install
Copiar también el módulo de javascripts en Español →
Copiar uno a uno los archivos en español, dentro del
public/javascripts/tiny_mce
Digamos que hasta aqui puede darse por finalizado la parte de la
instalación.
Nos centramos ahora en la implementación:
Añadir tiny_mce a la plantilla de la aplicación:
<%= include_tiny_mce_if_needed %>
Meterlo en el controller:
uses_tiny_mce(:options => {:theme => ‘advanced’,
:browsers => %w{msie gecko},
:theme_advanced_toolbar_location => “top”,
:theme_advanced_toolbar_align => “left”,
:theme_advanced_resizing => true,
:theme_advanced_resize_horizontal => false,
:paste_auto_cleanup_on_paste => true,
:theme_advanced_buttons1 => %w{formatselect bold italic underline
strikethrough blockquote image separator separator fullscreen code},
:theme_advanced_buttons2 => [],
:theme_advanced_buttons3 => [],
:relative_urls => false,
:remove_script_host => false,
:language => :es,
:plugins => %w{contextmenu paste searchreplace fullscreen}},
:only => [:new, :create, :edit, :update])
Meterlo en la vista:
:tipo => ‘area’, :class => ‘mceEditor’
A partir de aquà ya podemos usar este editor.
El problema que tenemos es que en el foro tenemos implementado la
función de responder a un tema mediante Ajax y en estos casos el
mceEditor no se carga.
Os pongo como lo tenemos implementado en este caso:
En la vista enlazamos mediante Ajax al controlador especifico:
link_to_remote(“Contestar”, {:url => ruta_resp, :method => :get}, :href
=> ruta_resp)
En el controlador respondemos a la llamada de Ajax:
format.js do
render :update do |page|
page.replace_html “enlaces_#{@original.id}”, “”
if @yo.estado_id == Usuario::ESTADO_SIN_ACTIVAR
#en caso de que el usuario no haga click en el correo que
se le envia no podra responder
page.replace_html “reply_to_#{@original.id}”, :partial =>
“contenidos/no_has_validado_usr”
else
page.replace_html “reply_to_#{@original.id}”, :partial =>
“respuestas/new”, :locals => { :respuesta => @respuesta }
end
end
Donde respuestas/new es algo tal que asÃ:
<%= campo f, “texto_completo”, :tipo => “area”, :rows => 8, :cols => 79,
:class => ‘mceEditor’, :label_pos => “arriba” %>
Pues bien en este caso no se muestra el TinyMCE solamente aparece un
recuadro de texto vacÃo sin ningún tipo de opción para editar.
Si alguien ha utilizado este mismo editor y se ha visto en el mismo
dilema le agradecerÃa cualquier ayuda. Por otra parte si existe algún
otro editor que funcione perfectamente en Rails y no introduzca este
tipo de problemas os agradeceria mucho que me aportarais algo de
información para poder migrar.
Un saludo y gracias a to2.