Coal_Sa Posted July 9, 2018 Share Posted July 9, 2018 Bonjour, j'utilise TM Megamenu, prestashop 1.6.1.6, J'ajoute mes catégories dans une colonne du menu via l'admin. Or ma catégorie à trois niveaux: Categorie - sous-catégorie 1 - sous-catégorie 2 Comment limiter l'affichage des sous-catégories à un seul niveau ? (ne pas afficher la sous-catégorie 2) Je cherche depuis un moment mais je ne trouve pas comment, Merci pour votre aide. Link to comment Share on other sites More sharing options...
Performance Agency Posted July 9, 2018 Share Posted July 9, 2018 Bonjour, Je ne sais pas si vous pouvez le gérer ou non depuis votre menu, en tout les cas, vous pourrez gérer ceci en CSS en ciblant les li correspondants directement. Pouvez vous envoyer un lien vers votre boutique que je regarde svp? Cordialement, Link to comment Share on other sites More sharing options...
Coal_Sa Posted July 9, 2018 Author Share Posted July 9, 2018 (edited) Oui je cherchais comment le limiter directement en php... le site est visible ici https://watches.alco.ch ci dessous un exemple de subcategories 2nd niveau, je ne voulais garder que le 1er niveau Edited July 9, 2018 by Coal_Sa (see edit history) Link to comment Share on other sites More sharing options...
Performance Agency Posted July 9, 2018 Share Posted July 9, 2018 Il me faudrait le code php de ton module pour cela, ca doit être possible directement depuis le fichier a la racine de ton module. Sinon il restera tjrs le CSS Link to comment Share on other sites More sharing options...
Coal_Sa Posted July 9, 2018 Author Share Posted July 9, 2018 Le voilà, merci ca semble simple mais je ne trouve pas. la même chose est possible pour le menu d'origine, donc ca devrais etre possible, j'espère tmmegamenu.php Link to comment Share on other sites More sharing options...
Coal_Sa Posted July 9, 2018 Author Share Posted July 9, 2018 A la ligne 1441 j'ai : foreach ($categories as $category) { if ($category['level_depth'] > 1) { est ce que c'est cela qui definit le tree des subacategories que le menu affiche ? je suis un brin largué Link to comment Share on other sites More sharing options...
Performance Agency Posted July 9, 2018 Share Posted July 9, 2018 En effet ! Il faut donc rajouter la condition : &&($category['level_depth'] < 3) A la ligne 1453 Cordialement, Link to comment Share on other sites More sharing options...
Coal_Sa Posted July 9, 2018 Author Share Posted July 9, 2018 j'ai essayé comme cela : if (isset($category['children']) &&($category['level_depth'] < 3)) mais ca me masque toutes les subcategories il reste que les categories niveau 1 Link to comment Share on other sites More sharing options...
Coal_Sa Posted July 9, 2018 Author Share Posted July 9, 2018 j'ai essayé en changeant: if (isset($category['children']) && !empty($category['children'])) { $html .= '<ul>'; $html .= $this->generateCategoriesMenu($category['children'], 1); $html .= '</ul>'; } par if (isset($category['children']) &&($category['level_depth'] < 3)) { $html .= '<ul>'; $html .= $this->generateCategoriesMenu($category['children'], 1); $html .= '</ul>'; } mais ca me masque juste toutes les subcategories est ce que je fais une erreur ? désolé suis pas pro avec php Link to comment Share on other sites More sharing options...
Coal_Sa Posted July 9, 2018 Author Share Posted July 9, 2018 (edited) OK j'ai trouvé: pour masquer mes subcatégories avec TM Mega Menu, cela marche comme voulu avec: /***** ****** Get all categories items with nesting ****** $categories = category id ****** return: nested list with all categories *****/ protected function generateCategoriesMenu($categories) { $html = ''; foreach ($categories as $category) { if ($category['level_depth'] > 1) { $cat = new Category($category['id_category']); $link = Tools::HtmlEntitiesUTF8($cat->getLink()); } else { $link = $this->context->link->getPageLink('index'); } $html .= '<li'.(($this->page_name == 'category' && (int)Tools::getValue('id_category') == (int)$category['id_category']) ? ' class="sfHoverForce category"' : ' class="category"').'>'; $html .= '<a href="'.$link.'" title="'.$category['name'].'">'.$category['name'].'</a>'; if (isset($category['children']) &&($category['level_depth'] < 4)) { $html .= '<ul>'; $html .= $this->generateCategoriesMenu($category['children'], 1); $html .= '</ul>'; } $html .= '</li>'; } return $html; } Enorme merci à Performance Agency pour la solution. Faut que j'apprenne à m'exprimer mon tree étais level depth 4, pas 3 Edited July 9, 2018 by Coal_Sa (see edit history) Link to comment Share on other sites More sharing options...
Performance Agency Posted July 10, 2018 Share Posted July 10, 2018 Ah en effet j'avais oublié un level ^^ Content d'avoir pu t'aider! Cordialement, 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