2012-03-07 9 views
0

私は、ナビゲーションのカテゴリのフロントエンドの表示を並べ替える方法を探しています。Magento sortカテゴリのテンプレート

これは私のナビゲーションのためのコードです:

<div id="menu-accordion" class="accordion">  
    <?php 

    foreach ($this->getStoreCategories() as $_category): ?> 
    <?php $open = $this->isCategoryActive($_category) && $_category->hasChildren(); ?> 
    <h3 class="accordion-toggle"><a href="#"><?php print $_category->getName();?></a></h3> 
     <div class="accordion-content"> 
       <ul> 
       <?php foreach ($_category->getChildren() as $child): ?> 
        <li> 
         <span class="ui-icon ui-icon-triangle-1-e vMenuIconFloat"></span> 
          <a href="<?php print $this->getCategoryUrl($child); ?>"><?php print $child->getName();?></a> 
        </li> 
       <?php endforeach; ?> 
       </ul> 
      </div> 
    <?php endforeach ?> 
</div> 

思われる(私は$this->getStoreCategories()をソートするasort()を使用してみましたが、それはエラー500に解決するので、私はそれが配列ではないことを推測し、そのオブジェクトオブジェクト指向のマゼンタプログラミングについては明らかです)。私はオブジェクトのための解決策を見つけようとしましたが、失敗しました。そして今はちょっと立ち往生しています。

ありがとうございました。

答えて

2

$this->getStoreCategories()を呼び出すと配列が返されません。しかし、あなたはあなた自身のアレイを構築し、(あなたは、カテゴリの名前でソートしたいと仮定した場合)にソートする要素として、配列のキーを使用することができます:あなたは、反復処理$this->getStoreCategories()を反復処理するのではなく、今

foreach ($this->getStoreCategories() as $_category) 
{ 
    $_categories[$_category->getName()] = $_category; 
} 

ksort($_categories); 

を$ _categories配列。したがって、あなたのコードは次のようになります:

<div id="menu-accordion" class="accordion">  
    <?php 

    $_categories = array(); 
    foreach ($this->getStoreCategories() as $_category) 
    { 
     $_categories[$_category->getName()] = $_category; 
    } 
    ksort($_categories); 

    foreach ($_categories as $_category): ?> 
    <?php $open = $this->isCategoryActive($_category) && $_category->hasChildren(); ?> 
    <h3 class="accordion-toggle"><a href="#"><?php print $_category->getName();?></a></h3> 
     <div class="accordion-content"> 
       <ul> 
       <?php foreach ($_category->getChildren() as $child): ?> 
        <li> 
         <span class="ui-icon ui-icon-triangle-1-e vMenuIconFloat"></span> 
          <a href="<?php print $this->getCategoryUrl($child); ?>"><?php print $child->getName();?></a> 
        </li> 
       <?php endforeach; ?> 
       </ul> 
      </div> 
    <?php endforeach ?> 
</div> 
+0

[OK]をクリックすると、メインカテゴリはかなりうまく動作しますが、サブカテゴリはソートされません。 – Maddis

+0

私は子供のカテゴリについても同じことをしましたが、今はほぼ完璧です。ちょうどキャッシング方法を見つける必要があります。ありがとう – Maddis

関連する問題