公共布局包括

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,循环输出内容

最新文章

  1. 用自己赚的钱第一次坐飞机 那feel倍儿爽
  2. LoadRunner测试结果分析01 转载至zhangzhe的新浪博客
  3. 宏碁台式机,如何设置u盘启动
  4. nginx重启
  5. javascript 字符转换为ascii码,ascii码转换为字符
  6. eclipse的ssh框架详解
  7. HDU 1892 See you~
  8. Struck: Structrued Output Tracking with Kernels 论文笔记
  9. Gulp-入门教程 搭配环境
  10. [ext4]空间管理 - 与分配相关的关键数据结构
  11. 监控mysql主从同步状态
  12. 你可能需要为你的 APP 适配 iOS 11
  13. Eclipse中设置作者日期等Java注释模板
  14. tensorflow中tf.ConfigProto()用法解释
  15. VS的ASP.NET项目中cshtml关键词出错 红线,当前上下文中不存在名称
  16. phython安装
  17. LOJ 3043: 洛谷 P5280: 「ZJOI2019」线段树
  18. HTML+CSS:圆形和圆角图片格式
  19. 第 8 章 容器网络 - 050 - 创建 overlay 网络
  20. js对数组对象的操作以及方法的使用

热门文章

  1. Steeltoe
  2. 如何在两个月的时间内发表一篇EI/SCI论文-我的时间管理心得
  3. 显卡 GPU 关系
  4. 【bootstrap】插件
  5. git忽略文件留存
  6. FactoryBean的实现原理与作用
  7. js中array(数组).map
  8. [转]SQL Server 安全性概論與無法刪除資料庫使用者的解決辦法
  9. CodeForces - 607B (记忆化搜索)
  10. 淘宝前端框架kissyui