例子:首页实现显示子分类商品,并实现点击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. (转)《深入理解java虚拟机》学习笔记8——Tomcat类加载器体系结构

    Tomcat 等主流Web服务器为了实现下面的基本功能,都实现了不止一个自定义的类加载器: (1).部署在同一个服务器上的两个web应用程序所使用的java类库可以相互隔离. (2).部署在同一个服务 ...

  2. iOS7.1Https企业证书发布方法

    openssl使用的是macos系统自带的版本,关键点是不同直接使用ios设备打开https的链接,需要将证书发到系统的mail里,安装到设备, 如果命令执行不成功,用sudo执行. 1.生成服务器的 ...

  3. 判断webpart类型 How can I tell what type a web part is?

    using(new SPSite("http://mysite/myweb").OpenWeb()){ //give relative path of the webpartpag ...

  4. python学习笔记11(函数二): 参数的传递、变量的作用域

    一.函数形参和实参的区别 形参全称是形式参数,在用def关键字定义函数时函数名后面括号里的变量称作为形式参数. 实参全称为实际参数,在调用函数时提供的值或者变量称作为实际参数. >>> ...

  5. java当中的定时器的4种使用方式

    import java.util.Calendar;import java.util.Date;import java.util.Timer;import java.util.TimerTask; p ...

  6. 无锁算法CAS 概述

    无锁算法CAS 概述 JDK5.0以后的版本都引入了高级并发特性,大多数的特性在java.util.concurrent包中,是专门用于多线并发编程的,充分利用了现代多处理器和多核心系统的功能以编写大 ...

  7. zoj 3620 Escape Time II dfs

    题目链接: 题目 Escape Time II Time Limit: 20 Sec Memory Limit: 256 MB 问题描述 There is a fire in LTR ' s home ...

  8. Educational Codeforces Round 5 B

    Problem B:http://codeforces.com/contest/616/problem/B B. Dinner with Emma 题意:一对夫妻要去餐厅吃晚饭,Emma 想去最豪华( ...

  9. c_str 以及atoi

    const char *c_str();c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同. 这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类 ...

  10. 服务器程序源代码分析之三:gunicorn

    服务器程序源代码分析之三:gunicorn 时间:2014-05-09 11:33:54 类别:网站架构 访问: 641 次 gunicorn是一个python web 服务部署工具,类似flup,完 ...