tinymce is not defined | problema configurando acceso con .htaccess
¿Os ha dejado de funcionar el editor de WordPress en su modo visual?
Supongo que hay muchas situaciones que pueden provocar esta situación. Yo al menos he leído unas cuantas. Por ejemplo, aquí se trata algo parecido:
Lost my text formatting tools.
Visual Editor/TinyMCE problems
Os intentaré contar como me he encontrado con este problema y como lo solucioné.
Lo cierto es que estas cosas no ocurren porque sí.
En mi caso, trataba de mejorar la seguridad de un servidor Apache en el cual había creado un portal Web con WordPress, siguiendo las recomendaciones que he encontrado en otros artículos (como por ejemplo en esta artículo de anieto2k sobre Las páginas blancas de la seguridad en WordPress).
Concretamente el problema se produjo al incluir en el directorio «wp-includes» de la instalación de wordpress, un archivo .htaccess con el siguiente contenido:
Order Deny,Allow
Deny from all
<Files ~ ".(css|jpe?g|png|gif|js|ico)$">
Allow from all
</Files>
Con estas líneas, lo que trato es de prohibir el acceso a cualquier fichero que no sea una imagen, una hoja de estilo o un archivo de javascript.
A partir de ese momento el editor visual de wordpress dejó de responder (en otras palabras, no podía acceder a la pestaña visual del editor). Utilizando la «Consola de errores» de Mozilla Firefox pude comprobar que se estaba generando un error de javascript con el mensaje «tinymce is not defined«, y en el archivo que guarda los log de error en el servidor, se estaba produciendo un error de tipo «client denied by server configuration» en el acceso a dos archivos: wp-tinymce.php y editimage.html
La solución fue modificar el archivo .htaccess como sigue:
Order Deny,Allow
Deny from all
<Files ~ ".(css|jpe?g|png|gif|js|ico)$">
Allow from all
</Files>
<Files wp-tinymce.php>
Allow from all
</Files>
<Files editimage.html>
Allow from all
</Files
Con las modificaciones estoy permitiendo el acceso «desde el exterior» a los archivos wp-tinymce.php (en el directorio wp-includes/js/tinymce/) y editimage.html (en el directorio wp-includes/js/tinymce/plugins/wpeditimage/).
No he tenido tiempo de comprobar la razón del error, pero intuyo que desde el entorno de edición de wordpress se trata de lanzar una llamada de tipo AJAX al archivo wp-tinymce.php, que interviene en el funcionamiento de la barra de herramientas del editor. Respecto al archivo editimage.html creo que el error se ha producido al intentar utilizar el editor de imágenes de WordPress, por lo que supongo que tiene que ver el lanzamiento del interfaz de usuario de dicho editor (al intentar abrir la ventana que permite editar las imágenes desde el entorno de edición de wordpress).
Dejo una pregunta en el aire, si alguien se anima a participar. ¿Qué implicaciones en la seguridad tiene permitir el acceso a estos archivos? ¡Estoy en ello!
Muchas gracias Pablo por este post, me ha venido de perlas por que me pasaba lo mismo.
Yo llegué a este punto a través del plugin All in one wordpress security, que en algunas de sus configuraciones nos permitelimitar el acceso a archicos de carpetas de la instalación de wordpress, entre ellas wp-includes y crea un htaccess similar al tuyo pero aún más estricto. Deny from all a todo y buena suerte! jeje
He modificado ese htaccess copiando el tuyo y todo solucionado! 🙂