公共佈局包括php
一、頁頭、頁腳{layout}html
正文:{__COMMENT__}thinkphp
導入:<layout name="layout">數據庫
二、商品導航{nav.html} ==> include爲tp中自帶的標籤數組
<include file="nav.html">緩存
三、幫助信息{help.html}佈局
<include file="help.html">this
擴展:模型文件的存放位置,三種方法:spa
1. 全部的模型都放到後臺,之後前臺也到後臺取模型如:code
$catModel = D(‘Admin/Category’); // 生成Admin模塊下的Category
2. 後臺用的放到後臺模塊,前臺用的放到前臺模塊。
3. 在Common模塊下建立公共的模型,把公共的代碼放到這個模型中,先後臺特有的方法在先後模塊再各個單獨繼承這個公共的模型
製做首頁
一、在分類模型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; //有緩存直接返回緩存數據 }
二、製做導航條控制器,須要輸出導航條的控制器,繼承其便可
三、修改導航頁nav.html,循環輸出內容