O editor WYSIWYG no Prestashop, onde criamos e editamos páginas CMS é o TinyMCE, um componente desenvolvido em Javascript para facilitar o processo de criar conteúdo.
Este editor permite a construção de conteúdo de uma forma mais visual, no entanto inclui uma área para fazer a edição do código criado com o desenvolvimento.
No entanto, por defeito, o tag HTML <p></p> é inserido automáticamente sempre que há uma quebra de linha, o que pode causar problemas na criação de interações Javascript com o conteudo.
Para anular esta funcionalidade é necessário editar o ficheiro ADMINDIR/themes/default/template/helpers/form/form.tpl e substituir o seguinte:
$(document).ready(function(){
{block name="autoload_tinyMCE"}
tinySetup({
editor_selector :"autoload_rte",
});
{/block}
});
por:
$(document).ready(function(){
{block name="autoload_tinyMCE"}
tinySetup({
editor_selector :"autoload_rte",
theme_advanced_buttons1 :"save, newdocument, bold, italic, underline, strikethrough, justifyleft, justifycenter, justifyright, justifyfull, styleselect, formatselect, fontselect, fontsizeselect",
theme_advanced_buttons2 : "cut, copy, paste, pastetext, pasteword, search, replace, bullist, numlist, outdent, indent, blockquote, undo, redo, link, unlink, anchor, image, cleanup, help, codemagic, insertdate, inserttime, preview, forecolor, backcolor",
theme_advanced_buttons3 : "code, tablecontrols, hr, removeformat, visualaid, sub, sup, charmap, emotions, iespell, media, advhr, print, ltr, rtl, fullscreen",
theme_advanced_buttons4 : "styleprops, cite, abbr, acronym, del, ins, attribs, visualchars, nonbreaking, template, pagebreak, restoredraft, visualblocks",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_statusbar_location : "bottom",
theme_advanced_resizing : false,
extended_valid_elements: 'pre[*],script[*],style[*]',
valid_children: "+body[style|script], pre[script|div|p|br|span|img|style|h1|h2|h3|h4|h5], *[*]",
valid_elements : '*[*]',
force_p_newlines : false,
cleanup: false,
forced_root_block : false,
force_br_newlines : true
});
{/block}
});
Desta forma será o tag <p> deixará de ser inserido sempre que haja uma quebra de linha.