例子:首页实现显示子分类商品,并实现点击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. Linux 启动直接进入 console,

    我的电脑上有两块显卡,上次fedora更新后,自动安装了nvidia的驱动, 然后悲剧发生了.再也不能够正常进行图形界面了.所以需要进入CONSOLE. 1. 当系统启动时,停止grub menu自动 ...

  2. 解决rhel相关系统下yum找不到安装包的解决方法

    最近重新安装了Linux,用的版本是CentOS 5.1.但老是出现很多包找不到的情况. [root@toughhou /]# yum install rlwrap Loaded plugins: f ...

  3. Oracle “CONNECT BY” 使用

    Oracle “CONNECT BY” 使用 功能说明: 语法结构如下: [ START WITH condition ] CONNECT BY [ NOCYCLE ] condition 说明: 1 ...

  4. sql查找最小缺失值与重用被删除的键(转载)

    转载自:http://blog.csdn.net/yanghua_kobe/article/details/6262550 在数据处理时,我们经常会使用一些“自增”的插入方式来处理数据.比如学生学号: ...

  5. java优化占用内存的方法(一)

    java做的系统给人的印象是什么?占 内存!说道这句话就会有N多人站出来为java辩护,并举出一堆的性能测试报告来证明这一点.其实从理论上来讲java做的系统并不比其他语言开发出来的 系统更占用内存, ...

  6. NSFileHandle 和 NSFileManager的一些用法

    文件操作 NSFileManager 常见的NSFileManager文件的方法: -(BOOL)contentsAtPath:path 从文件中读取数据 -(BOOL)createFileAtPat ...

  7. BZOJ3404: [Usaco2009 Open]Cow Digit Game又见数字游戏

    3404: [Usaco2009 Open]Cow Digit Game又见数字游戏 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 47  Solved ...

  8. string.Equals 比较2个字符串是否相同忽略大小写

    bool res = string.Equals(str1, str2, StringComparison.CurrentCultureIgnoreCase)

  9. POJ 1850 Code(组合数)

    http://poj.org/problem?id=1850 题意 :给定字符串,系统是用字符串组成的,字符串是按字典序排的.编码系统有三条规则,1这些的单词的长度是由小到大的,2相同长度的按字母在字 ...

  10. POJ3207+tarjan+2-sat

    /* 2-sat 题意:给定一个圆,圆上一些点.两点一线.现给出一些线,这些线可以在圆内连起来,也可以在圆外. 问有没有可能所有的线画完 且 不出现相交. 思路:把线画在圆内或圆外 看成一个组合.其它 ...