2010-11-21 3 views
0

Хорошо, поэтому я работаю с Magento около 1-2 месяцев, не слишком взволнованный, но все же пытаюсь учиться.Magento «теряет» категории при входе в подкатегорию

Мне удалось установить приятную тему шаблона для кого-то, и сейчас я настраиваю ее, чтобы заставить ее работать «правильно».

Но у меня немного странная проблема ... во-первых, мой шаблон не показывает корневые категории в верхнем навигаторе, просто перечисляет первые подкатегории. Это отлично.

Я перехожу в подкатегорию, и я могу видеть подкатегории в левом блоке. Но когда я нажимаю на одну из подкатегорий, левый блок вообще не отображает никаких категорий.

Я могу понять, что это поведение по умолчанию, потому что подкатегория, в которой находится я, не имеет под-под-подкатегорий. Но, мне было интересно, знает ли кто-нибудь хороший способ, когда вы в категории внуков, показывать все категории в основной базе?

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 

Скажем, например, я нажимаю на Sub Cat 2, в том месте, Cat 3, я мог иметь дисплей Magento всех детей от 2-го уровня? В этом примере будет показан Cat 3 со всеми его подкатегориями, почти так же, как если бы я нажал только на Cat 3.

Надеюсь, я объяснил это хорошо, я так же путаюсь с Magento, как и следующий человек ...

(Вот бит перед циклом foreach, чтобы писать категории в моем файле шаблона. В любом случае, чтобы бросить здесь метод getParent(), чтобы он всегда загружал категорию «топ»?)

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

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

<?php if($_count): ?> 

ответ

0

Существует vertical navigation extension, который дает вам больший выбор над тем, что показано на рисунке. У него нет точного поведения, которое вы описываете, но это шаг в правильном направлении, и вам может быть легче его модифицировать, чем полностью использовать свой собственный метод.

0

Идея блока левой категории состоит в том, чтобы показать дочерние категории текущей категории. Похоже, вы хотите, чтобы более статическое меню всегда показывало одно и то же дерево категорий. Это именно то, что делает верхняя навигация, поэтому вы можете просто скопировать код оттуда и использовать его как левый блок. У него даже есть .активные классы CSS, поэтому вы можете стилизовать его, чтобы свернуть/развернуть подкатегории на основе активной категории.

2

Хорошо. Я посмотрел на оба из представленных ответов, однако ни один из них не пошел в направлении, которое я искал.

Они были хороши как в их собственной воле, однако, я наткнулся на то, что дал мне лучший ключ, и я запрограммировал эту отрывочный:

// 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) 

Я надеюсь, что это помогает кто-то в будущем, кто ищет аналогичную функцию.

+0

Итак, вы хотите меню с категориями «сестра», а не дочерние категории? –

Смежные вопросы