[Tep-j-general] Re: mklist.php のカテゴリについて

アーカイブの一覧に戻る

hamada bungu****@leo*****
2006年 1月 6日 (金) 09:50:33 JST


こんにちわ。

On Thu, 5 Jan 2006 20:53:13 +0900
Masato Kobayashi <ksoun****@rd*****> wrote:

> mklist.phpのカテゴリー欄に最上カテゴリー名を表示させたいと思う
> のですが、どのようにカテゴリー名を拾ったらよいのか分からず、悩
> んでおります。

mklist.phpとはあんまり関係ない気もしますが、名前出てるんで(^^;)

とりあえず、categoriesテーブルにparent_idとして親カテゴリのIDが入ってま
すんでそれを使って

1. 当該products_idに対応するcategories_id(A)を得る
2. categoriesテーブルから(A)に相当するparent_id(B)を得る
3. categoriesテーブルから(B)に相当するparent_id(C)を得る

以上を再帰的に繰り返し、parent_idが0になったらそれが最上位のカテゴリIDっ
てことになると思います。

ただ、さらっと書いてますが「当該products_idに対応する(A)」がユニークとは
限りません(osCでは同一商品を複数カテゴリに登録することが可能)ので、重
複登録商品がある場合はどう処理するか工夫がいるかも。

勿論tep_get_product_path()で得たcPathを「_」で分割するとかして最上位カテ
ゴリIDを得ても構いませんが、重複登録商品があると一筋縄で行かないのはこち
らも同様(cPath自体が得られない)

とにかくなんとかして最上位のカテゴリIDが解れば、categories_descriptionテー
ブルから当該カテゴリID&使用言語のカテゴリ名を引いてくれば宜しいかと。

たしか以前、title_meta.phpのときだったかにtep_get_topcategory()みたいな
関数を作った気がするんですが、いまぱっとソースが見当たりませんので大まか
な動作概念のみで御容赦を。


はまだ




Tep-j-general メーリングリストの案内
アーカイブの一覧に戻る