Jump to content

Affichage des déclinaisons dans les catégories


Recommended Posts

Bonsoir,

 

J'ai trouvé un bout de code très sympathique (via devoox) qui affiche ainsi la déclinaison que vous désirez dans vos catégories.

 

Exemple avec mon attribut "Taille", qui a lle numéro du groupe d'attributs n°4 :

 

Dans classes/Category.php :

 

- Vers la ligne 421, vous devez voir :

$result = Db::getInstance()->ExecuteS($sql) ;

 

- Copiez juste en dessous le code ci dessous en prenant soin de remplacer le groupe ID :

 

/*  Début du script    */

       /*C'est ce numéro qui doit être modifié par l'ID de votre groupe */
       $numero_du_groupe = 4;

       /* Cette boucle sert à ajouter au produit l'attribut de taille */
       for ($i=0;$i<=count($result);$i++){

           $nouvelle_requette =  'SELECT al.name
           FROM '._DB_PREFIX_.'product_attribute pa
           JOIN '._DB_PREFIX_.'product_attribute_combination pac ON pac.id_product_attribute = pa.id_product_attribute
           JOIN '._DB_PREFIX_.'attribute_lang al ON (al.id_attribute = pac.id_attribute AND al.id_lang = '.intval($id_lang).')
           JOIN '._DB_PREFIX_.'attribute a ON (a.id_attribute_group = '.$numero_du_groupe.' AND a.id_attribute = pac.id_attribute)
           WHERE pa.id_product = '.$result[$i]['id_product'].' AND pa.quantity >= 1';
           $attributs = Db::getInstance()->ExecuteS($nouvelle_requette);
           if($attributs){
               foreach($attributs as $ajouter_au_tableau){
                   $result[$i]['attribute'][]= $ajouter_au_tableau['name'];

               }
           }
       }
/*  Fin du script  */

 

Dans themes/votretheme/product-list.tpl :

 

- Placez où vous le souhaitez :


if $product.attribute}

Taille dispo / Couleur dispo (ce que vous voulez hein ):

	{foreach from=$product.attribute item=attribute name=attribute}
		{$attribute}
	{/foreach}

{/if}

 

Ce code fonctionne sur les 1.3 de Presta.

 

Il fonctionne très très bien sur tous mes produits en revanche, j'ai un petit problème sur certains.

 

En effet, j'ai plusieurs tailles XS puisque j'ai du Noir en XS, Rose en XS, ect.... Donc ce petit bout de code m'affiche ainsi : XS XS XS S S S sur certains produits.

 

Sauriez-vous comment modifier cette boucle pour n'affichez qu'une seule fois la déclinaison ?

 

Merci :)

Link to comment
Share on other sites

Un petit up ? :)

 

Il semblerait donc que ce bout de donne prenne toutes les combinaisons donc 3 fois XS (puisque XS en plusieurs couleurs ect).

 

Comment faire pour n'avoir que les déclinaisons de tailles et non toutes les combinaisons ?

 

Merci !

Link to comment
Share on other sites

Bon, après juste une semaine de recherche (...), j'ai déjà réussi un truc : à afficher que le premier attribut donc la taille XS (il en reste juste 5 à afficher :))

 

Grace à :

 

$result[$i]['attribute']['name']= $ajouter_au_tableau['name'];

 

En gros, je voudrais que le nom des attributs dans "Taille" à savoir : XS, S, M & co

 

Une idée ?

Link to comment
Share on other sites

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