例子:首页实现显示子分类商品,并实现点击Tab页切换分类商品(非AJAX)

开始:
   1. 打开调试开关
    文件地址:include/cls_template.php 找到 :

 function _eval($content)
 
   函数体第一行增加: echo($content);
   改写调试完毕后在注释掉。
 
2. 修改goods获取函数,以便显示子分类。
   文件:include/cls_goods.php 找到函数:function assign_cat_goods,
在 $cat['id']   = $cat_id; 后增加一行:
$cat['cat_id'] = get_child_tree($cat_id);

// 调用子分类信息。

 
3.修改模板 cat_goods.lbi ,显示子分类并调用子商品
 
<div class="row" style="margin-top:15px;" id="CatGoods">
  <div class="span12">
    <div class="tabbable" style="position:relative;"> 
      <!--   {if $goods_cat.cat_id}   -->   //有子分类
      <ul class="nav nav-tabs" >
        <!--    {foreach from=$goods_cat.cat_id item=rec_cat name=f}--> //显示子分类
        <li <!-- {if $smarty.foreach.f.index eq 0} -->class="active" <!--{/if}-->><a href="#tab{$rec_cat.id}" data-toggle="tab">{$rec_cat.name|escape:html}</a></li>
        <!--    {/foreach}-->
       
      </ul>
<!--      <div align="right" class="more"><a href="{$goods_cat.url}">更多>></a></div>-->
      <div class="tab-content">
      <!--   {foreach from=$goods_cat.cat_id item=rec_cat1 name=f1}-->
//这里循环获取当前商品分类ID,传入获取商品信息集合
       <?php 
               $cid = $this->_var['rec_cat1']['id'];
            $this ->assign('goods_cat_'.$cid, assign_cat_goods($cid, 4));
            $this->assign('cat_goods_nf',$this->_var['cat_goods_'.$cid]);
     ?>
        <div class="tab-pane <!-- {if $smarty.foreach.f1.index eq 0} -->active<!--{/if}-->" id="tab{$rec_cat1.id}">
          <div class="row">
            <!--{foreach from=$cat_goods_nf item=goods}--> //显示商品
            <div class="span3">
              <div class="thumbnail"> <a href="{$goods.url}"><img src="{$goods.thumb}" alt="{$goods.name|escape:html}"></a>
                <div class="thumspan">{$goods.short_name|escape:html}<br />
                市场价:<span style="color:#C30"> <b>{$goods.market_price}</b></span></div>
              </div>
            </div>
            <!--{/foreach}-->       
          </div>
        </div>
        <!--    {/foreach}-->    
      </div>
      <!--    {else}  --> //单个分类,无下级分类
      <ul class="nav nav-tabs" >
        <li class="active"><a href="#tab{$goods_cat.id}" data-toggle="tab">{$goods_cat.name|escape:html}</a></li>
      </ul>
      <div align="right" class="more"><a href="{$goods_cat.url}">更多>></a></div>
      <div class="tab-content">
        <div class="tab-pane active" id="tab{$goods_cat.id}">
          <div class="row">
            <!--{foreach from=$cat_goods item=goods}-->
            <div class="span3">
              <div class="thumbnail"> <a href="{$goods.url}"><img src="{$goods.thumb}" alt="{$goods.name|escape:html}"></a>
                <div class="thumspan">{$goods.short_name|escape:html}<br />
                  市场价:<span style="color:#C30"> <b>{$goods.market_price}</b></span></div>
              </div>
            </div>
            <!--{/foreach}-->
           
          </div>
        </div>
      </div>
      <!--        {/if}    -->
     
    </div>
  </div>
</div>
<script type="text/javascript">divheight("CatGoods");</script>
 
效果如下:
 
在实际使用中,发现两个bug:
1.后台未设置显示大类时,会出现空白分类。
2.当存在两个大类显示的时候,第二个大类子分类显示的都是第一个大类的最后一个分类的内容。
改正如下:
1. 增加当前大分类ID是否有值的判断
    增加位置:商品分类模板第一行cat_goods.lbi
    代码:

<!--   {if not is_null($goods_cat.id) || $goods_cat.id>0}   -->

2. 修改获取当前ID代码。代码如下:

      <!--   {foreach from=$goods_cat.cat_id item=rec_cat1 name=f1 key=curCat}-->
//这里循环获取当前商品分类ID,传入获取商品信息集合
<?php
$cid = $this->_var['curCat']; //改为这个
$this ->assign('goods_cat_'.$cid, assign_cat_goods($cid, 4)); //4表示每个分类显示的商品数量,根据实际情况自己修改
$this->assign('cat_goods_nf',$this->_var['cat_goods_'.$cid]);
?>
注意:这里的foreach中的key表示 集合中的键值,也可以说是主键,一般是集合的ID
 

