>{$jz}變量可以輸出所有內容
內容頁也可以使用{$type}調用欄目所有內容的哦~
~~~
商品標題:{$jz['title']}
當前位置:{$positions}
商品SEO標題:{$jz['seo_title']}
商品關鍵詞:{$jz['keywords']}
商品點擊量:{$jz['hits']} 自增操作{fun incrData('product',$jz['id'],'hits')}
商品主圖:{$jz['litpic']}
商品價格:{$jz['price']}
商品庫存:{$jz['stock_num']}
商品簡介:{$jz['description']}
商品內容:{$jz['body']}
商品上傳管理員:{fun adminInfo($jz['userid'],'name')}
商品更新時間:{fun date('Y-m-d',$jz['addtime'])}
其他字段內容統一輸出:{$jz['字段標識']} 如:{$jz['dianhua']}
#自定義當前位置:【不要求完全掌握,知道可以遍歷輸出面包屑導航即可】
{loop $position_data as $v}
{php echo '<a href="'.$v['url'].'">'.$v['classname'].'</a>' /}
{/loop}
~~~
## 商品圖集
~~~
{php $pictures = explode('||',$jz['pictures']) /}
{foreach $pictures as $v}{if($v!='')}
圖片鏈接:{$v}
{/if}
{/foreach}
~~~
## 商品屬性
~~~
{php $product_fields = get_fields_show($jz['tid'],$type['molds']) /}
#也可以直接放進foreach里面,如{foreach get_fields_show($jz['tid'],$type['molds']) as $v}
{foreach $product_fields as $v}
屬性名:{$v['fieldname']}
{if($v['fieldtype']==7)}
#單選
輸出單選值:{fun get_key_field_select($jz[$v['field']],$type['molds'],$v['field'])}
{else if($v['fieldtype']==8)}
#多選
輸出多選值,并用空格分隔:{fun implode(' ',get_key_field_select($jz[$v['field']],$type['molds'],$v['field']))}
{else}
#默認值
輸出原值:{$jz[$v['field']]}
{/if}
{/foreach}
~~~
## 點評/星星數
> 五顆星為滿分,評分數為總星數/投票數,點了星星并提交評論才算評分成功
~~~
<div class="rating">
#獲取當前商品的點評數據
{php $comment = show_comment($jz['tid'],$jz['id']) /}
#判斷是否有評論
#獲取星星數
{php $star_num = $comment['average'] /}
#判斷是否有評論,如果沒有則返回false
{if($comment['data'])}
{for $i=1;$i<=$star_num;$i++}
<!--輸出滿星-->
<img src="assets/img/star.svg">
{/for}
{if(round($star_num)!=$star_num)}
<!--輸出半星-->
<img src="assets/img/star-half-empty.svg">
{/if}
{if($star_num<5)}
{for $i=1;$i<=(5-$star_num);$i++}
<!--輸出空星-->
<img src="assets/img/star-empty.svg">
{/for}
{/if}
#星星數:{$star_num}
#投票數:{$comment['count']}
{$star_num} - {$comment['count']} 票
{else}
#輸出5個空星
<img src="assets/img/star-empty.svg"><img src="assets/img/star-empty.svg"><img src="assets/img/star-empty.svg"><img src="assets/img/star-empty.svg"><img src="assets/img/star-empty.svg">
0 - 0 票
{/if}
</div>
~~~
## 加入購物車
~~~
<button onclick="addcart({$type['id']},{$jz['id']},1)" class="btn btn-primary" type="button"><i class="icon-basket"></i>加入購物車</button>
~~~
## 加入購物車JS
```
function addcart(tid,id,num){
$.ajax({
url:"{fun U('user/addcart')}",//請求的url地址
dataType:"json",//返回格式為json
async:true,//請求是否異步,默認為異步,這也是ajax重要特性
data:{tid:tid,id:id,num:num,ajax:1},//參數值
type:"POST",//請求方式
beforeSend:function(){
//請求前的處理
},
success:function(r){
if(r.code==0){
window.location.href=r.url;
}else{
alert(r.msg);
}
},
complete:function(){
//請求完成的處理
},
error:function(){
//請求出錯處理
alert('網絡錯誤');
}
})
}
```
## 相關商品
~~~
當前模塊標識[表名]:{$type['molds']}
當前商品ID:{$jz['id']}
{loop table="$type['molds']" notin="id|$jz['id']" limit="3" as="v"}
notin:表示除當前ID外的產品
商品標題:{$v['title']}
商品鏈接:{$v['url']}
商品SEO標題:{$v['seo_title']}
商品關鍵詞:{$v['keywords']}
商品點擊量:{$v['hits']}
商品主圖:{$v['litpic']}
商品價格:{$v['price']}
商品庫存:{$v['stock_num']}
商品簡介:{$v['description']}
商品內容:{$v['body']}
商品上傳管理員:{fun adminInfo($v['userid'],'name')}
商品更新時間:{fun date('Y-m-d',$v['addtime'])}
{/loop}
~~~
## 上一個
~~~
#判斷是否有上一個
{if($aprev)}
上一個鏈接:{$aprev['url']}
上一個標題:{$aprev['title']}
{else}
#如果沒有上一個,則輸出這里的內容
{/if}
~~~
## 下一個
~~~
#判斷是否有下一個
{if($anext)}
下一個的鏈接:{$anext['url']}
下一個的標題:{$anext['title']}
{else}
#如果沒有下一個,則輸出這里的內容
{/if}
~~~
## 點贊
~~~
#判斷是否點贊
{if(checkLikes($type['id'],$jz['id']))}
<span style="color:#f00;cursor:pointer;" onclick="likes({$type['id']},{$jz['id']})" class="icon-like">已點贊</span>
{else}
<span style="color:gray;cursor:pointer;" onclick="likes({$type['id']},{$jz['id']})" class="icon-like">點贊</span>
{/if}
~~~
## 點贊JS
```
function likes(tid,id){
$.ajax({
url:"{fun U('user/likesAction')}",//請求的url地址
dataType:"json",//返回格式為json
async:true,//請求是否異步,默認為異步,這也是ajax重要特性
data:{tid:tid,id:id,ajax:1},//參數值
type:"POST",//請求方式
beforeSend:function(){
//請求前的處理
},
success:function(r){
if(r.code==0){
alert(r.msg);
window.location.reload();
}else{
alert(r.msg);
}
},
complete:function(){
//請求完成的處理
},
error:function(){
//請求出錯處理
alert('網絡錯誤');
}
})
}
```
## 收藏
~~~
#判斷是否已經收藏
{if(checkCollect($type['id'],$jz['id']))}
<span style="color:#f00;cursor:pointer;" onclick="collect({$type['id']},{$jz['id']})">已收藏</span>
{else}
<span style="color:gray;cursor:pointer;" onclick="collect({$type['id']},{$jz['id']})">收藏</span>
{/if}
~~~
#收藏JS
```
function collect(tid,id){
$.ajax({
url:"{fun U('user/collectAction')}",//請求的url地址
dataType:"json",//返回格式為json
async:true,//請求是否異步,默認為異步,這也是ajax重要特性
data:{tid:tid,id:id,ajax:1},//參數值
type:"POST",//請求方式
beforeSend:function(){
//請求前的處理
},
success:function(r){
if(r.code==0){
alert(r.msg);
window.location.reload();
}else{
alert(r.msg);
}
},
complete:function(){
//請求完成的處理
},
error:function(){
//請求出錯處理
alert('網絡錯誤');
}
})
}
```
- 引言
- 條款
- 開始使用
- 模板標簽
- 公共配置
- 系統配置
- 自定義配置
- 網站欄目
- 全局欄目屬性
- 導航欄相關
- 當前欄目下的直系下級
- 當前欄目下的直系上級
- 欄目詳情頁
- 欄目列表頁
- 欄目分頁
- 輸出三級及三級以上欄目
- 當前位置面包屑
- 獲取當前欄目的頂級欄目
- 直播講解欄目相關
- 文章詳情頁
- 基本內容
- 點贊
- 收藏
- 相關文章
- 輸出新增字段
- 商品詳情頁
- 基本內容
- 輸出新增字段
- 商品圖集
- 點贊
- 收藏
- *點評星星
- 加入購物車
- *評論
- 相關商品
- 自定義字段
- 原樣輸出
- 單選字段
- 多選字段
- loop標簽
- 通用說明
- loop分頁
- 案例說明
- like使用
- 怎么判斷loop沒有數據
- limit使用
- day參數
- table缺省參數
- 單選多選相關
- 單選字段輸出
- 多選字段輸出
- 特殊輸出
- 輸出換行
- 替換字符串
- 輸出被解析的HTML原句
- 截取字符串
- 內容body去除HTML
- 分割字符輸出
- 人性化時間顯示
- 搜索功能
- 單模塊搜索
- 多模塊搜索
- 搜索擴展
- 搜索結果列表頁
- 會員模塊
- 判斷是否登錄
- 判斷是否評論
- 計算評論數
- 如果判斷會員組是否權限
- 如何輸出分組信息
- 如何輸出所有用戶分組
- 如何輸出所有會員
- 輸出某個會員發布的內容
- 查詢一個用戶的所有信息
- 輸出我的粉絲列表
- 輸出我的關注列表
- 獲取粉絲數
- 獲取關注數
- 判斷是否關注
- 關注與取消關注鏈接
- 判斷會員是否購買該商品
- foreach標簽
- for標簽
- fun標簽
- php標簽
- 不解析標簽
- if..else..標簽
- screen篩選標簽
- 客戶端判斷
- 輪播圖
- 友情鏈接
- 自定義圖集輸出
- Tags標簽調用及使用說明
- 網站留言調用
- 自定義單頁
- 各種統計
- 各種計數顯示數
- 文章歸檔內容歸檔
- 系統架構
- 高級功能
- ajax數據交互
- ajax在欄目頁的應用
- ajax在screen篩選中的應用
- screen多選篩選
- Message留言表單
- 萬能表單
- 多語言支持
- 系統高級配置說明
- 網站動態鏈接
- 郵件發送
- 自定義路由配置
- 插件開發
- 控制器方法覆蓋(cover)[簡單]
- 控制器方法鉤子(hook)[復雜]
- 制成后臺安裝插件
- 微信小程序
- 開始起步
- 小程序開發
- API訪問接口數據
- 輪播圖(幻燈片)
- 訪問欄目列表
- 詳情頁查詢
- 欄目詳情查詢
- 留言接口
- 附錄
- 時間
- 富文本編輯器導航
- 偽靜態配置
- 二維碼生成
- 常見問題
- 靜態生成HTML頁面失敗問題
- 為什么默認模板打開首頁很慢,而打開后臺卻很快?
- 如何判斷首頁、欄目頁、內容頁、單頁
- 視頻教程
- 版本更新
- 寶塔一鍵部署