0

私はvertnav/left.phtmlファイルコードを持っています、

 <div class="vertnav-container">

<div class="">

    <h4 class="no-display"><?php echo $this->__('Category Navigation:') ?></h4>

 <?php $store_categories = $this->toLinearArray($this->getStoreCategories()) ?>

  <?php if ($count = count($store_categories)): ?>

    <ul id="vertnav">

  <?php endif; ?>
     <?php foreach ($store_categories as $i => $_category): ?><?php $class = array() ?>
   <?php if ($count == 1): ?>
    <?php $class[] = 'only' ?>
     <?php elseif (! $i): ?>
     <?php $class[] = 'first' ?>
  <?php elseif ($i == $count-1): ?>
          <?php $class[] = 'last' ?>
    <?php if (isset($store_categories[$i+1]) && $this->isCategoryActive($store_categories[$i+1])) $class[] = 'prev'; ?>
 <?php if (isset($store_categories[$i-1]) && $this->isCategoryActive($store_categories[$i-1])) $class[] = 'next'; ?>
     <?php echo $this->drawOpenCategoryItem($_category, 0, $class) ?>
  <?php endforeach ?>
   <?php if ($count): ?>
    </ul>
 <?php endif; ?>
</div>
 </div>

そして、私の要件に従って、[システム]>[構成]>[カタログ]>[カテゴリ垂直ナビゲーション]を2に設定しますが、表示されているカテゴリサブカテゴリにマウスオーバーすると表示されます。

では、どうすればそれをカスタマイズして、これにホバー効果コードを追加できますか?

私を助けてください

4

1 に答える 1

0

をよく見てみると、指定されたカテゴリが現在のカテゴリ パスの一部であるかどうかをメソッドがチェックしていることに気付くかもしれませんdrawOpenCategoryItemMage_Catalog_Block_Navigationしたがって、このチェックが を返した場合にのみ、このtrueカテゴリの子カテゴリがレンダリングされます。他のカテゴリの場合、スクリプトはコードのその部分に入りません。

私があなたの質問を正しく理解していれば、これは当てはまります。

    if (in_array($category->getId(), $this->getCurrentCategoryPath())){
        $children = $category->getChildren();
        $hasChildren = $children && $children->count();

        if ($hasChildren) {
            $htmlChildren = '';
            foreach ($children as $child) {
                $htmlChildren.= $this->drawOpenCategoryItem($child);
            }

            if (!empty($htmlChildren)) {
                $html.= '<ul>'."\n"
                        .$htmlChildren
                        .'</ul>';
            }
        }
    }

この情報に追加します。はdrawOpenCategoryItem()、PHP コードベース全体で実際に呼び出されることはありません。

したがって、これらのロールオーバー効果を得るには、完全なツリー構造、または少なくともその一部を生成するコードが必要です。についてSystem > Configuration > Catalog > Category Vertical Navigation。自分でカスタマイズしたのかな?

あなたにいくつかの指針を与えるために。以下の方法をご覧になることをお勧めします。これらはトップ メニューのレンダリングに使用され、実際に実装しようとしていることを実行しています。

Mage_Catalog_Block_Navigation::renderCategoriesMenuHtml() Mage_Catalog_Block_Navigation::_renderCategoryMenuItemHtml()

これが物事を進めるのに役立つことを願っています。

于 2012-08-14T18:45:39.963 に答える