guilli Posted June 22, 2011 Share Posted June 22, 2011 Bonjour,Je voudrais dans une page cms de prestashop rajouter un bouton "mettre cette page en favoris".Le problème est que toutes les solutions que je trouve font appel à du javascript et que le javascript n'est pas utilisable dans les pages cms.Comment puis je faire ?merci Link to comment Share on other sites More sharing options...
jherbaux Posted June 22, 2011 Share Posted June 22, 2011 oui tu ne peux pas écrire de js dans une page CMS, mais, sauf erreur de ma part, tu peux récupérer l'action click sur ce bouton en jsavec un $('.laclassdemoncouton').bind('click',function(){alert("ma fonction ajout a la lists")}) le tout dans un document.ready das un fichier js Link to comment Share on other sites More sharing options...
Asenar Posted June 22, 2011 Share Posted June 22, 2011 Bonjour,pour toute les pages cms ou seulement une seule en particulier ?Si c'est pour toute les pages : éditer le fichier .tpl correspondant ( cms.tpl ) pour y ajouter "en dur" ce lien.Si c'est pour une page en particulier, tu peux créer un bouton avec une classe css (par exemple <input type="addToFav" value="Ajouter" /> )Puis écrire ce petit bout de javascript (par exemple à placer en bas du fichier cms.tpl ), comme le suggère jherbaux : $(document).ready(function(){ $("input.addToFav").click(function(){ writeBookmarkLink('{$come_from}', '{$shop_name|addslashes|addslashes}', '{l s='bookmark this page' mod='blockpermanentlinks'}', '{$img_dir}icon/ star.gif'); }) }); Link to comment Share on other sites More sharing options...
guilli Posted June 24, 2011 Author Share Posted June 24, 2011 Bonjour,Merci pour vos réponses. Il s'agit d'une page en particulier et pas de toutes les pages donc je ne peux utiliser une modification dans cms.tpl.Petit difficulté supplémentaire, il s'agit de la page d'accueil et j'utilise le module "editeur de page d'accueil (editorial)" pour afficher cette page.J'ai un souci, je pense que mon javascript n'est pas appelé :dans editorial.tpl (à la fin), rajout de : {literal} [removed] $(document).ready(function(){ $("input.addToFav").click(function(){ writeBookmarkLink('{$come_from}', '{$shop_name|addslashes|addslashes}', '{l s='bookmark this page' mod='blockpermanentlinks'}', '{$img_dir}icon/ star.gif'); }) }); [removed] {/literal} dans le module d'éditeur de page d'accueil, rajout de : <form action="" method="POST"><input id="boutonFavoris" type="addToFav" value="" /></form> Le bouton apparait bien avec le css que je veux mais si j'appui dessus il se passe rien. Ou est mon erreur ? Link to comment Share on other sites More sharing options...
Asenar Posted June 24, 2011 Share Posted June 24, 2011 Bonjour,le bout de code javascript, à mettre dans le fichier cms.tpl entre des balises {literal} aussi (à cause des accolades dans le code qui peuvent être mal interprétées par Smarty).Ensuite quand tu éditeras ta page particulière, tu te met en mode "source" dans l'éditeur de texte et tu ajoutes un bouton : <input class="addToFav" value="le nom que tu veux donner" type="button" />Le bout de javascript ne va s'exécuter QUE si le bouton existe. Link to comment Share on other sites More sharing options...
guilli Posted June 24, 2011 Author Share Posted June 24, 2011 Je viens de rajouter le javascript dans mon fichier cms.tpl aussi: {literal} [removed] $(document).ready(function(){ alert("test"); $("input.addToFav").click(function(){ writeBookmarkLink('{$come_from}', '{$shop_name|addslashes|addslashes}', '{l s='bookmark this page' mod='blockpermanentlinks'}', '{$img_dir}icon/ star.gif'); }) }); [removed] {/literal} Dans l'éditeur html du module d'accueil j'ai bien mis: <form action="" method="POST"><input class="addToFav" type="button" value="test" /></form> mais si je clique rien ne se passe, le javascript n'est pas appelé (la fonction alert n'affiche rien) Link to comment Share on other sites More sharing options...
guilli Posted June 24, 2011 Author Share Posted June 24, 2011 Correction, le javascript est bien appelé (au passage mon alert était mal placé). {literal} [removed] $(document).ready(function(){ $("input.addToFav").click(function(){ alert("testAA"); }) }); [removed] {/literal} Si j'appui sur le bouton, l'alerte est bien affiché.Dans mon cas le placer dans cms.tpl ne me sert pas, editorial.tpl suffit.Le problème vient on dirait du code javascript pour mettre en favori qui ne produit pas d'effet. writeBookmarkLink('{$come_from}', '{$shop_name|addslashes|addslashes}', '{l s='bookmark this page' mod='blockpermanentlinks'}', '{$img_dir}icon/ star.gif'); Je suis sous firefox 4. Link to comment Share on other sites More sharing options...
Asenar Posted June 24, 2011 Share Posted June 24, 2011 Oui, il faudrait peut être utiliser une méthode plus classique d'ajout au favoris (une petite recherche pour voir si une fonction jquery n'existe pas pour la compatibilité des navigateurs), ou sinon regarde ou la fonction writeBookmarkLink est définie. Fais un alert('{$come_from}'+'{$shop_name|addslashes|addslashes}') pour voirA noter qu'avec les balises {literal}, le {come_from} n'est pas remplacé par ce qu'il faut Link to comment Share on other sites More sharing options...
guilli Posted June 24, 2011 Author Share Posted June 24, 2011 Je vais voir ça, merci pour votre aide. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now