Buenos días,
Me gustaría añadir a uno de mis CMS en prestashop digo JQuery, JavaScript y CSS.
Si edito desde la página de creación de CMS y meto el HTML, lo único que me hace es ponerme el Body.
Me quita los enlaces a los archivos jquery, javascript y al estilo.
Si alguien me puede decir algo se lo agradezco...
Saludos.
URL del sitio: Contenido solo visible a usuarios registrados
Hola,
Entiendo que el código que estás tratando de añadir lo estás poniendo dentro del contenido del artículo del CMS.
Esto ocurre porque PrestaShop, antes de guardar los cambios añadidos en el editor, aplica una verificación del código, de forma que comenta o elimina el código que no le gusta, entre ellos el de los scripts.
Para solucionar esto, es necesario aplicar un cambio en uno de los archivos de PrestaShop. En concreto, tendrás que editar el archivo classes/Validate.php. Previa copia de seguridad del mismo, edítalo y cambia el código:
public static function isCleanHtml($html, $allow_iframe = false) { $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'; if (preg_match('/<[s]*script/ims', $html) || preg_match('/('.$events.')[s]*=/ims', $html) || preg_match('/.*script:/ims', $html)) { return false; } if (!$allow_iframe && preg_match('/<[s]*(i?frame|form|input|embed|object)/ims', $html)) { return false; } return true; }
por este otro:
public static function isCleanHtml($html, $allow_iframe = false) { return true; }
Así no se pasará esta validación y te dejará guardar el código javascript, css , etc.
Disculpa pero he probado lo que dices y se me quita desde hasta , con lo cual no me coge el jquery ni nada
Hola
Creo que lo estas planteando mal, primero que todo tu sitio sólo debe tener un doctype y sólo debe tener un body, no tiene lógica que pongas código como el que comentas dentro de un artículo CMS
Tal vez lo que debas evaluar es crear un archivo .html con referencias a tus scripts y este archivo llamarlo desde tu sitio web, incluso puedes inscrustrar este archivo a través de un iframe en la opción que estas usando ahora, pero no es posible poner el código del archivo directamente (con etiquetas doctype y body) en un artículo CMS.
Saludos.