サイトカレンダをスキップ

«
2017年 12月
»
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

-

ログイン

ログイン

QRコード

QR code


 掲示板目次 > Magento全般 > カスタマイズ質問 新規投稿 返信投稿
 特定のカテゴリをあいうえお順に並べたい
 
piyo
 2011年11月10日 18:37 JST (参照数 6888回)  
掲示板 Junior
Junior

状態: オフライン


登録日: 2011年2月 4日
投稿数: 18
ある特定のカテゴリのサブカテゴリを、名前のあいうえお順に並べたいのですが、
どう書けばいいのかわからなくて投稿させて頂きました。

例えば、「メーカー」というカテゴリ配下のサブカテゴリとして、各メーカー名を登録して、それをあいうえお順に並べるイメージです。

今、 /app/design/frontend/xxx/xxx/template/catalog/category/view.phtml を以下のように変えていて、サブカテゴリが一覧では表示されるのですが、これにどう書けばあいうえお順になるのかわからずにいます。

PHP Formatted Code

<?php //show subcategories
$parentCategoryId = $_category->getId(); // set current parent category id
if($parentCategoryId == xx //メーカーのカテゴリID): ?>
    <ul class="subcategories">
<?php foreach (Mage::getModel('catalog/category')->load($parentCategoryId)->getChildrenCategories() as $childCategory) {
    if($childCategory): ?>
        <li><a href="<?php echo $childCategory->getUrl(); ?>"><?php echo $childCategory->getName(); ?></a></li>
    <?php endif;
} ?>
    </ul>
<?php else: ?>
 


どなたかアドバイス頂けないでしょうか。
よろしくお願い致します。


 
プロフィール メール
引用して書き込む
hirokazu_nishi
 2011年11月10日 19:05 JST  
掲示板 管理者
管理者

状態: オフライン


登録日: 2008年2月 9日
投稿数: 470
問題になるのは、

PHP Formatted Code

Mage::getModel('catalog/category')->load($parentCategoryId)->getChildrenCategories()
 


ですね。
getChildrenCategoriesの戻りがサブカテゴリオブジェクトのリストなので、ここのorder byをよろしく処理するしかないです。

で、このメソッド自体は、Mage_Catalog_Model_Categoryに定義されていて、更に内部的にMage_Catalog_Model_Resource_CategoryのgetChildrenCategoriesを呼んでます。
ここでorder byにpositionを指定しているので、該当カテゴリ内での並び順になる、というわけですね。

私がやるとしたらMage_Catalog_Model_Resource_Categoryをrewriteするクラスを作って、getChildrenCategoriesのデッドコピーメソッドを作り、setOrderでカテゴリ名を指定するかなぁと。
で、それを呼び出すためのコードをちょっとむりくりですがテンプレート上に書くと思います。

Magento技術サポート・日本語化エクステンション・セキュリティ診断提供中です。日本語ガイドブックの販売・レンタルサーバサービス開始しました。 http://principle-works.jp/
 
プロフィール メール ホームページ
引用して書き込む
hirokazu_nishi
 2011年11月10日 19:09 JST  
掲示板 管理者
管理者

状態: オフライン


登録日: 2008年2月 9日
投稿数: 470
ああ、とはいうものの、「特定のカテゴリ」、ということであればカテゴリのEAV属性を増やして(サブカテゴリソート用に)、それで並べ替える、という実装のほうがスマートですね。

Magento技術サポート・日本語化エクステンション・セキュリティ診断提供中です。日本語ガイドブックの販売・レンタルサーバサービス開始しました。 http://principle-works.jp/
 
プロフィール メール ホームページ
引用して書き込む
内容生成: 2.05 秒
新規投稿 返信投稿


通常 通常
注目トピック 注目トピック
ロック済 ロック済
新着 新着
注目トピック 新着 注目トピック 新着
ロック済トピック 新着 ロック済トピック 新着
ゲストユーザの投稿を見る 
ゲストユーザ投稿可能 
HTML許可 
バッドワードをチェック