0

Leftnav は、Magento サイトのすべてのページでアクティブです。しかし、特定のカテゴリ/カテゴリで非表示にしたいです。

これが私のコードです:

    $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>';
                  }
             }
          }
        }

        ?>

前もって感謝します。

4

1 に答える 1

0

まず、上記のコードがブロック ファイルから取得された場合、エコーや HTML を直接出力していてはならず、関連データをテンプレートに返してから、HTML をビルドして出力する必要があります。上記がテンプレート ファイルである場合、そこに多くのロジックを含める必要はありません。テンプレートは非常に最小限のロジックのみを持ち、代わりにブロック メソッドを呼び出して、返されたデータを処理する必要があります。

あなたの質問に答えるために、関連するカテゴリの [デザイン] タブの下にある左側の列を除外する別のページ レイアウトを定義することをお勧めします。左の列に維持する必要がある他のコンテンツがある場合は、関連するコンテンツを除外する新しいルート テンプレートを作成し、同じ方法でこれを選択することをお勧めします。

于 2013-03-20T16:36:30.313 に答える