在 goods.php 文件,
找到 $smarty->assign('goods', $goods);
在它上面增加下面代碼:
方法一:
$cat_arr = get_parent_cats($goods['cat_id']); foreach ($cat_arr AS $val)
{ $goods['topcat_id']=$val['cat_id']; $goods['topcat_name']=$val['cat_name']; }
方法二:
$cat_arr = get_parent_cats($goods['cat_id']); $topcat_arr = end($cat_arr); $goods['topcat_id']=$topcat_arr['cat_id']; $goods['topcat_name']=$topcat_arr['cat_name'];
然後,在商品詳情模板文件 goods.dwt 中調用如下:
頂級分類id:{$goods.topcat_id}
頂級分類名稱name:{$goods.topcat_name}
$children = get_children($cat_id); 獲得指定分類同級的所有分類以及該分類下的子分類
/**
* 獲得分類下的商品
*
* @access public
* @param string $children
* @return array
*/
function category_get_goods($children, $brand, $min, $max, $ext, $size, $page, $sort, $order)
看看category.php 是怎麼用的
首頁調用指定分類下子分類方法
模板首頁一般都有分樓層顯示的分類商品,每個樓層右上角會有該分類下小分類排列顯示的:
以往有些模板這裡都是靜態顯示的,需要客戶手動依次修改,現在模板中心告訴您怎樣修改成動態調用,只需修改一個id即可。
1.打開您的文件根目錄下 includes/lib_goods.php 文件,在最後一行加入一個方法:
function get_parent_id_tree($parent_id)
{
$three_c_arr = array();
$sql = 'SELECT count(*) FROM ' . $GLOBALS['ecs']->table('category') . " WHERE parent_id = '$parent_id' AND is_show = 1 ";
if ($GLOBALS['db']->getOne($sql))
{
$child_sql = 'SELECT cat_id, cat_name, parent_id, is_show ' .
'FROM ' . $GLOBALS['ecs']->table('category') .
"WHERE parent_id = '$parent_id' AND is_show = 1 ORDER BY sort_order ASC, cat_id ASC ";
$res = $GLOBALS['db']->getAll($child_sql);
foreach ($res AS $row)
{
if ($row['is_show'])
$three_c_arr[$row['cat_id']]['id'] = $row['cat_id'];
$three_c_arr[$row['cat_id']]['name'] = $row['cat_name'];
$three_c_arr[$row['cat_id']]['url'] = build_uri('category', array('cid' => $row['cat_id']), $row['cat_name']);
}
}
return $three_c_arr;
}
2. 在模板文件裡調用,如首頁index.dwt中 :
<?php
$this->assign('thiscid1', get_parent_id_tree(17));//調用父級分類的下級分類
?>
<!--{foreach from=$thiscid1 item=list name=name}-->
<A href="{$list.url}" target=_blank >{$list.name}</A>
<!--{/foreach}-->
括號裡的“17”為分類id,按照您的網站商品分類修改......余下全文>>