Jump to content
Sign in to follow this  
coraline

Ajout d'un onglet Fabricant ????

Recommended Posts

Bonjour,

Je cherche comme ajouter un onglet "Fabricant" ou "Marque" dans la fiche produit au même niveau que les onglets "en savoir plus" et "commentaires".

On cliquerais sur cet onglet et une fenetre comme le descriptif du produit mais avec le descriptif du fabricant c'est possible?

Merci

Share this post


Link to post
Share on other sites

Bonjour,

Ceci semble possible.

Il faut modifier tout d'abord le fichier themes/pretashop/product.tpl
le block suivant correspond à l'affichage des onglets sur la fiche produit :

<!-- description and features -->
{if $product->description || $features || $accessories || $HOOK_PRODUCT_TAB || $attachments}


       {if $product->description}{l s='More info'}{/if}
       {if $features}{l s='Data sheet'}{/if}
       {if $attachments}{l s='Download'}{/if}
       {if isset($accessories) AND $accessories}{l s='Accessories'}{/if}
       {$HOOK_PRODUCT_TAB}


   {if $product->description}
       <!-- full description -->
{$product->description}
   {/if}
   {if $features}
       <!-- product's features -->

       {foreach from=$features item=feature}
{$feature.name|escape:'htmlall':'UTF-8'} {$feature.value|escape:'htmlall':'UTF-8'}
       {/foreach}

   {/if}
   {if $attachments}

       {foreach from=$attachments item=attachment}
{$attachment.name|escape:'htmlall':'UTF-8'}
{$attachment.description|escape:'htmlall':'UTF-8'}
       {/foreach}

   {/if}
   {if isset($accessories) AND $accessories}
       <!-- accessories -->




                   {foreach from=$accessories item=accessory name=accessories_list}
                       {assign var='accessoryLink' value=$link->getProductLink($accessory.id_product, $accessory.link_rewrite, $accessory.category)}

{$accessory.name|truncate:22|escape:'htmlall':'UTF-8'}


getImageLink($accessory.link_rewrite, $accessory.id_image, 'medium')}" alt="{$accessory.legend|escape:'htmlall':'UTF-8'}" />
{$accessory.description_short|strip_tags|truncate:100}



{displayWtPrice p=$accessory.price}
{l s='View'}
{l s='Add to cart'}


                   {/foreach}





   {/if}
   {$HOOK_PRODUCT_TAB_CONTENT}


{/if}



En ajoutant dans la premiere partie une nouvelle balise

, nous avons un nouveau onglet sur la fiche produit (ici onglet Manufacturers):

>
</pre>
<ul>
       {if $product->description}{l s='More info'}{/if}
       {if $features}{l s='Data sheet'}{/if}
       {if $attachments}{l s='Download'}{/if}
       {if isset($accessories) AND $accessories}{l s='Accessories'}{/if}
       {if $manufacturers}{l s='Manufacturers'}{/if}
       {$HOOK_PRODUCT_TAB}
</ul>



Ensuite il suffit d'afficher ce que tu veut entre dans le nouveau block.
Ici ça affiche le nom du fabricant du produit
Exemple :

{if $manufacturers}
       {foreach from=$manufacturers item=manufacturers}
           {if $manufacturers.id_manufacturer eq $product->id_manufacturer}
{$manufacturers.name}
           {/if}
       {/foreach}
   {/if}

Share this post


Link to post
Share on other sites

J'ai réussi à appliquer ce code.
Par contre, comment faire pour que :
dans le titre de l'onglet, avoir autre chose que "manufacturers"... ou tout du moins comment le traduire pour que ce soit pris en plusieurs langues.
Encore mieux, y'aurait-il moyen d'afficher directement le nom de fournisseur ?

Edit : pour traduire le mot "manufacturers", j'ai trouvé... Back-office, Outils, Traduction.
Par contre, si quelqu'un a une idée pour insérer directement le nom du fabricant en titre de l'onglet ?

Share this post


Link to post
Share on other sites

Bonjour,

Je rebondis sur ce post.
J'ai bien réussi à faire apparaître un onglet pour le fabricant - dont l'en-tête porte le nom du fabricant - mais cet onglet reste désespérément vide malgré mes efforts pour y faire apparaître la description de ce fabricant.

Quelqu'un peut-il m'aider ?

Merci

Pierre

Share this post


Link to post
Share on other sites
Bonjour,

Je rebondis sur ce post.
J'ai bien réussi à faire apparaître un onglet pour le fabricant - dont l'en-tête porte le nom du fabricant - mais cet onglet reste désespérément vide malgré mes efforts pour y faire apparaître la description de ce fabricant.

Quelqu'un peut-il m'aider ?

Merci

Pierre


Bonjour,

Avez vous également ajouté cette portion de code comme évoqué par mambé :

