EC-CUBE的breadcrumbs

LINEで送る
[`evernote` not found]

breadcrumbs翻成中文應該是麵包屑??
前幾天才知道…日文是パンくず
恩…勉強になりました!
以下也是參考ec-cube公式ガイドブック用的….

在\data\module\Smarty\libs\plugins\新增一個檔案insert.pan.php

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php
function smarty_insert_pan($param, &$smarty) {
		require_once("../require.php");
		$pan = array();
		$count = 0;
		// パンくず情報となるデータを取得
		$objQuery = new SC_Query();
		switch($param) {
				case (SC_Utils::sfIsInt($param['product_id'])):		// product_idが入ってきた場合
						$sql = "
							SELECT
						dtb_category.category_id,
						category_name,
						dtb_category.parent_category_id
				FROM
						dtb_category
				WHERE
						category_id = (SELECT MIN(category_id)
														FROM
																dtb_product_categories
														WHERE
																product_id = ?
											)
						";
						$res = $objQuery->conn->getAll($sql, array($param['product_id']), DB_FETCHMODE_ASSOC);
 
						if (is_array($res)) {
								$pan[$count]['category_id'] = $res[0]['category_id'];
								$pan[$count]['category_name'] = $res[0]['category_name'];
								if (ereg("[0-9]+$", $res[0]['parent_category_id']) and ($res[0]['parent_category_id'] > 0)) {		// 上位にカテゴリーがある場合
										do {
												$sql = "SELECT category_id, category_name, parent_category_id FROM dtb_category WHERE category_id =?";
												$res = $objQuery->conn->getAll($sql, array($res[0]['parent_category_id']), DB_FETCHMODE_ASSOC);
												if (is_array($res)) {
														$count++;
														$pan[$count]['category_id'] = $res[0]['category_id'];
														$pan[$count]['category_name'] = $res[0]['category_name'];
												}
										} while ($res[0]['parent_category_id'] != "0");
								}
						}
						break;
 
				case (SC_Utils::sfIsInt($param['category_id'])):  // カテゴリーIDが入ってきた場合
						$res[0]['parent_category_id'] = $param['category_id'];
						do {
								$sql = "
					SELECT
							category_id,
							category_name,
							parent_category_id
					FROM
							dtb_category
					WHERE
							category_id =?
								";
								$res = $objQuery->conn->getAll($sql, array($res[0]['parent_category_id']), DB_FETCHMODE_ASSOC);
								if (is_array($res)) {
										$count++;
										$pan[$count]['category_id'] = $res[0]['category_id'];
										$pan[$count]['category_name'] = $res[0]['category_name'];
								}
						} while ($res[0]['parent_category_id'] != "0");
						break;
		}
 
		// 取得した配列を逆ソート(上位カテゴリー順)に並び替える
		if (count($pan) > 0) {
				krsort($pan);
		}
 
 
		// 取得したデータをSmartyに渡す
		$smarty->caching=0;
 
		$smarty->assign("pan",$pan);
		$pan = $smarty->fetch("pan.tpl");  // Smartyテンプレートで生成されたデータを一旦配列に入れる
		print($pan);
}
?>

\data\Smarty\templates\mystyle\新增一個檔案pan.tpl

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!--{if $pan}-->
        <!--{strip}-->
        <a href="<!--{$smarty.const.SITE_URL}-->">HOME</a>&nbsp;>
        <a href="<!--{$smarty.const.URL_DIR}-->"></a>&nbsp;&nbsp;
        <!--{foreach from=$pan item=item name=loops}-->
                <!--{if !$smarty.foreach.loops.last}-->
                <a href="<!--{$smarty.const.URL_DIR}-->products/list/<!--{$item.category_id}-->"><!--{$item.category_name}--></a>
                &nbsp;>&nbsp;
                <!--{elseif $smarty.foreach.loops.last && $arrProduct.name}-->
                <a href="<!--{$smarty.const.URL_DIR}-->products/list/<!--{$item.category_id}-->"><!--{$item.category_name}--></a>
                <!--{elseif $smarty.foreach.loops.last && !$arrProduct.name}-->
                <strong><!--{$item.category_name}--></strong>
                <!--{/if}-->
        <!--{/foreach}-->
        <!--{if $arrProduct.name}-->
                &nbsp;>&nbsp;<strong><!--{$arrProduct.name|escape}--></strong>
        <!--{/if}-->
        <!--{/strip}-->
<!--{/if}-->

接下來只要在
\html\user_data\packages\mystyle\detail.tpl
想加入的地方放

<!--{insert name="pan" product_id=$tpl_product_id}-->

在\html\user_data\packages\mystyle\list.tpl
想加入的地方放

<!--{insert name="pan" category_id=$smarty.get.category_id}-->

就ok囉
其實也就是帶的參數不同給insert.pan.php判斷而已