Bonjour @celine_velo, @oceane_velo et @julien69,
Vous avez tout à fait raison, le comportement par défaut de TinyMCE dans PrestaShop 1.7.6.9 est de filtrer activement les balises HTML considérées comme potentiellement dangereuses ou non standard (comme <iframe>, <style>, <script>, <svg>, <div> avec attributs de style, etc.) pour des raisons de sécurité.
Pour permettre l'utilisation de ces balises dans les descriptions de produits sans passer par un module tiers, la méthode la plus directe consiste à modifier la configuration de TinyMCE.
Voici comment vous pouvez procéder :
Localisez le fichier de configuration de TinyMCE :
Dans PrestaShop 1.7.6.9, le fichier principal qui initialise TinyMCE pour le back-office est souvent admin-dev/themes/default/template/helpers/form/form.tpl qui inclut js/tinymce.inc.js. C'est dans ce fichier JavaScript que sont définis les paramètres de l'éditeur.
Modifiez js/tinymce.inc.js :
Ouvrez le fichier admin-dev/themes/default/js/tinymce.inc.js. Recherchez l'objet de configuration de TinyMCE. Vous devrez ajouter ou modifier les paramètres extended_valid_elements et custom_elements pour inclure les balises et attributs que vous souhaitez autoriser.
Par exemple, pour autoriser <iframe>, <style> et <svg>, vous pouvez ajouter ou modifier les lignes suivantes dans la configuration TinyMCE (cherchez une section valid_elements ou extended_valid_elements et ajoutez-y) :
extended_valid_elements: "iframe[src|width|height|name|align|class|frameborder|allowfullscreen|webkitallowfullscreen|mozallowfullscreen|allow],style,svg[width|height|version|xmlns|viewbox],path[fill|d]",
custom_elements: "~style", // Permet à <style> de contenir n'importe quoi
Assurez-vous d'ajouter ces lignes dans la configuration principale de TinyMCE, généralement là où les autres options comme plugins, toolbar, etc., sont définies.
Attention : Une modification directe de ce fichier peut être écrasée lors d'une mise à jour de PrestaShop. Pour une solution plus pérenne, il faudrait envisager une surcharge (override) du AdminProductsController pour injecter ces paramètres via Smarty au template. Cependant, pour un besoin ponctuel, la modification du JS est la plus simple.
Videz le cache de votre navigateur et de PrestaShop :
Après la modification, videz le cache de votre navigateur et, si nécessaire, le cache Smarty depuis Paramètres avancés > Performances dans votre back-office.
Testez ensuite l'ajout de vos contenus HTML personnalisés. Cette approche devrait permettre à TinyMCE de conserver les balises spécifiées. N'oubliez pas que cela désactive certaines protections, donc utilisez-le avec prudence.