Prestashop 1.5. no permite incrustar iframes en sus páginas de CMS (páginas de contenido textual), pero muchas veces puede ser muy útil para incluir un mapa de Google Maps o un vídeo de Youtube, por ejemplo. En este artículo os vamos a explicar cómo incrustar un iframe en Prestashop 1.5.

Un iframe te permite incrustar un documento html en otro html principal. Actualmente su práctica está desaconsejada y, por eso, parece que a Prestashop ya no le ha parecido interesante permitir esta opción, pero yo me he encontrado con la necesidad de utilizarlo para incluir en las páginas de contenidos de Prestashop el mapa de ubicación de la tienda o un vídeo de presentación y tanto Google como Youtube te permiten incluir este contenido en tu página a través de los iframes.

Lo normal es que con el botón «Editar código html» del editor de textos de una página CMS en el panel de administración te dejase incluir el código que te proporcionan Google o Youtube para incrutar su contenido, pero Prestashop te da un error. Mi siguiente paso fue utilizar el botón del editor «Inserar/editar medio embebido», pero obtuve el mismo error. Esto es lógico porque porque el problema es que Prestshop valida los campos que se mandan a la base de datos y si tienen un iframe, devuelve un error.

La solución es editar la clase que realiza esta validación. Para ello, editamos el archivo classes/validate.php y aproximadamente en la línea 405 nos encontraremos el código:

if (!$allow_iframe && preg_match(‘/<[s]*(i?frame|form|input|embed|object)/ims’, $html))
return false;

Y deberemos eliminar la parte de  i?frame|, quedando, como resultado final:

if (!$allow_iframe && preg_match(‘/<[s]*(form|input|embed|object)/ims’, $html))
return false;

Guardamos y ¡listo! Ahora Prestashop nos permitirá incluir iframes en nuestro contenido CMS. Copiaremos el iframe que queremos insertar, editaremos la página CMS deseada y, en el editor de textos del contenido, haremos clic en el botón  «Editar código html» para pegar el iframe en la ubicación deseada de la página.