Jump to content

[RESOLU] Cacher ou afficher attributs dans fiche produit


Recommended Posts

Bonjour à toutes et à tous,

 

Bon, un nouveau souci d'affichage dans ma fiche produit :

Mes produits ont plusieurs attributs, j'affiche toutes les déclinaisons sous forme de tableau dans ma fiche produit.

Du coup, l'affichage des différentes listes déroulantes à droite de ma photo pour sélectionner une déclinaison ne m'intéresse plus ... à une exception.

Je souhaite n'afficher qu'une seule information de type attribut, je connais l'ID du group mais impossible de n'afficher que celle-là.

 

Pour rappel, voici le code permettant d'afficher tous les différents attributs avec leurs valeurs :

 

<div id="attributes">
{foreach from=$groups key=id_attribute_group item=group}
 {if $group.attributes|@count}
  <fieldset class="attribute_fieldset">
   <label class="attribute_label" for="group_{$id_attribute_group|intval}">{$group.name|escape:'htmlall':'UTF-8'} :</label>
   {assign var="groupName" value="group_$id_attribute_group"}
   <div class="attribute_list">
   {if ($group.group_type == 'select')}
	<select name="{$groupName}" id="group_{$id_attribute_group|intval}" class="attribute_select" onchange="findCombination();getProductAttribute();{if $colors|@count > 0}$('#wrapResetImages').show('slow');{/if};">
	 {foreach from=$group.attributes key=id_attribute item=group_attribute}
	  <option value="{$id_attribute|intval}"{if (isset($smarty.get.$groupName) && $smarty.get.$groupName|intval == $id_attribute) || $group.default == $id_attribute} selected="selected"{/if} title="{$group_attribute|escape:'htmlall':'UTF-8'}">{$group_attribute|escape:'htmlall':'UTF-8'}</option>
	 {/foreach}
	</select>
   {elseif ($group.group_type == 'color')}
	<ul id="color_to_pick_list" class="clearfix">
	 {assign var="default_colorpicker" value=""}
	 {foreach from=$group.attributes key=id_attribute item=group_attribute}
	 <li{if $group.default == $id_attribute} class="selected"{/if}>
	  <a id="color_{$id_attribute|intval}" class="color_pick{if ($group.default == $id_attribute)} selected{/if}" style="background: {$colors.$id_attribute.value};" title="{$colors.$id_attribute.name}" onclick="colorPickerClick(this);getProductAttribute();{if $colors|@count > 0}$('#wrapResetImages').show('slow');{/if}">
	   {if file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}
		<img src="{$img_col_dir}{$id_attribute}.jpg" alt="{$colors.$id_attribute.name}" width="20" height="20" /><br>
	   {/if}
	  </a>
	 </li>
	 {if ($group.default == $id_attribute)}
	  {$default_colorpicker = $id_attribute}
	 {/if}
	 {/foreach}
	</ul>
	<input type="hidden" class="color_pick_hidden" name="{$groupName}" value="{$default_colorpicker}" />
   {elseif ($group.group_type == 'radio')}
	{foreach from=$group.attributes key=id_attribute item=group_attribute}
	 <input type="radio" class="attribute_radio" name="{$groupName}" value="{$id_attribute}" {if ($group.default == $id_attribute)} checked="checked"{/if} onclick="findCombination();getProductAttribute();{if $colors|@count > 0}$('#wrapResetImages').show('slow');{/if}">
	 {$group_attribute|escape:'htmlall':'UTF-8'}<br/>
	{/foreach}
   {/if}
   </div>
  </fieldset>
 {/if}
{/foreach}
</div>

 

Je ne suis pas développeur mais je bidouille comme je peux...

Merci de votre aide !

 

Config : Prestashop 1.5.3.1 en local

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

Bon ben en espérant que ça aidera quelqu'un, voici la solution que j'ai trouvé :

 

{if isset($groups)}
  {foreach from=$groups key=id_attribute_group item=group}
		  {if $group.attributes|@count}
		   {assign var="groupName" value="group_$id_attribute_group"}
		  {if $id_attribute_group eq 11} <span>{$group.name|escape:'htmlall':'UTF-8'} : {$aC.attribute|escape:'htmlall':'UTF-8'}</span>
			  {foreach from=$group.attributes key=id_attribute item=group_attribute}
			  {$group_attribute|escape:'htmlall':'UTF-8'}<br/>
			  {/foreach}
		  {/if}
	  {/if}
  {/foreach}
 {/if}

Link to comment
Share on other sites

  • 3 months later...

Bonjour,

 

Je tombe sur votre topic grâce à notre ami goog.

 

Je cherche pour ma part a supprimer l'affichage des attributs sur la page produit car c'est inutile dans mon cas.

 

Ce bout de code se trouve dans le fichier product.tpl, ligne 291

 

Puis-je supprimer ce bout de code pour ne plus afficher les attributs ?

 

edit: Après essai erreur de la page produit donc ça semble niet...

 

Dommage qu'il n'y ait pas de live edit pour les fiches produits.

 

Merci à vous

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

Bonjour lechapelier,

 

Info valable pour Prestashop 1.5.3.1 :

 

