您的位置:首页 > 其它

2012-11-13 11:06 首页全部分类调用对应分类推荐品牌

2013-11-05 15:00 204 查看
看效果:



这里的推荐品牌是写死的,而我们要实现的功能是要调用左边对应分类的品牌,也就是成长用品。

首先,你必须要有一个函数,通过传递一个分类的id来调用品牌数据的。
然后,你在模板中怎么来显示这个数据。
没有最后。

首先,你把这个函数写到index.php里面。
这个函数经测试没有问题。
然后,你要找到你模板中写推荐品牌的地方。
下面:

直接代码:
<?php

/**
* 获得某个分类下的品牌列表
*
* @access public
* @param int $cat
* @return array
*/
function get_cat_brands($cat, $app = 'category')
{
$children = ($cat > 0) ? ' AND ' . get_children($cat) : '';

$sql = "SELECT b.brand_id, b.brand_name, b.brand_logo, COUNT(g.goods_id) AS goods_num, IF(b.brand_logo > '', '1', '0') AS tag ".
"FROM " . $GLOBALS['ecs']->table('brand') . "AS b, ".
$GLOBALS['ecs']->table('goods') . " AS g ".
"WHERE g.brand_id = b.brand_id $children " .
"GROUP BY b.brand_id HAVING goods_num > 0 ORDER BY tag DESC, b.sort_order ASC";

//print_r($cat);

$row = $GLOBALS['db']->getAll($sql);

foreach ($row AS $key => $val)
{
$row[$key]['url'] = build_uri($app, array('cid' => $cat, 'bid' => $val['brand_id']), $val['brand_name']);
}

return $row;
}

<div class="sortTitle">推荐品牌</div>
<div class="sortList">

<ul>

<!--{foreach from=get_cat_brands($this->_var['cat']['id']) item=brandCat}-->

<li><a href="{$brandCat.url}">{$brandCat.brand_name}</a></li>

<!--{/foreach}-->

</ul>

($this->_var['cat']['id'])
这个地方是什么原理?
先来看左边的成长用品,它实际上是一个分类id.
那么我们要把这个分类id给传进函数中去。
这个分类id放在哪里?
ecshop中的关于smarty的部分内容全部放在cls_templets.php中。
去看一下这个文件你知道。
这个分类id是从数据库读出来之后在smarty这个类中是放在$_var[]这个数组中的。
那么,这个数组到底有多大呢?
真的比你想象的要大。
太多太多的数据都是存在它里面的。

所以我们从这里拿出来这个分类id。其它的就好办了。
这是关键的地方。

当然,另一个关键的地方是这个函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: