Jump to content

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

Link to comment
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}

Link to comment
Share on other sites

  • 2 months later...

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 ?

Link to comment
Share on other sites

  • 1 month later...

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

Link to comment
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

Link to comment
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
Link to comment
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

Link to comment
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'}
Link to comment
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 +

Link to comment
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...
Link to comment
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 +

Link to comment
Share on other sites

  • 5 weeks later...

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 :)

Link to comment
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
Link to comment
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.

Link to comment
Share on other sites

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