sjohanna Posted July 8, 2010 Share Posted July 8, 2010 Bonjour,Je sais que ce que je demande dans le titre est possible très simplement en sélectionnant 2 catégories pour le produits: la catégorie principale et la sous-catégorie.Mais celle solution ne me convient pas, car il me faut également afficher le titre des sous-catégories entre les produits puisque c'est celle page qui servira aux gens à commander les produits (moins de clicks).Pourriez-vous m'aider ?La page ressemblerait à ça:Catégorie: PORTABLE (PAGE EN QUESTION)Sous-catégorie: DELLListe de tous les produits DELLSous-catégorie: MACListe de tous les produits MACUne idée ??J'ai essayé de modifier les fichiers category.php et category.tpl mais je n'arrive pas à obtenir ce résultat pour le moment.Merci !Johanna Link to comment Share on other sites More sharing options...
sjohanna Posted July 9, 2010 Author Share Posted July 9, 2010 J'ai vu que d'autres personnes seraient intéressé par une solution ?Personne n'a une idée, ou au moins une direction vers laquelle je pourrai chercher ? (Du genre un module disponible que je pourrai personnalisé ?) Ou bien est-ce trop compliqué ?Merci !Johanna Link to comment Share on other sites More sharing options...
jmaumene Posted July 9, 2010 Share Posted July 9, 2010 Ca ne vas pas si tu coche les deux catégories dans la fiche produit ? Link to comment Share on other sites More sharing options...
sjohanna Posted July 9, 2010 Author Share Posted July 9, 2010 Si mais je n'ai pas les titres des sous-categories qui s'affichent entre les produits.Il me faut:PAGE/CATEGORIE PORTABLE DELLListe de tous les produits DELLMACListe de tous les produits MACet non pas:PAGE/CATEGORIE PORTABLE Liste de tous les produits DELLListe de tous les produits MAC Link to comment Share on other sites More sharing options...
jmaumene Posted July 9, 2010 Share Posted July 9, 2010 ah pardon, je n'avais pas compris,ou il faut boucler récursivement sur les catégories pour enregistrer tous les produits, et les afficher; La je n'ai pas le temps de regarder, désolé Link to comment Share on other sites More sharing options...
sjohanna Posted July 10, 2010 Author Share Posted July 10, 2010 Merci pour la reponse... Il y a donc de l'espoir !Si jamais tu as un peu plus de temps, cela me serait vraiment tres utile... Meme un debut d'idee et je pourrai tjs essayer de terminer...Johanna Link to comment Share on other sites More sharing options...
sjohanna Posted August 17, 2010 Author Share Posted August 17, 2010 Bonjour, c'est encore moi.Je n'ai toujours pas résolu mon problème, par contre, j'ai fait des impressions écrans pour expliquer ce que je cherche à faire.Je serai très très très reconnaissant à celui qui m'aidera à trouver la solution.... le site doit être mis en ligne sous peu, et c'est vraiment une fonctionnalité importante...Avec davantage de recherche, j'ai vu que ce n'était pas si simple que cela.Plutôt que d'attribuer les produits dans la Sous-Catégorie et la Catégorie parente, je pense qu'il faudrait seulement afficher les sous-catégories et leurs produits directement sur la page Parente...Merci d'avance... Link to comment Share on other sites More sharing options...
sjohanna Posted September 1, 2010 Author Share Posted September 1, 2010 Toujours personne n'a une idee??C'est vraiment important... Le site va être bientôt en ligne, et c'est une fonctionnalités importante.Je sais que cela nécessite peut-être plus qu'une simple astuce, mais ce serait cool de me mettre sur la voie Merci ! Link to comment Share on other sites More sharing options...
jmaumene Posted September 1, 2010 Share Posted September 1, 2010 Rapidement :category.php a la racin, ligne 60 : foreach ( $subCategory as $sub_cat) { $souscat[$sub_cat['id_category']] = $category(intval($cookie->id_lang),true,$sub_cat['id_category']) } $smarty->assign('sousCategorie',$souscat); Class / Category.php ligne 301 public function getSubCategory($id_lang,$active = true,$id_category = $this->id) { remplacer $this->id par $id_category } a corriger, mais c est le principe Link to comment Share on other sites More sharing options...
sjohanna Posted September 1, 2010 Author Share Posted September 1, 2010 Merci beaucoup pour ta réponse.Malheureusement, je crois que je ne suis pas assez bonne pour faire marcher les bouts de codes que tu m'as donné.Je comprendrai si tu n'as pas beaucoup de temps, mais j'apprécierai chaque minute que tu pourras m'accorder.Les premières lignes de codes que tu me donnes... doivent-elles remplacer qqch ou s'insérer entre: if (Db::getInstance()->numRows()) $smarty->assign('subcategories', $subCategories); et if ($category->id != 1) { $nbProducts = $category->getProducts(NULL, NULL, NULL, $orderBy, $orderWay, true); include(dirname(__FILE__).'/pagination.php'); $smarty->assign('nb_products', $nbProducts); $cat_products = $category->getProducts(intval($cookie->id_lang), intval($p), intval($n), $orderBy, $orderWay); } Quand j'insère les lignes entre les deux, sans rien changer, la page "categorie" ne s'affiche même plus sur le site.J'ai essayé de voir s'il y avait un problème dans le code mais je ne m'y connais pas assez malheureusement.Merci ! Link to comment Share on other sites More sharing options...
jmaumene Posted September 1, 2010 Share Posted September 1, 2010 C'est juste pour aider "une astuce" le "a corriger, mais c'est le principe" veut dire que le code n'est pas fonctionnel, il n'est pas complet, je ne l ai pas testé et il manque quelques lignes, il n y a pas la partie affichage qui vas se trouver dans le category.tpl Link to comment Share on other sites More sharing options...
sjohanna Posted September 2, 2010 Author Share Posted September 2, 2010 Fair enough...Je crois que je ne suis pas assez bonne pour suivre une astuce, je vais donc abandonner...Merci quand meme ! Link to comment Share on other sites More sharing options...
jmaumene Posted September 2, 2010 Share Posted September 2, 2010 Désolé, j'avais lu, "une simple astuce" au lieu de "plus qu’une simple astuce".- Quels sont vos connaissances ? Savez vous modifier un thème, pour utiliser d'autres variables ?- Je pense qu'un développeur pourrait faire cette modification pour quelques dizaines d'euros. Link to comment Share on other sites More sharing options...
sjohanna Posted September 2, 2010 Author Share Posted September 2, 2010 Mes connaissances se limitent à tout ce qui est CSS et design.Cela veut dire que je sais reconnaître des éléments dans des fichiers PHP et Smarty, donc je bidouille pas mal pour arriver à mes fins, mais je ne peux pas vraiment créer du code moi-même.Je cherche des modules, des gens sur le forum qui ont eu le même problème que moi, mais là, ça ne suffit pas.Je serai heureuse de payer qqun une dizaine d'euros pour cette fonctionnalités. Pourrais-tu le faire toi-même ? Ou connaîs-tu qqn qui ne me chargerait pas pour 2h de travail ?Merci !Johanna Link to comment Share on other sites More sharing options...
cmarchand Posted September 15, 2010 Share Posted September 15, 2010 Up pour ce post, la solution m'intéresse aussi, mais je n'ai pas réussi à mettre en œuvre le début de solution proposé.Un peu d'aide svp ? Link to comment Share on other sites More sharing options...
kazikaze Posted September 17, 2010 Share Posted September 17, 2010 Bonjour,Je suis également intéressé par la solution à ce problème !Steph. Link to comment Share on other sites More sharing options...
L.L. Posted November 26, 2010 Share Posted November 26, 2010 Bonjour!Je recherche également une solution à cette question!Quelqu'un aurait-il un peu de temps de nous indiquer les codes à changer dans categoty.php et dans category.tpl?Merci d'avance!! Link to comment Share on other sites More sharing options...
Matthieu Brunet Posted June 29, 2011 Share Posted June 29, 2011 J'exume ce vieux thread, car j'ai la même question, mais sous PS 1.4.2.J'ai donc copié le CategoryController dans override, et j'ai essayé ce code : foreach($subCategories as $subCategory) { $cat = new Category($subCategory['id_category'], self::$cookie->id_lang); $subProducts[$subCategory['id_category']] = $cat->getProducts(NULL, NULL, NULL, $this->orderBy, $this->orderWay); } self::$smarty->assign('subProducts', $subProducts); juste après la recherche des sous catégories (vers la ligne 108)Ensuite, j'essaye d'afficher le contenu dans le template, mais ça ne fonctionne pas. J'ai lancé le debug smarty, qui m'indique que les lignes de mon tableau $subProducts sont vides (mais elles sont bien créées avec l'id de la sous catégorie comme clef).Donc je suppose que c'est la fonction getProducts qui ne marche pas dans ce contexte...Une idée de pourquoi ?Merci. Link to comment Share on other sites More sharing options...
Matthieu Brunet Posted June 30, 2011 Share Posted June 30, 2011 J'ai trouvé ! En fait, mon code était bon, c'est juste que je mettais pas les bons paramètres à getProducts. Le deuxième et troisième paramètres sont là pour indiquer le LIMIT de la requête. Ils sont calculés par la fonction pagination. Voici donc le bon code : $subProducts = Array(); // le tableau dans lequel on va mettre les produits trouvés foreach($subCategories as $subCategory) { // on fait le tour des sous catégories $cat = new Category((int)$subCategory['id_category'], (int)(self::$cookie->id_lang)); // on instancie la catégorie avec son numéro $nbSubProducts = $cat->getProducts(NULL, NULL, NULL, $this->orderBy, $this->orderWay, true); // on compte le nombre de produit contenus dans cette catégorie $this->pagination((int)$nbSubProducts); // on calcul la pagination $subProducts[$subCategory['id_category']] = $cat->getProducts((int)(self::$cookie->id_lang), (int)($this->p), (int)($this->n), $this->orderBy, $this->orderWay); // on recherche les produits on fonction de la pagination } self::$smarty->assign('subProducts', $subProducts); // on assigne le résultat au template J'ai personnellement ajouté ce code dans CategoryController, mais dans le dossier override, au niveau de la ligne 134 à l'intérieur du if(subCategories)Ensuite j'utilise ça pour afficher les produits des sous catégories dans des onglets jqueryui. Du coup, je ne met aucun produit dans la catégorie, mais tous dans la sous catégorie, et on passe de l'une à l'autre avec les onglets.Je vous donne pas tout le code, mais en gros, dans le template, ça donne ça : {foreach from=$subcategories item=subcategory} {$subcategory.name|escape:'htmlall':'UTF-8'} {/foreach} {foreach from=$subProducts item=subproduct key=id} {include file="$tpl_dir./product-compare.tpl"} {include file="$tpl_dir./product-sort.tpl"} {include file="$tpl_dir./product-list.tpl" products=$subproduct} {include file="$tpl_dir./product-compare.tpl"} {include file="$tpl_dir./pagination.tpl"} {/foreach} Et quand même, ça marche rudement bien. Sans avoir jamais rien codé sous PS, j'ai pu analyser le code et retrouver mes petits en quelques heures. Link to comment Share on other sites More sharing options...
hulk Posted December 5, 2011 Share Posted December 5, 2011 bonjour Matthieu je voulais faire presque la même chose: je veux afficher quelques produits pour chaque sous-catégories juste au dessous du nom CAT MERE SOUS-CAT1 -produit1 -produit2 -produit3 SOUS-CAT2 -produit1 -produit2 -produit3 SOUS-CAT3 -produit1 -produit2 -produit3 j'ai ajouter ce bout de code dans le fichier classes/category.php L480 foreach ($result AS &$row) { /*debut code ajoute*/ $subC=new Category($row['id_category']); $row['nbProducts']=$subC->getProducts((int)($cookie->id_lang),NULL,3,$this->orderBy, $this->orderWay, true); $row['products']=$subC->getProducts((int)($cookie->id_lang),NULL,3,$this->orderBy, $this->orderWay); /*fin code ajoute;*/ $row['id_image'] = (file_exists(_PS_CAT_IMG_DIR_.$row['id_category'].'.jpg')) ? (int)($row['id_category']) : Language::getIsoById($id_lang).'-default'; $row['legend'] = 'no picture'; } et dans le fichier category.tpl j'ai ajouter ça pour l'afficher {if $subcategory.nbProducts>0 } {include file=$tpl_dir./product-list.tpl products=$subcategory.products} {/if} </li> {/if} en FO je n'ai que les images et les prix mais pas les noms et les description courtes quelqu'un à une idée pourquoi le requête ne retourne pas ni les noms ni les descriptions des produits? je travaille avec la version 1.4.5.1 Link to comment Share on other sites More sharing options...
Matthieu Brunet Posted December 5, 2011 Share Posted December 5, 2011 D'abord, tu devrais faire ça dans le dossier override, sinon, à la prochaine mise à jour de PS, tu vas être embêté. Ensuite, je ne comprends pas pourquoi tu n'as pas repris mon code tel quel ? Vu que le mien fonctionne, tu devrais partir de celui-là, puis éventuellement remettre les limites pour en sélectionner que 3... Link to comment Share on other sites More sharing options...
hulk Posted December 5, 2011 Share Posted December 5, 2011 Merci Matthieu pour le conseil en faite c'est ce que j'ai fait à l'aide de ce post et j'ai bien utilisé le dossier override et maintenant ça marche nickel. Link to comment Share on other sites More sharing options...
4e75 Posted January 4, 2012 Share Posted January 4, 2012 Hello, Pour ceux qui souhaite afficher les Produits des Sous-Categories dans la page Categorie voici une modif qui fonctionne sur Prestashop 1.4.6.2 : Modification du fichier controllers/CategoryContraller.php en dessous de en ligne 152 : if (isset(self::$cookie->id_compare)) self::$smarty->assign('compareProducts', CompareProduct::getCompareProducts((int)self::$cookie->id_compare)); Ajouter : $subProducts = array(); foreach($subCategories as $subCat) { $tmp_cat_obj = new Category($subCat['id_category'], self::$cookie->id_lang); $subProducts[$subCat['id_category']] = $tmp_cat_obj->getProducts(intval(self::$cookie->id_lang), (int)($this->p), (int)($this->n), $this->orderBy, $this->orderWay); } self::$smarty->assign('subProducts', $subProducts); Puis dans le fichier category.tpl de votre theme : {foreach from=$subcategories item=subcat name=subcategories} <h2>{$subcat.name|upper}</h2> {if isset($subProducts[$subcat.id_category][0]['name'])} {include file="$tpl_dir./product-list.tpl" products=$subProducts[$subcat.id_category]} {include file="$tpl_dir./pagination.tpl"} {elseif !isset($subProducts[$subcat.id_category][0]['name'])} <p class="warning">{l s='There are no products in this category.'}</p> {/if} {/foreach} si ca aide qq'un qui cherche ! Cordialement. Link to comment Share on other sites More sharing options...
floxator Posted February 12, 2012 Share Posted February 12, 2012 Bonjour Matthieu, J'ai utiliser ton code qui fonctionne parfaitement. Donc merci pour ce partage. Seul petit hic je n'ai pas le nom de chaque sous-catégories mais 3 fois le même nom de ma dernière catégories. (j'ai 3 sous catégories à chacune de mes catégories). Pourtant j'appelle le nom de la sous-catégorie ($subcategory.name) En fait si je créer une deuxième {foreach from=$subcategories item=subcategory} il m'appelle bien mes 3 sous catégories mais sans itération (il me mets les 3 les une sur les autres dans chaques "titre" de la sous cat. La solution est surement simple ? Merci de ta réponse. En fait j'ai pu lire ta réponse à Hulk du coup tout roule. Merci pour cette solution bien sympatique. Link to comment Share on other sites More sharing options...
cocomiaw Posted April 25, 2012 Share Posted April 25, 2012 Bonjour, ce sujet est ce que je recherche, mais est -il possible de la faire sous prestashop 1.3.7 car je n'ai pas de dossier override ? quelqu'un aurait la solution svp? Link to comment Share on other sites More sharing options...
cocomiaw Posted April 25, 2012 Share Posted April 25, 2012 Bonjour, ce sujet est ce que je recherche, mais est -il possible de la faire sous prestashop 1.3.7 car je n'ai pas de dossier override ? quelqu'un aurait la solution svp? Link to comment Share on other sites More sharing options...
cocomiaw Posted April 30, 2012 Share Posted April 30, 2012 ou ou quelqu'un pourrait m'aider Link to comment Share on other sites More sharing options...
developette Posted May 8, 2012 Share Posted May 8, 2012 t'a trouvé? Link to comment Share on other sites More sharing options...
cocomiaw Posted May 9, 2012 Share Posted May 9, 2012 Non je n'ai toujours pas trouvé, aurrais-tu une solution. Merci Link to comment Share on other sites More sharing options...
Miryam68 Posted October 15, 2012 Share Posted October 15, 2012 Hello, Pour ceux qui souhaite afficher les Produits des Sous-Categories dans la page Categorie voici une modif qui fonctionne sur Prestashop 1.4.6.2 : Modification du fichier controllers/CategoryContraller.php en dessous de en ligne 152 : if (isset(self::$cookie->id_compare)) self::$smarty->assign('compareProducts', CompareProduct::getCompareProducts((int)self::$cookie->id_compare)); Ajouter : $subProducts = array(); foreach($subCategories as $subCat) { $tmp_cat_obj = new Category($subCat['id_category'], self::$cookie->id_lang); $subProducts[$subCat['id_category']] = $tmp_cat_obj->getProducts(intval(self::$cookie->id_lang), (int)($this->p), (int)($this->n), $this->orderBy, $this->orderWay); } self::$smarty->assign('subProducts', $subProducts); Puis dans le fichier category.tpl de votre theme : {foreach from=$subcategories item=subcat name=subcategories} <h2>{$subcat.name|upper}</h2>{if isset($subProducts[$subcat.id_category][0]['name'])} {include file="$tpl_dir./product-list.tpl" products=$subProducts[$subcat.id_category]} {include file="$tpl_dir./pagination.tpl"}{elseif !isset($subProducts[$subcat.id_category][0]['name'])} <p class="warning">{l s='There are no products in this category.'}</p>{/if} {/foreach} si ca aide qq'un qui cherche ! Cordialement. La première partie je l'ai ajouté au php mais la deuxième partie tpl , j'ai beau essayer , modifier différemment ça ne marche pas Link to comment Share on other sites More sharing options...
webice Posted January 12, 2017 Share Posted January 12, 2017 Hello, Voici un petit tuto, ça à fonctionné pour moi : http://www.ts-services.com/affichage-ou-non-des-produits-dans-les-categories/ A bientôt Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now