{if $manufacturers}
       {foreach from=$manufacturers item=manufacturers}
           {if $manufacturers.id_manufacturer eq $product->id_manufacturer}
{$manufacturers.name}
           {/if}
       {/foreach}
   {/if} 



Ensuite rie ne vous empêche de rajouter du contenu en complétant.

div id="idTab11" class="rte">{$manufacturers.name}



V++

Atch

Share this post


Link to post
Share on other sites

J'ai ajouté ce code (en fait c'est mon dernier essai car j'ai déjà de nombreuses tentatives ) :

{if id_manufacturer}{$product_manufacturer->name}{/if}
dans la liste des onglets

<!-- fabricant -->
{if id_manufacturer}

test OK


{foreach from=$manufacturer item=manufacturer}
{$manufacturer.description|escape:'htmlall':'UTF-8'}
{/foreach}
pour le contenu de l'onglet.

Le test sur id_manufacturer car {if $manufacturers} ne donne rien.

A +

Pierre

Share this post


Link to post
Share on other sites

Je viens de télécharger ce module. Cela ne convient pas.

De nombreux produits ont le même fabricant. En récupérant les données de ce fabricant dans un onglet, on utilise au mieux la BDD relationnelle. Le module de margoobsuleman est intéressant quand il s'agit d'ajouter une page html dont les infos ne sont pas dans la BDD.

A +

Voilà où j'en suis. Ce qui m'intéresserait serait de récupérer la description du fabricant dans l'onglet (son nom est le titre de l'onglet)

13051_71lfbk82hUDWiFcNTSME_t

Share this post


Link to post
Share on other sites

J'utilise ce code pour la description des fournisseurs :


{foreach from=$manufacturers item=manufacturers}
{if $manufacturers.id_manufacturer eq $product->id_manufacturer}
{$manufacturers.description}

{/if}
{/foreach}

Je n'utilise pas le if...

Par contre, avec un nom de fournisseur un peu long, la description et tous les contenus des onglets saute... Et ce, même en utilisant un truncate !
{$product_manufacturer->name|truncate:15|escape:'htmlall':'UTF-8'}

Share this post


Link to post
Share on other sites

Bonjour,

Merci pour l'aide et l'info sur la longueur du nom du fabricant.
Malheureusement, la description ne s'affiche toujours pas après avoir changé pour un nom plus court. Ne trouvant pas l'erreur, j'ai fini par copier-coller ton code...ça ne fonctionne toujours pas !

Je ne vois pas où est le problème. Comment 3 lignes de code qui "marchent" chez certains ne marchent pas ailleurs ?

Une idée ?


A +

Share this post


Link to post
Share on other sites

Ta version de prestashop peut-être ? Pour moi, ce code a été testé sur la 1.2.1, la 1.2.3 et la 1.2.4.

Sinon, au lieu de mettre ça :

{foreach from=$manufacturers item=manufacturers} {if $manufacturers.id_manufacturer eq $product->id_manufacturer}
{$manufacturers.description}
{/if} {/foreach}


teste ça :
{foreach from=$manufacturers item=manufacturers}
{$manufacturers.description}
{/foreach}

Le if ne doit pas retourner la bonne valeur, je ne vois que ça... Par contre, fait attention de toujours avoir un fournisseur par produit sinon ca risque de faire des trucs bizarre...

Au pire, teste juste :
{$manufacturers.description}

Je saurais pas trop dire à quoi sert le foreach... Mes capacités sont limités...

Share this post


Link to post
Share on other sites

Merci pour les conseils.

J'utilise encore la version 1.1. Là est peut-être la clé du problème ?
J'aurai du temps demain pour essayer ces nouvelles lignes de code.

Tous mes produits n'ont pas un fabricant déclaré, mais je fais un test sur l'existence du fabricant au niveau de cette ligne :
<!-- description and features -->
{if $product->description || $features || $accessories || $HOOK_PRODUCT_TAB || $attachments}

A +

Share this post


Link to post
Share on other sites

Désolé, mais après de nombreuses tentatives, ça ne fonctionne toujours pas.
Un indice : en essayant avec IE, j'obtiens "Array" à la place de la description du fabricant.

A +

Pierre

Share this post


Link to post
Share on other sites

Je suis à court d'idée... Je ne saurais t'aider plus sur ce sujet...

Share this post


Link to post
Share on other sites

Bonjour,
je suis tombé sur ce topic car j'aimerais aussi inclure un onglet fabricants. J'ai suivi à la lettre ce qu'il s'est écrit ici, mais dans mon cas, rien ne s'affiche... Voici le code provenant du fichier product.tpl, avec en commentaire les lignes ajoutées/modifiées :

<!-- description and features -->
//ajout de la variable $manufacturers
{if $product->description || $features || $accessories || $manufacturers || $HOOK_PRODUCT_TAB || $attachments}


       {if $product->description}{l s='More info'}{/if}
       {if $features}{l s='Data sheet'}{/if}
       {if isset($accessories) AND $accessories}{l s='Accessories'}{/if}
// rajout de la ligne fabricant
       {if $manufacturers}{l s='Manufacturers'}{/if}
       {$HOOK_PRODUCT_TAB}


   {if $product->description}
       <!-- full description -->
{$product->description}
   {/if}
   {if $features}
       <!-- product's features -->

       {foreach from=$features item=feature}
{$feature.name|escape:'htmlall':'UTF-8'}{l s=':'} {$feature.value|escape:'htmlall':'UTF-8'}
       {/foreach}

   {/if}
   {if isset($accessories) AND $accessories}
       <!-- accessories -->




                   {foreach from=$accessories item=accessory name=accessories_list}
                       {assign var='accessoryLink' value=$link->getProductLink($accessory.id_product, $accessory.link_rewrite, $accessory.category)}

{$accessory.name|truncate:22|escape:'htmlall':'UTF-8'}



{$accessory.description_short|strip_tags|truncate:100}



{displayWtPrice p=$accessory.price}
{l s='View'}
{l s='Add to cart'}


                   {/foreach}





   {/if}
// ajout de la description
   {if $manufacturers}
       {foreach from=$manufacturers item=manufacturers} {$manufacturers.description} {/foreach}
   {/if} 
   {$HOOK_PRODUCT_TAB_CONTENT}


{/if}



Si quelqu'un pourrait m'aider, d'avance merci :)

Share this post


Link to post
Share on other sites

Bonjour Sha-ka,

J'ai longtemps tourné en rond à cause de ça. La solution était d'activer le module blockmanufacturer. Si ce module est désactivé, il est impossible d'obtenir un onglet contenant les infos des fabricants.
Si tu ne veux pas que le bloc s'affiche, tout en profitant de l'activation du module, ajoute display: none; dans la première ligne de code du template blockmanufacturer.tpl :
<!-- Block manufacturers module -->



En espérant que ça t'aide

Pierre

Share this post


Link to post
Share on other sites

Bonsoir, merci beaucoup, c'est tout à fait ça. Par contre, quelle sont les variables pour la description et le logo ? j'ai essayé $manufacturers.pic, $manufacturers.logo et $manufacturers.description mais ce n'est pas ça. d'avance merci.

Share this post


Link to post
Share on other sites

Pour la description d'un fournisseur :

{$manufacturers.description}


ou

                {$manufacturers->description}


(le "div" est à titre d'exemple...")

Share this post


Link to post
Share on other sites

Merci pour la réponse. Hélas, je l'avais déjà essayé et ça ne semble pas marché. J'ai tenté avec -> à la place de . mais ça ne marche pas non plus.

Share this post


Link to post
Share on other sites

{if $manufacturers}
{foreach from=$manufacturers item=manufacturers}
{if $manufacturers.id_manufacturer eq $product->id_manufacturer}

{$manufacturers.description}

{/if}
{/foreach}
{/if}

Sur mon projet, ça fonctionne

Pierre

14703_obARZpmT2uzC1zdNNl4V_t

Share this post


Link to post
Share on other sites

Ok, merci, j'avais omis les {} dans le manufacturers description.
Ne me reste plus que le logo à afficher, le lien serait http://lesite.com/img/tmp/$? , j'ai tenté $manufacturers.pic et $manufacturers.logo (avec les {} ^^) mais ce n'est ni l'un ni l'autre...

Share this post


Link to post
Share on other sites

Les logos des fabricants sont dans le dossier /img/m/

Ils sont nommés par l'id du fabricant et la taille de l'image.

Share this post


Link to post
Share on other sites

Ok merci en effet. Une dernière question (désolé ^^) : comment récupérer l'id du fabricant ?
J'ai tenté {$manufacturers.id} ; {$manufacturers.ID} ; {$manufacturers.Id} mais je ne vois pas trop quoi d'autre essayer ?

Share this post


Link to post
Share on other sites

Comme on est dans la fiche produit, je pense que le plus simple est

$product->id_manufacturer

Share this post


Link to post
Share on other sites

Bonjour et bravo pour ce sujet qui m'interesse beaucoup
quelqu'un pourrait il me dire si la derniere solution evoquee
ici fonctionne ou si une autre solution meme payante existe
merci d'avance

Share this post


Link to post
Share on other sites

Bonjour je reviens vers ce post j'ai reussi a faire apparaitre
le fabricant mais je ne parviens pas a ajouter l'image quelqu'un
pourrais m'aider ?

Merci ca serait cool

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
Sign in to follow this  

×
×
  • Create New...

Important Information

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