V popisu (description) nelze používat script, iframe, form, input, embed, object

Chcete u popisu produktu či v CMS přidat iframe či script? Bohužel prestashop vyskočí s chybou a do databáze se nic nezapíše. Je to standardní opatření Prestashopu 1.5 a novější verze z důvodu bezpečnosti. Například náš modul Heureka hodnocení obchodu zákazníky používá script .js. Po instalaci ovšem prestahop napíše chybu a potřebný zápis se neprovede do databáze. Řešením je následující úprava.

PrestaShopException-Property-CMS-content-is-not-valid-throw-new-PrestaShopException($message)

Soubor classes/Validate.php ve verzi 1.5.5 a vyšší je potřeba zakomentovat následující řádky

//		if (preg_match('/<[\s]*script/ims', $html) || preg_match('/('.$events.')[\s]*=/ims', $html) || preg_match('/.*script\:/ims', $html))
//			return false;

Ve verzi 1.5.5 a starší ve funkci isCleanHtml($html) zakomentovat

/*        $events = 'onmousedown|onmousemove|onmmouseup|onmouseover|onmouseout|onload|onunload|onfocus|onblur|onchange';
        $events .= '|onsubmit|ondblclick|onclick|onkeydown|onkeyup|onkeypress|onmouseenter|onmouseleave|onerror|onselect|onreset|onabort|ondragdrop|onresize|onactivate|onafterprint|onmoveend';
        $events .= '|onafterupdate|onbeforeactivate|onbeforecopy|onbeforecut|onbeforedeactivate|onbeforeeditfocus|onbeforepaste|onbeforeprint|onbeforeunload|onbeforeupdate|onmove';
        $events .= '|onbounce|oncellchange|oncontextmenu|oncontrolselect|oncopy|oncut|ondataavailable|ondatasetchanged|ondatasetcomplete|ondeactivate|ondrag|ondragend|ondragenter|onmousewheel';
        $events .= '|ondragleave|ondragover|ondragstart|ondrop|onerrorupdate|onfilterchange|onfinish|onfocusin|onfocusout|onhashchange|onhelp|oninput|onlosecapture|onmessage|onmouseup|onmovestart';
        $events .= '|onoffline|ononline|onpaste|onpropertychange|onreadystatechange|onresizeend|onresizestart|onrowenter|onrowexit|onrowsdelete|onrowsinserted|onscroll|onsearch|onselectionchange';
        $events .= '|onselectstart|onstart|onstop';
        return (!preg_match('/<[ \t\n]*script/ims', $html) && !preg_match('/('.$events.')[ \t\n]*=/ims', $html) && !preg_match('/.*script\:/ims', $html));
*/

Od verze 1.5.6 je v administraci možnost povolení/zakázání nastavení použití iframe,..
Je potřeba nastavit v administraci na ANO + upravit zdrojový kód

public static function isCleanHtml($html, $allow_iframe = false)

nahradit za

public static function isCleanHtml($html, $allow_iframe = false){
    return true;
}

Soubor classes/Validate.php nahrajte do override/classes/Validate.php

Modifikace funkcí TinyMCE (přidání iframe, script,…) je potřeba upravit soubor ADMINsložka/themes/default/template/controllers/product/helpers/form.tpl

tinySetup({ 
editor_selector :"autoload_rte", 
setup : function(ed) { 

nahradit za

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,   
setup: function(ed) { 
Příspěvek byl publikován v rubrice Úpravy se štítky , , , , , , , . Můžete si uložit jeho odkaz mezi své oblíbené záložky.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *