CKEditor borra las etiquetas

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
rodalape's picture

Hola a todos. Tengo un problema con CKEditor, que aún no he podido resolver. Cuando inserto etiquetas "div id" o "div class" en el contenido en formato FULL HTML, al guardar, se borran los nombres de las etiquetas y queda solo "div". Ya verifiqué los perfiles de FULL y los filtros activos para este perfil y no logro dar con la solución. A ver si a alguien le ha sucedido lo mismo o sabe la respuesta, le agradecería mucho. Saludos.

Comments

Pregunta

gerzenstl's picture

Por "filtros activos" te referís a "input filters" (Drupal 6) o "text formats" (Drupal 7)?

Si no checkeaste en esa opción, es un buen lugar para comenzar a revisar.

Otra cosa a revisar, es si sucede solo en con campos de un determinado content type o sucede en todo el sitio.

El input filter/text filter de Drupal suele andar bien pero a veces es algo limitado, en esos casos se suele usar el modulo "WYSIWYG Filter".

Hola gerzenstl, gracias por

rodalape's picture

Hola gerzenstl, gracias por tu respuesta. El problema se da en todo tipo de contenido. Ya revise los formatos de texto y los filtros y sigo sin hallar la solución. Es el segundo sitio que tengo en Drupal en diferentes servidores y el problema se da en los 2. Qué raro que a nadie más le haya pasado. Seguiré trasteando. Gracias y saludos.

Debuggear

gerzenstl's picture

En ese caso, debuggea que termina saliendo desde las variables de las templates, tambien podes usa un hook_preprocess_node en el template.php para ver eso mismo.

De esa forma sabes si la variable ya viene sin los atributos (porque seguramente hay alguna implementacion con hooks que los modifica) o bien, ves que los atributos aparecen pero hay algun Js script que los está eliminando.

En Ckeditor 4

isimgt's picture

No comentas en que version de Ckeditor te pasa, pero supongo que es en la versión 4, debes de ir a la configuración de Ckeditor /admin/config/content/ckeditor/edit/Full y hasta abajo encontraras una opción llamada "Custom JavaScript configuration" ahi debes de colocar lo siguiente

config.allowedContent = true;

Espero te funcione

saludos,

Tengo el mismo problema pero en Drupal 8

cataq2's picture

Hola! Tengo el mismo problema de que el ckeditor me borra las etiquetas y además no me guarda el contenido. La solución que plantean funciona para versiones anteriores de Drupal pero no para Drupal 8.

Alguien me puede guiar, sobre cómo solucionar el problema? Gracias!!!

Mil gracias, Luis!

rodalape's picture

Mil gracias Luis por tu respuesta. Me funcionó tu solución. Hacía tiempo que no podía poner etiquetas personalizadas en el contenido y ahora, haciendo las pruebas, todo se mantiene luego de guardar. Te agradezco mucho a ti y a gerzenstl por la dedicación en responder. Un abrazo a todos!

Tengo el mismo problema pero en Drupal 8

cataq2's picture

Hola! Estoy con mi primera página en Drupal 8, ya había usado Drupal 7. En este caso, cuando creo contenido (página o Bloque) con etiquetas html y php, al guardar el contenido, se borra todo, es decir no guarda nada. El problema se da en todo tipo de contenido. Ya revise los formatos de texto y los filtros y sigo sin hallar la solución. Te agradezco mucho si me puedes colaborar.

Soluciones

vacho's picture
  1. Para usar php embebido en tus bloques o páginas tienes que instalar el módulo phpfilter este ya no viene en el core https://www.drupal.org/project/php

  2. Ckeditor hast drupal 8.0.x si borra muchas etiquetas cuando estan incompletas y/o vacias.
    Ejemplo:

    <i></i> Esto te lo va borrar
    <span></span> Esto te lo va borrar
    Solución: colocar el html de vacio en el medio:  &nbsp;

Es posible que en drupal 8.1.x esto se haya solucionado porque lei que hay mejoras para ckeditor pero lo dudo.

Gracias por tu respuesta pero no es la solución

cataq2's picture

Hola!!! muchas gracias por tu respuesta, pero te cuento con un ejemplo lo que me sucede. Ya tenía instalado el módulo PHP, pero algo tan sencillo como un formulario con una entrada de texto y un boton.

<html><form action="">
  First name:<input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br>
<input type="submit">
</form>
</html>

Sin importar si lo hago en full html o php filter, cuando le doy guardar se sale del nodo y carga la página principal sin haber guardado ningún cambio. En drupal 7 encontré que es suficiente colocar config.allowedContent = true; en la configuración del javascript pero en Drupal 8 no encuentro dicha configuración. Te agradezco mucho tu ayuda!!!!

Ya actualice la versión de Drupal, pero todo sigue igual....

quiza..

vacho's picture

quita las etiquetas html... no tienen nada que hacer alli porque cada pagina de drupal ya las pone arriba.

tambien pon un buen html tus forms no tienen id por ejemplo quiza con eso ira bien..
ckeditor se da la molestia de validar html y si es invalido lo destroza. (eso no es bueno pero quiza si... igual no te deja hacer muchas tonteras...)

El filtro de PHP siempre ha

alarez's picture

El filtro de PHP siempre ha implicado problemas de seguridad. En caso de que necesites el filtro para incluir blocks o manejar algún layout custom te recomiendo este módulo. https://www.drupal.org/project/vcl

Muchas gracias por tu respuesta, VCL no es suficiente.

cataq2's picture

Hola! Gracias por tu sugerencia, ya instalé el módulo que me dices y funciona bien, pero cuando voy a ingresar html, pasa igual y no me guarda cambios.
te cuento con un ejemplo lo que me sucede. Ya tenía instalado el módulo PHP, pero algo tan sencillo como un formulario con una entrada de texto y un botón.

<html><form action="">
  First name:<input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br>
<input type="submit">
</form>
</html>

Sin importar si lo hago en full html, php filter ó un nuevo filtro creado VCL habilitado, cuando le doy guardar se sale del nodo y carga la página principal sin haber guardado ningún cambio. En drupal 7 encontré que es suficiente colocar config.allowedContent = true; en la configuración del javascript pero en Drupal 8 no encuentro dicha configuración. Te agradezco mucho tu ayuda!!!!
Ya actualice la versión de Drupal, pero todo sigue igual....

Te recomiendo lo

alarez's picture

Te recomiendo lo siguiente:

Usa alguno de estos módulos https://www.drupal.org/project/contact_block https://www.drupal.org/project/formblock para generar tu form como un block.
Luego desde el VCL insertar el block y eso debe funcionar.

Suerte.

Gracias!!

cataq2's picture

Muchas gracias por tu respuesta. El módulo VCL parece ser la solución.

Ckeditor y Laravel 5.2

chickyflower's picture

Yo he utilizado Laravel 4.2 con Ckeditor y muy bien, ahora que he migrado mi aplicacion a Laravel 5.2 ya no funciona bien, salen todas las Etiquetas Html y toda mi base de datos esta terrible. Alguien sabe que puedo hacer? muchas gracias :)