1

製品のCURENTカテゴリとサブカテゴリをサイドバーに追加したいのですが、サブカテゴリを入力しても同じです。今、私は左側のメニュー(サイドバー)用のこのスクリプトを持っています

<?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> 

このスクリプトは正常に機能しますが、すべての父のカテゴリとサブカテゴリが表示されます。現在のカテゴリとサブカテゴリだけを表示したいと思います。

!画像例1

4

1 に答える 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');
于 2013-02-13T13:42:34.357 に答える