J'utilise tinymce et l'enregistre dans une base de données.
Lorsque je modifie le contenu enregistré à l’aide de tinymce et que je le sauvegarde à nouveau, une balise p est insérée au début.
La modification répétée du contenu laisse un grand vide au début du contenu.
Est-ce que quelqu'un connaît une solution?
TinyMce ajoute automatiquement "<p>
" dans les nouvelles lignes . Vous pouvez définir cette option dans l'initialisation de tinyMce comme suit:
tinyMCE.init({
mode : "textareas",
theme : "advanced",
force_br_newlines : false,
force_p_newlines : false,
forced_root_block : '',
});
J'espère que ça va aider
Fonski
Je suis sûr que la réponse de @Fonski est correcte, mais je pensais que je mettrais à jour cette information pour quiconque le ferait ne savait pas où placer le code. J'ai placé le texte suivant dans mon fichier _config.php
pour le faire fonctionner:
$defaultEditorConfig = HtmlEditorConfig::get('cms');
$defaultEditorConfig->setOptions(
array(
'mode' => 'textareas',
'theme' => 'advanced',
'force_br_newlines' => false,
'force_p_newlines' => false,
'forced_root_block' => ''
)
);
Remarque: Si vous souhaitez simplement supprimer la balise p qui enveloppe automatiquement les balises d'image (etc.), il vous suffit de définir l'option 'forced_root_block' => ''
.
EDIT: Ce conseil s’adresse à ceux qui utilisent SilverStripe, j’ai écrit ceci en pensant que les questions étaient spécifiques à SilverStripe.
Pour moi, cela a fonctionné en faisant "force_br_newlines: true" au lieu de false.
tinyMCE.init({
mode : "textareas",
theme : "advanced",
force_br_newlines : true,
force_p_newlines : false,
forced_root_block : ''
});
J'espère que ça aide
De tinymce.js v4.1.10 code:
newBlockName = (settings.force_p_newlines ? 'p' : '') || settings.forced_root_block;
Donc, la clé pour éviter <p> semble être comme indiqué précédemment
settings.force_p_newlines = false
et
settings.forced_root_block = ''