tinymce añadir etiquetas p automáticamente?


Estoy usando tinymce y guardándolo en una base de datos.

Cuando edito el contenido guardado usando tinymce y lo vuelvo a guardar, inserta una etiqueta p al principio.

Editar el contenido una y otra vez deja un gran vacío al principio del contenido.

¿Alguien conoce una solución?

 37
Author: panthro, 2012-12-12

4 answers

TinyMCE añade automáticamente "<p>" en nuevas líneas. Puede establecer esta opción en la inicialización de TinyMCE de la siguiente manera:

  tinyMCE.init({
      mode : "textareas",
      theme : "advanced",
      force_br_newlines : false,
      force_p_newlines : false,
      forced_root_block : '',
  });

Espero que ayude

Fonski

 84
Author: Fonski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-12 14:42:08

Estoy seguro de que la respuesta de @Fonski es correcta, pero pensé que actualizaría esto para cualquier otra persona que lo hiciera estaba confundida en cuanto a dónde poner el código. Coloqué lo siguiente en mi archivo _config.php para que funcione:

$defaultEditorConfig = HtmlEditorConfig::get('cms');
$defaultEditorConfig->setOptions(
    array(
        'mode'              => 'textareas',
        'theme'             => 'advanced',
        'force_br_newlines' => false,
        'force_p_newlines'  => false,
        'forced_root_block' => ''
    )
);

Nota: Si solo desea eliminar la etiqueta p que envuelve automáticamente las etiquetas de imagen (etc), todo lo que necesita establecer es la opción 'forced_root_block' => ''.

EDITAR: Este consejo es para aquellos que usan SilverStripe, publiqué esto pensando que las preguntas eran específicas de SilverStripe.

 3
Author: nickspiel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-24 00:41:33

Para mí funcionó haciendo "force_br_newlines : true" en lugar de false.

 tinyMCE.init({
      mode : "textareas",
      theme : "advanced",
      force_br_newlines : true,
      force_p_newlines : false,
      forced_root_block : ''
  });

Espero que ayude

 2
Author: Learner,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-28 11:32:58

De tinymce.código js v4.1.10:

newBlockName = (settings.force_p_newlines ? 'p' : '') || settings.forced_root_block;

Así que la clave para evitar

Parece ser la indicada antes

settings.force_p_newlines = false

Y

settings.forced_root_block = ''
 0
Author: Fernando Gabrieli,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-18 19:14:26