我想添加以下内容
<label for="tab1">Product Name</label>
在Prestashop的长产品描述中,但是当我保存产品时,“for”属性被从HTML代码中删除。
我做了一些研究,发现编辑器是TinyMCE,所以我尝试通过添加来改变配置:
extended_valid_elements : "+@[class|name|id|for]",
在TinyMCE init脚本中,但结果是一样的。我确信我没有使用旧脚本的缓存版本,因为我禁用了Chrome缓存并检查了javascript代码是否正确。
你知道吗?这是完整的配置脚本:
default_config = {
selector: ".rte" ,
plugins : "colorpicker link image paste pagebreak table contextmenu filemanager table code media autoresize textcolor anchor",
browser_spellcheck : true,
toolbar1 : "code,|,bold,italic,underline,strikethrough,|,alignleft,aligncenter,alignright,alignfull,formatselect,|,blockquote,colorpicker,pasteword,|,bullist,numlist,|,outdent,indent,|,link,unlink,|,anchor,|,media,image",
toolbar2: "",
external_filemanager_path: ad+"/filemanager/",
filemanager_title: "File manager" ,
external_plugins: { "filemanager" : ad+"/filemanager/plugin.min.js"},
language: iso,
skin: "prestashop",
statusbar: false,
relative_urls : false,
convert_urls: false,
entity_encoding: "raw",
extended_valid_elements : "+@[class|name|id|for]",
valid_children : "+*[*]",
valid_elements:"*[*]",
menu: {
edit: {title: 'Edit', items: 'undo redo | cut copy paste | selectall'},
insert: {title: 'Insert', items: 'media image link | pagebreak'},
view: {title: 'View', items: 'visualaid'},
format: {title: 'Format', items: 'bold italic underline strikethrough superscript subscript | formats | removeformat'},
table: {title: 'Table', items: 'inserttable tableprops deletetable | cell row column'},
tools: {title: 'Tools', items: 'code'}
}
};
答案 0 :(得分:3)
您是否尝试过添加 extended_valid_elements
标记而不是属性?像这样:
extended_valid_elements : "label[for]"
如果您可以从后台控制html禁用的内容,那么它是HTMLPurifier库的错误。
Preferences -> General
设置为NO Use HTMLPurifier Library
如果您不想禁用该库,则必须在PrestaShop/tools/htmlpurifier/
也许更轻松地覆盖purifyHTML()
类的Tools
方法,并添加&#39; for&#39;标签的属性,在实例化库时添加它:
$config->set('HTML.AllowedAttributes', 'label.for');