Jump to content

Afficher les tags ou visual tag sur la page produit ou liste de produit 1.5.x?


Recommended Posts

Voici à ajouter dans override dans ProductController.php :

 

 $productTags = Tag::getProductTags($this->product->id);
 $productTags = $productTags[intval($this->context->language->id)];
 $this->context->smarty->assign('productTags', $productTags);

 

ensuite vous récupérez les tag dans product.tpl avec :

 

{foreach from=$productTags item=productTag name=productTags}
  <strong>{$productTag}</strong>{if !$smarty.foreach.productTags.last}, {/if}
{/foreach}

Edited by LeGastronome (see edit history)
Link to comment
Share on other sites

  • 2 weeks later...
  • 3 weeks later...

Bonjour,

 

 

En fait il n'y a rien à surcharger pour prestashop 1.5 !

Dans le template produit (le product.tpl du dossier de ton thème), il suffit d'ajouter ce qui suit là où tu veux faire apparaître les tags :

{assign var='productTags' value=$product->tags}
{foreach from=$productTags[5] item=productTag name=productTags}
   <a href="http://www.boutique.com/recherche?tag={$productTag|escape:'url'}"><strong>{$productTag}</strong></a>{if !$smarty.foreach.productTags.last}, {/if}
{/foreach}

 

J'ai rajouté un lien dans le code histoire qu'on puisse rechercher les produits avec un tag similaire en cliquant sur n'importe lequel des tags.

 

Par contre je ne comprends pas pourquoi le product->tags contient une array à deux niveau et que seul le niveau [5] de la première est utilisé Ôo

Edited by Stabbquadd (see edit history)
  • Like 2
Link to comment
Share on other sites

Ah ben voilà, comme ça c'est clair :)

 

Donc le mieux serait de remplacer le [5] par l'id de la langue finalement !

 

Le code devient donc ceci :

{assign var='id_lang' value=Language::getIdByIso($lang_iso)}
   {assign var='productTags' value=$product->tags}
   {l s='Ce produit a les tags suivant :'}
   {foreach from=$productTags[$id_lang] item=productTag name=productTags}
   <a href="http://www.boutique.com/recherche?tag={$productTag|escape:'url'}"><strong>{$productTag}</strong></a>{if !$smarty.foreach.productTags.last}, {/if}
   {/foreach}

Edited by Stabbquadd (see edit history)
  • Like 1
Link to comment
Share on other sites

Non, en fait on peut faire mieux, en remplaçant l'url par base_dir afin que n'importe qui n'ait plus qu'à copier coller le code sans l'éditer :

 

   {assign var='id_lang' value=Language::getIdByIso($lang_iso)}
   {assign var='productTags' value=$product->tags}
   {l s='Ce produit a les tags suivant :'}
   {foreach from=$productTags[$id_lang] item=productTag name=productTags}
   <a href="{$base_dir}recherche?tag={$productTag|escape:'url'}"><strong>{$productTag}</strong></a>{if !$smarty.foreach.productTags.last}, {/if}
   {/foreach}

 

 

Voilà, je pense que le sujet est clos !

Link to comment
Share on other sites

Déjà vous n'avez pas une page blanche, c'est une bonne chose :)

 

Quelle version de prestashop utilisez-vous ?

Ce code est pour la 1.5 et je l'ai testé sous 1.5.2 !

 

Chez moi il donne ceci : http://www.feeduthe....e-cannelle.html

 

Si vous n'obtenez pas les tags, une des deux assignations du haut du code ne doit pas marcher, reste à trouver laquelle en faisant un print_r sur chacune des deux valeurs afin de trouver le problème.

Je vous invite à rajouter ceci en dessous du code :

Variables de test :<br /><br />
{$id_lang|@print_r}<br /><br />
{$productTags|@print_r}

 

Donnez-nous le résultat et nous verrons bien ce qui ne fonctionne pas :)

Edited by Stabbquadd (see edit history)
Link to comment
Share on other sites

Merci pour ta réponse je suis sous ps 1.5.2

 

losque je copie ton code j'ai ce que je t'ai mis en pièce jointe

 

Ai t'il possible de mettre en forme ces tags avec du css?

 

J'ai l'impression depuis que j'ai mis ce code que la boutique tourne au ralenti je suis en local sur easy php 12.1

post-19050-0-76755400-1353447770_thumb.jpg

