バージョン選択

フォーラム

メニュー

オンライン状況

63 人のユーザが現在オンラインです。 (58 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 63
もっと...

サイト内検索

その他 > その他 > パンくずリストの表示

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
pineray
投稿日時: 2007/10/16 15:44
対応状況: −−−
長老
登録日: 2006/9/9
居住地: 伊賀
投稿: 292
Re: パンくずリストの表示
自分なりの方法で、一覧ページにパンくずリストを表示できましたので、知識共有のために投稿しておきます。
少し変更すれば商品詳細ページにも利用できると思います。
カスタマイズしたEC-CUBEのバージョンは1.3.4正式版です。

まず、list.phpの142行目あたりに赤字の部分を追加
$objPage->category_id = $category_id;
$objPage->arrSearch = $arrSearch;
$objPage = lfGetBreadcrumb($category_id, false, $objPage);

sfCustomDisplay($objPage);

次に、同じくlist.phpの最後のほう、ローカル関数に追加
// パンくずリストの取得
function lfGetBreadcrumb($child_category_id, $count_check = false, $objPage) {
	$objQuery = new SC_Query();
	$col = "*";
	$from = "dtb_category left join dtb_category_total_count using (category_id)";
	// 登録商品数のチェック
	if($count_check) {
		$where = "del_flg = 0 AND product_count > 0";
	} else {
		$where = "del_flg = 0";
	}
	$objQuery->setoption("ORDER BY rank DESC");
	$arrRet = $objQuery->select($col, $from, $where);

	$arrDispID = sfGetParentsArray('dtb_category', 'parent_category_id', 'category_id', $child_category_id);

	$arrBreadcrumb = array();
	foreach($arrDispID as $val) {
		foreach($arrRet as $key => $array) {
			if($array['category_id'] == $val) {
				$arrBreadcrumb[] = $arrRet[$key];
				break;
			}
		}
	}

	$objPage->arrBreadcrumb = $arrBreadcrumb;
	return $objPage;
}

そして、list.tplの好きな場所に追加
<!--{if $category_id}-->
	<!-- パンくずリスト -->
	<!--{section name=cnt loop=$arrBreadcrumb}-->
		<a href="<!--{$smarty.const.URL_DIR}-->products/list.php?category_id=<!--{$arrBreadcrumb[cnt].category_id}-->"><!--{$arrBreadcrumb[cnt].category_name|sfCutString:20|escape}--></a>
		<!--{if !$smarty.section.cnt.last}--> > <!--{/if}-->
	<!--{/section}-->
<!--{/if}-->
sikao
投稿日時: 2007/10/25 11:49
対応状況: −−−
新米
登録日: 2007/8/28
居住地:
投稿: 4
Re: パンくずリストの表示
pinerayさんの投稿を元にパンくず機能を追加してみました。
商品一覧・詳細ページでも問題なく使えて非常に重宝しております。ありがとうございます。

ちなみに商品詳細ページで使う場合は
detail.phpの100行目あたりに

$category_id = sfGetCategoryId("", $_GET['category_id']);
$objPage = lfGetBreadcrumb($category_id, false, $objPage);

上記のコードを追加して、detail.tplの方でもパンくずを利用していますが、
1行目の $category_id への値の入れ方が正しいのかどうかが良く分かっていないので、
どなたかご指摘頂けましたら幸いです、、、
pineray
投稿日時: 2007/10/25 12:18
対応状況: −−−
長老
登録日: 2006/9/9
居住地: 伊賀
投稿: 292
Re: パンくずリストの表示
お役に立てて光栄です

商品詳細ページで使用する場合は、以下のようにすれば正しく$category_idを取得できるのではないでしょうか。
$category_id = sfGetCategoryId($tmp_id, $_GET['category_id']);
$objPage = lfGetBreadcrumb($category_id, false, $objPage);
$_GETでカテゴリIDが指定されていない場合に、商品IDからカテゴリIDを取得します。
ゲスト
投稿日時: 2007/10/25 15:21
対応状況: −−−
Re: パンくずリストの表示
To:pinerayさん

ご回答頂き有難うございます。
恥ずかしながらsfGetCategoryIdの処理自体が良くわかっていなかったので
pinerayさんのご指摘からsfGetCategoryIdのファンクションをもう一度良く見てみましたが、一つ目の引数が空ではカテゴリIDを取得できない場合があるんですね、、、

パンくずリストの追加でサイトの操作性も格段に良くなりました、有難うございました。
« 1 2 (3)
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,012名です
総投稿数は110,020件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.