排除特定类别/类别中的leftnav

时间:2013-03-20 15:46:34

标签: magento navigation hide categories sidebar

在我的Magento网站的所有页面中,Leftnav都处于活动状态。但是我想把它隐藏在特定的类别/类别中。

这是我的代码:         

    $cat = Mage::getModel('catalog/category')->load(3);
        $subcats = $cat->getChildren();

        foreach(explode(',',$subcats) as $subCatid)

        {
          $_category = Mage::getModel('catalog/category')->load($subCatid);

          if($_category->getIsActive())

           {
            $sub_cat = Mage::getModel('catalog/category')->load($_category->getId());
            $sub_subcats = $sub_cat->getChildren();
            foreach(explode(',',$sub_subcats) as $sub_subCatid)
            {
                  $_sub_category = Mage::getModel('catalog/category')->load($sub_subCatid);
                  if($_sub_category->getIsActive()) {
                      echo '<li class="sub_cat"><a href="'.$_sub_category->getURL().'" title="View products for "'.$_sub_category->getName().'" category">'.$_sub_category->getName().'</a></li>';
                  }
             }
          }
        }

        ?>

提前致谢。

1 个答案:

答案 0 :(得分:0)

首先,如果上面的代码是从块文件中获取的,它不应该有回显或直接输出HTML,它应该将相关数据返回到模板,然后构建并输出HTML。如果以上是模板文件,那里就不应该有那么多逻辑。模板应该只有非常小的逻辑,而是调用块方法并使用返回的数据。

要回答您的问题,我建议您只需定义一个不同的页面布局,该页面布局会排除相关类别的设计标签下的左栏。如果您需要在左栏中维护其他内容,我建议您创建一个新的根模板,该模板会排除相关内容,然后以相同的方式选择此内容。