Il me semble que via le menu "Paramètres avancés" -> "Performance", encart "Fonctionnalités désactivables", vous pouvez désactiver les déclinaisons de produit. Du coup, pas besoin de supprimer du code, c'est géré par Prestashop.

 

Bonne continuation

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

Bonjour Oneday,

 

Je suis allé voir dans ces paramètres, je ne peux activer ou désactiver que les caractéristiques et ça ne change malheureusement rien.

 

J'utilise le module bloc navigation à facettes c'est pourquoi je pense que je ne peux pas désactiver les déclinaisons produits car déjà utilisé.

 

merci pour votre réponse.

 

Si vous avez d'autres suggestion n'hésitez pas.

Link to comment
Share on other sites

Bonjour lechapelier,

 

Je ne sais pas si l'utilisation de la navigation à facette engendre la non possibilité de désactivation des attributs. Un test simple serait de désactiver le module facette le temps de voir si l'option se dégrise.

L'élément qui me semble bloquant doit être la présence d'un produit avec attributs. Supprimez bien tous les attributs de produits existants et je pense que vous pourrez désactiver les attributs.

Si cela ne fonctionnait pas, je reviens à votre demande initiale : oui, je pense que vous pouvez supprimer le bout de code pour ne plus afficher les attributs.

 

Bonne continuation !

Link to comment
Share on other sites

Bonjour,

 

Le souci étant que j'ai besoin des attributs pour la navigation à facette (moteur de recherche par critères) mais je ne veux pas qu'il y ait un rappel dans la fiche produit de certains attributs qui sont inutiles comme la couleur par exemple.

 

Il faut que trouve une fonction pour masquer les attributs dans la fiche de vente car je pense comprendre que les attributs partent de la fiche de vente pour alimenter la navigation à facettes.

 

merci à vous.

Link to comment
Share on other sites

Dans ce cas-là, le code que j'ai affiché plus haut comme solution à mon problème devrait vous convenir, il permet de n'afficher que l'attribut que je souhaitais.

Le "11" correspond à l'id de mon attribut, reste à le remplacer par le vôtre.

{if $id_attribute_group eq 11}

 

Bon courage.

Link to comment
Share on other sites

Bonjour,

 

En effet il faudrait que je teste votre modification mais je ne sais pas lire le code, j'ai analysé le code de ces menus dans la limite de mes compétences et sur les fiches produits via firebug et j'ai remarqué un détail car affiché dans le même bloc que les attributs.

 

L'affichage des disponibilités produits est masqué avec cette fonction:

 

<p id="availability_statut" style="display: none;">

 

- N'est-ce pas plus simple d'utiliser cette méthode pour masquer ce que je ne veux pas afficher ?

 

Encore faut-il savoir ou et comment ajouter ce code, une fois créé je pense qu'il peut être utilisé individuellement pour chaque attribut en modifiant son ID bien sur.

 

Qu'en pensez-vous ?

 

Souhaitez-vous que j'ouvre un autre topic car je suis en train de le polluer.

 

cordialement.

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

Il s'agit de CSS mais je ne suis pas un spécialiste, désolé.

Effectivement, il faudrait peut-être ouvrir un nouveau topic, ce serait plus simple car votre sujet serait le principal.

 

Bon courage

Link to comment
Share on other sites

  • 1 month later...
  • 1 month later...

Hello,

 

Tu peux me dire où il est ce nouveau topic car ça m'interesse.J'ai le même défi : masquer de la fiche produit l'attribut qui m'y a conduit..

Merci !!

 

Merci pour votre participation Oneday.

 

Je vais créer un nouveau topic.

 

Au plaisir.

Link to comment
Share on other sites

  • 1 month later...

Bonjour,

 

Je sais que le topic est résolu mais j'ai le même soucis et je ne trouve pas de solution. J'ai ouvert un topic ici : http://www.prestashop.com/forums/topic/276463-masquer-un-attribut-et-afficher-la-quantit%C3%A9-sur-la-fiche-produit/

 

Je souhaite masquer les attribut du groupe 2 (créé uniquement pour la navigation à facette).

J'ai essayé avec ce bout de code (indiqué par <---------) que j'ai inséré dans product.tpl

<fieldset class="attribute_fieldset">
							{if $id_attribute_group eq 2}style="display: none;"{/if}    <-----------
							<label class="attribute_label" for="group_{$id_attribute_group|intval}">{$group.name|escape:'htmlall':'UTF-8'} :</label>
							{assign var="groupName" value="group_$id_attribute_group"}

Mais ça ne marche pas. Help !!!
Merci d'avance.

Link to comment
Share on other sites

  • 7 months later...

j'ai trouvé la solution:

 

allez dans le répertoire www/themes/votreTheme/product.tpl

ensuite allez à la ligne 305 ( en dessous du commentaires <!-- attributes -->)

remplacer le code :

<div id="attributes">
{foreach from=$groups key=id_attribute_group item=group}
{if $group.attributes|@count }
par 
<div id="attributes">
{foreach from=$groups key=id_attribute_group item=group}
{if $group.attributes|@count && ($id_attribute_group|intval eq 2 OR $id_attribute_group|intval eq 4)}
 
"2" et "4" étant les id des groupes d'attribut que vous voulez voir afficher.
Chez moi "2" -> Couleur et "4" -> La taille
 
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...