2013-02-13 87 views
1

我想添加到侧边栏产品的CURENT类别和子类别,但即使我正在输入子类别也是如此。现在,我有这个脚本的左侧菜单(边栏)Magento边栏母公司类别和子类别永久

<?php $_menu = $this->renderCategoriesMenuHtml(0,'level-top') ?> 
<?php if($_menu): ?> 
<div class="block block-menu-navleft"> 
    <div class="block-title"> 
     <strong><span><?php echo $this->__('Category') ?></span></strong> 
    </div> 
    <div class="block-content"> 
     <ul id="nav1" class="menu-left"> 
     <?php echo $_menu ?> 
     </ul> 
    </div> 
</div> 
<?php endif ?> 
<script type="text/javascript"> 
    var lis=$$('#nav1 li.parent'); 
    lis.each(function(li) { 

    var dt = new Element('dt'); 
    var dd = new Element('dd'); 
    var a = li.down(0); 
    var ul = li.down(2); 
    dt.insert(a); 
    dd.insert(ul); 
    li.insert(dt,{position:top}); 
    li.insert(dd); 
    }); 
    jQuery('#nav1 li.parent dd ul ').hide(); 
     jQuery('#nav1 dt a').click(function() { 

     jQuery('.td_active').removeClass('td_active'); 
     var string = jQuery(this).parent().parent().parent().parent().parent().attr('class'); 
     if(string.indexOf('parent')!=-1) 
     { 
      jQuery(this).parent().parent().parent().parent().parent().addClass('td_active'); 
      jQuery(this).parent().parent().parent().css("display","block"); 
      jQuery(this).parent().parent().find('ul').slideUp('slow'); 
     } 
     else 
     { 
      jQuery('#nav1 li.parent dd ul:visible').slideUp('slow'); 
     } 
     jQuery(this).parent().parent().addClass('td_active').next().slideDown('fast'); 
     if(jQuery(this).parent().parent().find('ul').css('display')=='block') 
     { 
       jQuery(this).parent().parent().removeClass('td_active'); 
     } 
     jQuery(this).parent().parent().children().children(':first-child').css("display","block"); 
     return false; 
    }); 


</script> 

这个脚本工作正常,但它为我所有的父亲类别和子类别。我想让我看看CURENT CATEGORY和SUBCATEGORY。 !

例如图像1

回答

0

使用此:

$menu = $this->drawItem(Mage::registry('current_category'),Mage::registry('current_category')->getLevel()); 

代替

$_menu = $this->renderCategoriesMenuHtml(0,'level-top') 

要处理所有的情况下,你应该考虑这样做:

$menu = (isset(Mage::registry('current_category'))?$this->drawItem(Mage::registry('current_category'),Mage::registry('current_category')->getLevel()):$this->renderCategoriesMenuHtml(0,'level-top'); 
+0

当我使用第一个例子给我这个错误: 致命错误:调用/ home/italy/public_html/app/code/core/Mage/Catalog/Block/Navigation中的非对象的成员函数count() 232行上的.php 232行是这样的:$ childrenCount = $ children-> count(); 对于第二个例子,它给了我那条线上的错误 – Alex 2013-02-13 16:18:20

+0

第一个例子只有在Mage :: registry('current_category')被设置的情况下才有效。所以如果你不在分类页面上,它就无法工作。 – dagfr 2013-02-14 07:52:12