Magento:如何添加辅助菜单?

时间:2012-08-27 15:13:51

标签: magento menu

我正在尝试在主菜单栏旁边添加一个辅助菜单栏,因为我想保持主菜单中列出的所有类别,然后在同一个magento商店中的每个网站/商店的单个菜单。我正在使用的主题已经带有菜单小部件,我有点完成我想要的但我有一点CSS样式问题。让我解释一下。

为了有两个菜单,我做了以下几点。

  1. community/Company/MenuWidget复制到local/MyCompany/MyMenuWidget
  2. 替换了指向Company_MenuWidgetMyCompany_MyMenuWidget Block,Helper等,控制器,模型,下的所有文件中的所有引用。我基本上克隆了Menu Widget。
  3. 下的css.xml添加了以下行
      

    < reference name =“header”>

         

    < block type =“cms / block”name =“cms_my_menu_block”>

         

    < action method =“setBlockId”>< block_id> my_menu_block< / block_id><   /作用> < /块>

    1. header.phtml
    2. 中添加了以下行
        

      < div class =“my-class”>< ?php echo   $ this-> getChildHtml('cms_my_menu_block')?>< / DIV>

      1. 在CSS样式表'my-class'中添加了一个类,其中包含nav-container类的相同值,然后修改了值以将菜单放在我想要的位置。

      2. 复制MenuWidget样式表并根据需要重命名。

      3. 创建了一个块,其中包含我希望它显示的商店/网站的标识符,并且确实显示了。

      4. 现在我面临的问题是原始菜单部分地拾取复制的样式表,因此我对副本进行的修改部分影响主要,而不是所有修改。例如,我能够将容器向下移动并定位它,但现在我移动它们时,我必须重新定位的“下拉弹出窗口”也会受到影响。

        如何完全分开样式表?我甚至不确定为什么另一个菜单栏会在新样式表上找到。

        任何帮助都表示赞赏。

2 个答案:

答案 0 :(得分:3)

“其他”菜单对两个样式表做出反应的原因是因为两个样式表都在加载,您可能没有更改类/ ID。您可以在默认引用中使用local.xml删除另一个:

<reference name="head">
    <action method="removeItem">
        <type>skin_css</type>
        <name>css/path/to.css</name>
    </action>
</reference>

处理此问题的一种方法是让其他菜单执行其操作并使用您自己的模块覆盖您想要的部分。我认为如何做到这一点超出了这个/任何答案的范围。

答案 1 :(得分:0)

$id=2; 
$catagory_model = Mage::getModel('catalog/category');
$categories = $catagory_model->load($id);
if(!empty($categories))
{
    $cats = explode(",", $categories->getChildren());
    foreach($cats AS $c)
{
    $cat = $catagory_model->load(trim($c));
    echo '<a href="/'.$cat->getUrlKey().'">'.$cat->getName().'</a>';
}
}

这对我来说在我的/html/footer.phtml模板文件中使用Core 1.9 Magento安装程序