Link to comment
Share on other sites

Merci mais cette fois ci j'ai

 


Ce produit a les tags suivant : [url="http://127.0.0.1/prestashop/recherche?tag=ipod%20touch%20tactile"][b]ipod touch tactile[/b][/url] Variables de test :

fr1

Array ( [1] => Array ( [0] => Ipod touch ) [2] => Array ( [0] => Ipod touch ) [4] => Array ( [0] => Ipod touch ) [5] => Array ( [0] => ipod touch tactile ) ) 1

 

En fait j'ai copié ce code dans le product.tpl de mon thème qui est celui par défaut à la ligne 491

 

{if isset($HOOK_PRODUCT_FOOTER) && $HOOK_PRODUCT_FOOTER}{$HOOK_PRODUCT_FOOTER}{/if}
  {assign var='id_lang' value=Language::getIdByIso($lang_iso)}
{assign var='productTags' value=$product->tags}
{l s='Ce produit a les tags suivant :'}
{foreach from=$productTags[$id_lang] item=productTag name=productTags}
	   <a href="{$base_dir}recherche?tag={$productTag|escape:'url'}"><strong>{$productTag}</strong></a>{if !$smarty.foreach.productTags.last}, {/if}
{/foreach}
Variables de test :<br /><br />
{$lang_iso|@print_r}<br /><br />
{$productTags|@print_r}
<!-- description and features -->

 

J'ai remarqué un truc aussi quand je survole le tag qui est dans ma page produit j'ai

127.0.0.1/prestashop/recherche?tag=nom du tag

 

Alors que dans le bloc tag le lien est

127.0.0.1/prestashop/index.php?controller=search&tag=nom du tag

 

Peut etre parce que j'ai activé la redirection d'url?

Edited by papich (see edit history)
  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Dans ce cas tu devrais modifier le code pour avoir :

 

{assign var='id_lang' value=Language::getIdByIso($lang_iso)}
   {assign var='productTags' value=$product->tags}
   {l s='Ce produit a les tags suivant :'}
   {foreach from=$productTags[$id_lang] item=productTag name=productTags}
	   <a href="{$base_dir}index.php?controller=search&tag={$productTag|escape:'url'}"><strong>{$productTag}</strong></a>{if !$smarty.foreach.productTags.last}, {/if}
   {/foreach}

  • Like 1
Link to comment
Share on other sites

  • 1 month later...

Merci à tous le dernier code proposé par Stabbquadd fonctionne parfaitement en local sous 1.5.2

 

Est il possible de ne pas afficher le texte lorsqu'il n'y a pas de tags?

 

reste plus qu'à insérer un code pour le customiser avec du css et ce serait top

Edited by papich (see edit history)
Link to comment
Share on other sites

  • 4 weeks later...

Pour ne pas afficher le code lorsqu'il n'y a pas de tag, ceci devrait fonctionner (non testé) :

 

{if isset($product->tags) && $product->tags}
{assign var='id_lang' value=Language::getIdByIso($lang_iso)}
{assign var='productTags' value=$product->tags}
{l s='Ce produit a les tags suivant :'}
{foreach from=$productTags[$id_lang] item=productTag name=productTags}
	   <a href="{$base_dir}index.php?controller=search&tag={$productTag|escape:'url'}"><strong>{$productTag}</strong></a>{if !$smarty.foreach.productTags.last}, {/if}
{/foreach}
{/if}

 

 

Pour le product-list.tpl, essayez peut-être comme ça (non testé) :

 

 

{if isset($product.tags) && $product.tags}
{assign var='id_lang' value=Language::getIdByIso($lang_iso)}
   {assign var='productTags' value=$product.tags}
   {l s='Ce produit a les tags suivant :'}
   {foreach from=$productTags[$id_lang] item=productTag name=productTags}
          <a href="{$base_dir}index.php?controller=search&tag={$productTag|escape:'url'}"><strong>{$productTag}</strong></a>{if !$smarty.foreach.productTags.last}, {/if}
   {/foreach}
{/if}

  • Like 1
Link to comment
Share on other sites

Merci effectivement ca fonctionne mais quelle différence entre ce code

