3

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

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

  1. 复制community/Company/MenuWidgetlocal/MyCompany/MyMenuWidget
  2. 替换了在Block、Helper 等、控制器、Model下找到的所有文件Company_MenuWidget中指向MyCompany_MyMenuWidget. 我基本上克隆了菜单小部件。
  3. css.xml在下面添加了以下几行

<参考名称=“标题”>

<block type="cms/block" name="cms_my_menu_block" >

<action method="setBlockId" ><block_id>my_menu_block</block_id></action></block>

  1. 将以下行添加到header.phtml

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

  1. 向 CSS 样式表“my-class”添加了一个与 nav-container 类具有相同值的类,然后修改值以将菜单定位在我想要的位置。

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

  3. 用我希望它显示的商店/网站的标识符创建了一个块,它确实做到了。

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

如何完全分离样式表?我什至不确定为什么其他菜单栏会出现在新样式表上。

任何帮助表示赞赏。

4

2 回答 2

3

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

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

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

于 2012-08-28T13:46:34.580 回答
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 设置

于 2015-02-08T19:54:43.313 回答