Prefiero escribir los contenidos directamente, sin un editor visual, para tener todo el control sobre el código XHTML. Pero, hace poco, al preparar un sitio para otra persona tuve que ponérselo lo más fácil posible, de modo que probé todos los editores disponibles para CMSMS, que son unos cuantos, para elegir el más adecuado. Descarté los que permitían hacer cualquier barbaridad con el código sin respetar la norma XHTML. También descarté los que no permitían personalizar las barras de herramientas, lo cual es imprescindible para quitar tentadores botoncitos inútiles que ponen el texto grande y de colorines, así como evitar que se usen etiquetas semánticas para funciones que no les corresponden (como la popular aberración de usar blockquote para sangrar párrafos en lugar de para lo que es: para mostrar citas en forma de bloque).
Tras varias pruebas me quedé con el TinyMCE que viene por defecto con CMSMS. Tantas vueltas para volver al principio... pero había que asegurarse de que no hubiera una alternativa mejor. Sólo FCKeditor fue una posible alternativa, pero al final TinyMCE ganó la competición.
Sin embargo encontré dos pegas importantes en TinyMCE:
La primera es que quita los caracteres de final de párrafo del texto, con lo cual cuando alguna vez desactivo el editor para retocar a mano el XHTML me encuentro una sopa de letras (todo el texto en una sola línea) en la que es difícil orientarse. Aún no he investigado cómo evitar esto (con un parche en el código, supongo, pues no tiene ninguna opción para ello.
La segunda pega es que para alinear las imágenes TinyMCE usa el atributo align, obsoleto en XHTML, en lugar de aplicar una clase con class y dejar que la hoja de estilo haga el resto, que no sólo es lo correcto sino lo más eficaz y versátil. Busqué en todas partes por la Red y sólo encontré mensajes de gente que se quejaba de lo mismo, desde hace años, especialmente en los foros del sitio oficial de TinyMCE. Parece que el autor del programa prefiere hacer así la alineación de las imágenes para evitar posibles problemas causados por el estilo float. Como no encontré la solución, me puse a hacerla. Aunque nunca he programado en JavaScript no me fue difícil encontrar las líneas de código a las que había que cambiarles un "tornillo".
El fichero que hay que modificar es modules/TinyMCE/tinymce/jscripts/tiny_mce/plugins/advimage/jscripts/functions.js. El problema por tanto parece que está en el accesorio que facilita la incorporación de las imágenes al contenido usando un formulario.
Hay que tocar dos líneas. La 316:
Code: Select all
// setAttrib(elm, 'align', getSelectValue(formObj, 'align')); // línea original
setAttrib(elm, 'class', getSelectValue(formObj, 'align')); // línea modificada
Code: Select all
// html += makeAttrib('align', getSelectValue(formObj, 'align')); // línea original
html += makeAttrib('class', getSelectValue(formObj, 'align')); // línea modificada
Tras varias pruebas al final descubrí que para que el parche empiece a funcionar por primera vez hay que borrar la caché de CMSMS (en el menú Sitio/Configuración general) y/o la del navegador (en Firefox: menú Herramientas/Limpiar información privada; en Opera: menú Herramientas/Eliminar información personal; en ELinks: menú Tools/Cache). Ante la duda borro ambas y asunto terminado.