{assign var='id_lang' value=Language::getIdByIso($lang_iso)}
{assign var='productTags' value=$product->tags}
{l s='Ce produit a les tags suivant :'}
{foreach from=$productTags[$id_lang] item=productTag name=productTags}
			   <a href="{$base_dir}index.php?controller=search&tag={$productTag|escape:'url'}"><strong>{$productTag}</strong></a>{if !$smarty.foreach.productTags.last}, {/if}
{/foreach}

 

et celui ci le dernier que tu as donné ils ont l'air différent

{if isset($product->tags) && $product->tags}
{assign var='id_lang' value=Language::getIdByIso($lang_iso)}
	{assign var='productTags' value=$product->tags}
	{l s='Ce produit a les tags suivant :'}
	{foreach from=$productTags[$id_lang] item=productTag name=productTags}
			   <a href="{$base_dir}index.php?controller=search&tag={$productTag|escape:'url'}"><strong>{$productTag}</strong></a>{if !$smarty.foreach.productTags.last}, {/if}
	{/foreach}
{/if}

 

Pour le productlist le code est tronqué donc j'ai pensé que c'est le même que le premier mais ca ne marche pas

 

S'aurais tu comment intégrer un visual tag pour la livraison gratuite par exemple avec référence à un CMS par exemple? http://www.prestashop.com/forums/topic/217915-lie-page-cms-ou-texte-html-au-module-reassurance/page__fromsearch__1

 

J'aimerais peut etre déplacé le bloc réassurance sur le pied du produit...

Edited by papich (see edit history)
Link to comment
Share on other sites

Dans le dernier code il y a un {if} qui teste si il y a des tags ou pas.

S'il n'y en a pas, tout ce qui est entre le {if} et le {/if} ne s'exécute pas !

 

Pour le product-list je ne comprends pas. Le code est tronqué où ? Moi je le vois en entier :s

 

Je n'ai pas bien compris non plus la demande du visual tag avec référence à un CMS, désolé.

  • Like 1
Link to comment
Share on other sites

Désolé mais sur mon navigateur j'avais le code

{if isset($product.tags) && $product.tags}
{assign....

Mais maintenant il s'affiche correctement je vais essayé avec celui la et je vous tiens au courant (j'ai testé ca ne marche pas ou je l'ai collé au mauvais endroit vers quelle ligne pour etre sous la description?)

 

Avez vous réfléchi à la seconde partie de mon post?

Edited by papich (see edit history)
Link to comment
Share on other sites

  • 2 weeks later...
  • 4 weeks later...
  • 4 months later...

Bonjour à tous,

 

Archi débutante sur presta...et en informatique pour dire la vérité...

Pourriez vous être un peu plus "enfantins" dans vos explications?

 

Quelqu'un aurait il la patience de reprendre à zéro les explications?

 

Ma version Presta 1.4.6.2

J'ai installé le module [PSF] Tags des produits v1.2 par Pierre-Yves

 

Jusque là tout va bien, je peux mettre des tags dans mon catalogue

 

PROBLEME : rien ne s'affiche sur mes produits

J'ai essayé différentes modif que vous indiquiez mais rien n'y fait...

 

Visiblement 2 fichiers sont à modifier : product.tpl qui se trouve dans mon thème et productControoler.php ou alors product list

A quelle ligne se collent les codes?

 

J'ai vraiment besoin de tout tenter pour ma boutique...surtout depuis que leboncoin est devenu payant...

 

MErci à tous de votre aide précieuse

Link to comment
Share on other sites

Bonjour à tous,

 

Archi débutante sur presta...et en informatique pour dire la vérité...

Pourriez vous être un peu plus "enfantins" dans vos explications?

 

Quelqu'un aurait il la patience de reprendre à zéro les explications?

 

Ma version Presta 1.4.6.2

J'ai installé le module [PSF] Tags des produits v1.2 par Pierre-Yves

 

Jusque là tout va bien, je peux mettre des tags dans mon catalogue

 

PROBLEME : rien ne s'affiche sur mes produits

J'ai essayé différentes modif que vous indiquiez mais rien n'y fait...

 

Visiblement 2 fichiers sont à modifier : product.tpl qui se trouve dans mon thème et productControoler.php ou alors product list

A quelle ligne se collent les codes?

 

J'ai vraiment besoin de tout tenter pour ma boutique...surtout depuis que leboncoin est devenu payant...

 

MErci à tous de votre aide précieuse

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 months later...
  • 5 months later...
  • 4 weeks later...
  • 1 month later...

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...