Jump to content

Empecher la suppression de balises HTML à l'affichage dans hookDisplayHeader


Recommended Posts

Bonjour

 

Je suis complètement débutant dans le développement de module pour Presta 1.6.

 

Je veux faire un module que l'on peut configurer avec un code javascript à insérer dans le header.

 

De ce fait, dans la fonction "getContent" de mon module, j'affiche un formulaire contenant un seul champ : "js_code", de type textarea.

 

Jusque là tout fonctionne. Dans le backoffice, en configurant le module, si je rentre :

<script>alert('toto')</script>

et que je reviens ensuite sur la configuration du module, j'ai bien le code, tel que je l'ai rentré.

 

Ensuite, dans ma fonction hookDisplayHeader, je faits un simple return de mon textarea de configuration :

public function hookDisplayHeader($params)
{
    return Configuration::get(Tools::strtoupper($this->name).'_JS_CODE');
}

Maintenant, si je vais dans la partie front-office, les balises scripts ont été supprimées dans le code source. Pire, si je retourne dans la configuration du module, je ne trouve plus non plus les balises...

 

Si quelqu'un peut me donner des pistes, je suis preneur.

 

Merci d'avance

Edited by Besens (see edit history)

Share this post


Link to post
Share on other sites

Dans la configuration du module, je rentre :

{literal}<script>alert('toto')</script>{/literal}

Mais dans la page générée j'obtiens :

{literal} alert('toto') {/literal}

Les balises ont été supprimées...

Share this post


Link to post
Share on other sites

Bonjour,

 

Je viens de relire votre post et je pense que votre problème vient du fait que vous stockez du code html en base de données dans la table de configuration. Du coup les balises sont supprimées lors de l'insertion en BD.

Si vous souhaitez utiliser du JS, vous devez faire un fichier.js que vous devez appeler dans le hookDisplayHeader ou hookDisplayBackOfficeHeader avec la méthode addJS.

Comme vous débutez dans le dev PrestaShop, je vous conseil de consulter le site de doc de PrestaShop (En anglais car plus complet), voici le lien :

 

http://doc.prestashop.com/display/PS16/Developer+Guide

 

Bon apprentissage.

 

Cordialement

Edited by AC2ID (see edit history)

Share this post


Link to post
Share on other sites

Bonjour

 

C'est bien par ce lien que j'ai commencé, mais la doc est peu fournie pour démarrer. J'ai fait pas mal de tutos, plutôt orientés PS 1.5.

 

Je note en tous cas, que pas possible de mettre du "tag" dans un champ de conf. Ça veut dire qu'il faut plutôt que je mette "toto" dans la conf. puis le template affichera le decorum JS autour.

 

Merci

Share this post


Link to post
Share on other sites

AC2ID m'a mis sur la voie, comment stockes-tu la valeur de Tools::strtoupper($this->name).'_JS_CODE' ?

 

Tu peux insérer du code HTML en BDD, il suffit de passer le 3ème paramètre à true :

Configuration::updateValue(Tools::strtoupper($this->name).'_JS_CODE', $value, true);

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More