• PHP.49-TP框架商城应用实例-前台1-公共布局、制作首页


    公共布局包括

    1、页头、页脚{layout}

      正文:{__COMMENT__}

      导入:<layout name="layout">

    2、商品导航{nav.html}    ==> include为tp中自带的标签

      <include file="nav.html">

    3、帮助信息{help.html}

      <include file="help.html">

    扩展:模型文件的存放位置,三种方法:

      1. 所有的模型都放到后台,以后前台也到后台取模型如:

        $catModel = D(‘Admin/Category’);   // 生成Admin模块下的Category

      2. 后台用的放到后台模块,前台用的放到前台模块。

      3. 在Common模块下创建公共的模型,把公共的代码放到这个模型中,前后台特有的方法在前后模块再各个单独继承这个公共的模型

    制作首页

    1、在分类模型CategoryModel.class.php取出导航条上分类树

      注:通过tp缓存避免多次读取数据库,影响访问速度

        // 获取导航条上的数据
            public function getNavData()
            {
                // 先从缓存中取出数据
                $catData = S('catData');
                // 判断如果没有缓存,或者缓存过期就重新构造数组
                if(!$catData)
                {
                    //取出所有分类
                    $all = $this->select();
                    $ret = array();
                    // 循环所有的分类找出顶级分类
                    foreach($all as $k => $v)
                    {
                        if($v['parent_id'] == 0)
                        {
                            // 循环所有分类找出这个顶级分类的子分类
                            foreach($all as $k1 => $v1)
                            {
                                if($v1['parent_id'] == $v['id'])
                                {
                                    // 循环所有分类找出这个二级分类的子分类
                                    foreach ($all as $k2 => $v2)
                                    {
                                        if($v2['parent_id'] == $v1['id'])
                                        {
                                            $v1['children'][] = $v2;
                                        }
                                    }
                                    $v['children'][] = $v1;
                                }    
                            }
                            $ret[] = $v;
                        }
                    }
                    // 把数组缓存1天(30秒)
                    S('catData', $ret, 0);
                    return $ret;
                }
                else
                    return $catData;    //有缓存直接返回缓存数据
            }

    2、制作导航条控制器,需要输出导航条的控制器,继承其即可

    3、修改导航页nav.html,循环输出内容

     

     

     

  • 相关阅读:
    Redis提供的持久化机制(RDB和AOF)
    linux创建子进程--fork()方法
    数据库-锁的实践
    nginx中,$request_uri和$uri的区别
    journal size
    目的:将两个三T的硬盘做成LVM(sdc,sdd)
    安装 rbbitMQ redis mongo的三个扩展
    MySQL server has gone away
    mysql创建utf-8字符集数据库
    Linux下杀毒软件clamav的安装和使用
  • 原文地址:https://www.cnblogs.com/zixuanfy/p/7138107.html
Copyright © 2020-2023  润新知