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

看效果:
2012-11-13 11:06 首页全部分类调用对应分类推荐品牌_第1张图片
这里的推荐品牌是写死的,而我们要实现的功能是要调用左边对应分类的品牌,也就是成长用品。

首先,你必须要有一个函数,通过传递一个分类的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。其它的就好办了。
这是关键的地方。

当然,另一个关键的地方是这个函数

你可能感兴趣的:(2012-11-13 11:06 首页全部分类调用对应分类推荐品牌)