2010-06-25 6 views
2

Comment obtenir la catégorie de haut niveau actuelle (active) et ses sous-catégories?Obtenir la catégorie de haut niveau actuelle avec Magento

Je ne veux pas la catégorie racine, juste la catégorie de niveau supérieur et toutes ses sous-catégories.

Si je suis dans la catégorie des femmes, par exemple:

Women 
- Apparel 
-- Shirts 
-- Pants 
- Accessories 
-- Handbags 
-- Jewelry 

Même si je suis à la recherche chemises, je voudrais l'arbre de la catégorie restent les mêmes.

Toute aide serait grandement appréciée.

Répondre

2

Pour donner la réponse précise à votre question précise « comment obtenir la catégorie actuelle et ses sous-catégories »:

Pour récupérer la catégorie actuelle:

$_currentCategory = $this->getCurrentCategory(); 

Pour récupérer ses sous-catégories:

$_categories = $this->getCurrentChildCategories(); 

Les éléments ci-dessus fonctionnent dans un catalogue/bloc de navigation.

Maintenant, pour obtenir le rendu dont vous parlez, je pense qu'un simple bloc de navigation avec une bonne utilisation de CSS ferait l'affaire.

  1. Créer un bloc de navigation, disons que dans votre colonne de gauche:

  2. Créez le fichier de modèle dans la structure de votre répertoire de modèle. Dans notre exemple: /template/catalog/navigation/thetemplate.phtml

  3. Utilisez ce code pour dessiner la structure entière catégories/sous-catégories, sans les tracas de modifier le code (voir [1] à la fin du poste. ...)

  4. Inspectez le code généré/CSS et vous verrez qu'il y a tous les pointeurs CSS nécessaires (levelX, active ...) vous permettant d'afficher ou de masquer des parties de l'arbre des catégories et de ne montrer que les pièces que vous aimez.

Conclusion: CSS est suffisante pour faire ce que vous voulez faire :)

[1] Code:

<?php $_menu = ''?> 
<?php foreach ($this->getStoreCategories() as $_category): ?> 
<?php $_menu .= $this->drawItem($_category) ?> 
<?php endforeach ?> 
<?php if ($_menu): ?> 
<div class="THECSS-CONTAINER"> 
<ul id="THECSS"> 
<?php echo $_menu; ?> 
</ul> 
</div> 
<?php endif; ?> 
+0

j'ai essayé exactement cela et il me n'a pas fonctionné pour b/ci était en utilisant 'visibility' pas 'display'. je vous remercie beaucoup de m'avoir permis de revoir le css de celui-ci. vous venez de me sauver un mal de tête massif – Booski

Questions connexes