Jump to content

[Résolu] Bouton "mettre en favoris" dans cms


Recommended Posts

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

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 js
avec 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

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

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

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

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

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

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 voir

A 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

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
×
×
  • Create New...