2010-11-21 25 views
0

Très bien, donc j'ai travaillé avec Magento pendant environ 1-2 mois, pas trop excité à ce sujet, mais j'essaie toujours d'apprendre.Magento 'perd' catégories en entrant dans une sous-catégorie

J'ai réussi à installer un joli thème Template pour quelqu'un, et je suis en train de le peaufiner pour le faire fonctionner correctement. Mais, j'ai un problème un peu étrange ... tout d'abord, mon modèle n'affiche pas les catégories racine dans le haut nav, liste juste les premières sous-catégories. C'est bon.

Je vais dans une sous-catégorie, et je peux voir les sous-catégories dans le bloc de gauche. Mais lorsque je clique sur l'une des sous-sous-catégories, le bloc de gauche n'affiche aucune catégorie.

Je peux comprendre qu'il s'agit d'un comportement par défaut, car la sous-sous-catégorie dans laquelle je suis n'a pas de sous-sous-sous-catégories. Mais, je me demandais, est-ce que quelqu'un sait d'un bon moyen, quand vous êtes dans une catégorie petit-enfant, de montrer toutes les catégories dans la base principale?

EX: 
Default Category (Not seen) 
    Cat 1 (Shown in top nav) 
    Sub Cat 1 
    Sub Cat 2 
    Cat 2 (Shown in top nav) 
    Sub Cat 1 
    Sub Cat 2 
    Cat 3 (Shown in top nav) 
    Sub Cat 1 
    Sub Cat 2 

Dites par exemple je clique sur Sub Cat 2, dans le Cat 3 emplacement, aurais-je afficher magento tous les enfants du 2e niveau? Dans cet exemple, le Cat 3 serait montré, avec toutes ses sous-catégories aussi, presque comme si j'avais cliqué sur Cat 3.

J'espère que je l'ai bien expliqué, je suis aussi confus avec Magento que la personne suivante ...

(Voici le bit avant la boucle foreach pour écrire les catégories dans mon fichier modèle.) De toute façon pour lancer une sorte de deal getParent() ici, donc il charge toujours la catégorie 'top'?

<?php $_categories=$this->getCurrentChildCategories(); ?> 

<?php $_count = is_array($_categories)?count($_categories):$_categories->count(); ?> 

<?php if($_count): ?> 

Répondre

0

Il y a un vertical navigation extension qui vous donne plus de choix par rapport à ce qui est affiché. Il n'a pas le comportement exact que vous décrivez, mais il est un pas dans la bonne direction et vous pouvez le trouver plus facile à modifier que de trouver votre propre méthode entièrement.

0

L'idée du bloc catégorie de gauche est d'afficher les catégories enfants de la catégorie actuelle. On dirait que vous voulez un menu plus statique qui montre toujours le même arbre de catégorie. C'est exactement ce que fait la navigation du haut, donc vous pouvez simplement copier le code à partir de là, et l'utiliser comme un bloc de gauche. Il a même des classes CSS actives, vous pouvez donc le styler pour réduire/développer des sous-catégories basées sur la catégorie active.

2

Ok. J'ai jeté un coup d'oeil aux deux réponses fournies, cependant, aucun d'entre eux n'est allé dans la direction que je regardais.

Ils étaient bons dans les deux eux-mêmes, cependant, je suis tombé sur quelque chose qui m'a donné une meilleure idée, et je programmé cette snippy:

// Get the current category's path, in array. 
// Ex: [0] => '20', [1] => '4' 
$_categorypath = $this->getCurrentCategoryPath(); 

// Use Mage to get a requested Category from the category path from above. 
// (The last int in the array is the top-most category, so size-1 gets last int id) 
$_parent_category = Mage::getModel('catalog/category')->load($_categorypath[count($_categorypath)-1]); 

// Call the children categories from the loaded category 
$_categories=$_parent_category->getChildrenCategories(); 

// Follow the rest of the loop... Success! No "Current/Active" handler yet.. 
$_count = is_array($_categories)?count($_categories):$_categories->count(); 

if($_count): 
// (Run your foreach code here, complete with html formatting) 

J'espère que cela aide quelqu'un d'autre à l'avenir, qui cherche une fonctionnalité similaire.

+0

Vous voulez donc un menu avec des catégories 'soeur', au lieu de catégories enfants? –