ECSHOP:首页实现显示子分类商品,并实现点击Tab页切换分类商品的更多相关文章

  1. jquery实现tab页切换显示div

    1.jQuery实现tab切换显示代码实现 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" &q ...

  2. EcShop首页显示特定分类的精品新品热销特价等推荐商品

    EcShop首页显示特定分类的精品新品热销特价等推荐商品 很多大型的B2C商城都有特定分类专区,该分类下的[分类名称].[推荐子分类 或 推荐品牌].[大图片/推荐单品].[推荐商品].[促销商品]. ...

  3. ecshop首页调用某分类下的商品|assign_cat_goods()

    ecshop首页调用分类下的商品其实很简单,也有模板设置那里可以设置,不过那个只可以用cat_goods.lib,不方便,所以我想看看怎么能简单的实现ecshop首页调用分类下的商品 只需要在inde ...

  4. ecshop首页调用指定商品分类下的商品品牌列表

    转之--http://www.16css.com/ecshop/735.html 通过二次开发可以实现ECSHOP首页调用指定分类下的品牌列表. 第一步: 打开根目录下的index.php 在最后面 ...

  5. 如何处理wordpress首页不显示指定分类文章

    如何实现wordpress首页不显示指定分类文章,要实现这一步,首先必须找到需要屏蔽的该目录的id,那么如何查看wordpress的分类id呢?有两种方法: 通过wordpress后台查看分类的ID ...

  6. magento -- 给后台分类管理页的分类商品加一栏商品类型

    当使用特定分类来控制前台的商品显示时,后台分类管理页的分类商品只有编号.名称.SKU和价格这几栏,选择特定商品相当不便. 可以在这里多加一栏商品类型用来筛选商品,添加的方式很简单. 打开文件/app/ ...

  7. ecshop首页调用团购信息产品购买人数

    当我们在ecshop后台录入ecshop的团购信息之后,我们在ecshop的前台首页index.php里面,可以看到他能调用ecshop的团购商品信息,其中就包括团购商品的一些价格信息.但是如何在ec ...

  8. Hexo瞎折腾系列(4) - 站点首页不显示文章全文

    文章摘要设置 打开主题配置文件 _config.yml 文件,找到如下: # Automatically Excerpt. Not recommend. # Please use <!-- mo ...

  9. {二逼小青年的记事簿}为什么treelist不会显示子节点的文字?

    <TreeView Name="treeView" DockPanel.Dock="Left" MinWidth="200" > ...

随机推荐

  1. 在fedora 桌面上添加应用程序

    在网上下了个android studio,这个程序只是的压缩包,解压后程序也只能在SHELL下敲入studio.sh才能运行 能不能向其他程序一样,在fedora桌面上找到应用程序,点击执行呢.在网上 ...

  2. 2、[转]WPF与WinForm的比较

    http://www.cnblogs.com/KnightsWarrior/archive/2010/07/09/1774059.htmlhttp://www.cnblogs.com/zenghong ...

  3. SharpDeveloeper开发ASP.NET MVC汗流浃背

    今天好不容易休息了一天,上网狂了一圈,突然想起了以前的一个轻量级的开发工具"SharpDeveloper",于是就下载试着来开发一下ASP.NET,但是老魏没有想到的是,虽然官方提 ...

  4. 【BZOJ 1821】 [JSOI2010]Group 部落划分 Group

    Description 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落之间则经常发生争斗.只是,这一切都成 ...

  5. Java调用SQLCMD遇到的问题

    今天用Java调用SQLCMD命令时,一直提示找不到SQLCMD命令,但是通过CMD命令确可以使用,因为我的sqlcmd是新安装的,所以重新配置了新的path路径,而cmd可以调用是因为重新开一个cm ...

  6. sequel 连接不上,命令行能连上

    Sequel pro won't connect anymore I'm running into some trouble right now. I worked yesterday on my d ...

  7. HDU 1494 跑跑卡丁车 (DP)

    题目链接 题意 : 中文题不详述. 思路 : sum = L*N 段,每走过一段如果不用加速卡的话,能量会增20%,将20%看作1,也就是说每涨到15就要变为10,所以最多是14才不浪费. dp[i] ...

  8. linux grep和正则表达式

    虽然正则表达式经常都在用,但是很少能够静下心来仔细的总结一下.最近看了一个台湾人的网站叫做鸟哥Linux私房菜,关于正则表达式的描述挺详细的.在此,我进行一下总结,如果想仔细的学习正则表达式,请访问鸟 ...

  9. [itint5]单词游戏

    http://www.itint5.com/oj/#36 此题在数据大些,而且全是A的情况下会超时(因为要匹配到很后面才false).通过利用数组本身作为visited标示,而且使用string引用, ...

  10. OpenStack 部署运维实战

    http://www.ibm.com/developerworks/cn/cloud/library/1408_zhangxl_openstack/#icomments 本文为您介绍了网易公司基于 O ...