2010/4/19

EC-CUBEのカテゴリページにサブカテゴリ一覧を作る

こちらのサイトを参考にああでもないこうでもないやってたのですが、ようやくできました。

EC-CUBE:商品一覧ページにサブカテゴリーを表示する – サイト制作メモ – EC-CUBE,wordpress – – 楽天ブログ(Blog)

data/class/helper/SC_Helper_DB.php

function sfGetChildCat_t($category_id) {
$objQuery = new SC_Query();
$col = "category_id, category_name";
$from = "dtb_category left join dtb_category_total_count using (category_id)";
$where = "parent_category_id = ".$category_id;
$where .= " AND product_count > 0";
$arrRet = $objQuery->select($col, $from, $where);
return $arrRet;
}

ポイントは商品の登録がされてないサブカテゴリは表示されない処理を加えた点。これで大分すっきりしました。

data/class/pages/products/LC_Page_Products_List.php

if($_GET[‘mode’] != ‘search’){
$arrChildCat_t = $objDb->sfGetChildCat_t($category_id);
$this->arrChildCat = $arrChildCat_t;
}

検索以外の時に呼び出してやって。

<!–{if count($arrChildCat) != 0}–>
<ul>
<!–{section name=cnt loop=$arrChildCat}–>
<li ><a href="<!–{$smarty.const.URL_DIR}–>products/list.php?category_id=<!–{$arrChildCat[cnt].category_id}–>"><!–{$arrChildCat[cnt].category_name}–></a>
<!–{/section}–>
</ul>
<!–{/if}–>

と商品一覧のページで設定してやると、サブカテゴリのあるカテゴリにのみ、サブカテゴリ一覧が表示されると。

上記のサイトと、後はdata/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Category.phpのコードを参考にしつつ作成してみました。

加藤 康祐 / 企画・設計

プランナー、デザイナー。加藤康祐企画設計代表。Webデザインを入り口に、2005年よりフリーランスとしてのキャリアスタート。主な仕事としてベンチャー企業でのサービスのUXデザイン、独法との防災メディアの運営、社会的養護の子どもたちの自立を支援するNPOのサポート。ラグビーと料理、最近イラスト。

加藤康祐企画設計

是非、フォローしてください!
Twitter / Instagram

(2012-10-5)
売り上げランキング: 14,705
100円