-2

我正在尝试在主菜单的每个类别下拉列表中添加品牌列表。我相信这将被视为“超级菜单”。

例如 - 如果我将鼠标悬停在主类别上,它不仅会在下拉菜单中显示子类别,还会显示该类别中的所有不同品牌。

品牌建立有两种方式:

  1. 所有产品都有一个属性“品牌”。因此,我们可以尝试获取该类别中的所有产品,并显示与该类别中的产品相关的所有品牌的列表。这将需要合并分层导航,以便在选择该菜单项时,它将显示来自该类别和该品牌属性的项目的过滤器。

  2. 我认为这种方法会更容易——每个品牌也已经创建了自己的类别,并且每个产品都属于主要类别以及相关的品牌类别。最初这样做是为了我们可以显示所有品牌的大清单。Magento 在导航循环中是否有获取“其他选择的类别”的功能?例如,如果一个项目在类别 A 中,下拉列表会显示所有子类别,以及在产品上选择的任何其他相关顶级类别。

我尝试了各种涉及修改 Navigation.php(magento 1.6)的解决方案,但我只能让它显示商店中的所有品牌,而不仅仅是特定类别中的品牌。请参见下面的代码:

// Navigation.php code
// render children
    $htmlChildren = '';
    $j = 0;
    foreach ($activeChildren as $child) {
    $htmlChildren .= $this->_renderCategoryMenuItemHtml(
    $child,
    ($level + 1),
    ($j == $activeChildrenCount - 1),
    ($j == 0),
    false,
    $outermostItemClass,
    $childrenWrapClass,
    $noEventAttributes
    );
    $j++;
    }
    if (!empty($htmlChildren)) {
    if ($childrenWrapClass) {
    $html[] = '<div class="' . $childrenWrapClass . '">';
    }
    $html[] = '<ul class="level' . $level . '">';
    $html[] = $htmlChildren;

    // My modifications start here

    $product = Mage::getModel('catalog/product');
    $attributes = Mage::getResourceModel('eav/entity_attribute_collection')
    ->setEntityTypeFilter($product->getResource()->getTypeId())
    ->addFieldToFilter('attribute_code', 'brands');
    $attribute = $attributes->getFirstItem()->setEntity($product->getResource());
    $manufacturers = $attribute->getSource()->getAllOptions(false);
    $html[] = '<ol id="nav-drop-brands">';
    foreach ($manufacturers as $manufacturer) {
    $html[] = '<li><a href="http://www.domain.com/catalogsearch/advanced/result?manufacturer[]=';
    $html[] = $manufacturer['value'];
    $html[] = '">';
    $html[] = $manufacturer['label'];
    $html[] = '</a></li>';
    }
    $html[] = '</ol>';

    // end of my modifications 

    $html[] = '</ul>';
    if ($childrenWrapClass) {
    $html[] = '</div>';
    }
    }

    $html[] = '</li>';

    $html = implode("\n", $html);
    return $html;
    }
4

1 回答 1

-1

你可以这样做:
添加类别
然后添加子类别
然后添加子子类别
(这将是您的所有品牌名称,这只是类别而已)

要检索这些类别,您可以访问链接。

希望这对您有所帮助。

于 2012-12-24T08:01:37.620 回答