## 获取评论数据(如果当前商品点评星星已获取过,则不需要再获取)
```
{php $comment = show_comment($jz['tid'],$jz['id']) /}
```
## 判断是否有评论
```
{if($comment['data'])}
#有评论
{foreach $comment['data'] as $v}
#判断楼层,输出一级楼层
#评论楼层,level=0代表第一层,且回复的主题
{if($v['level']==0)}
<!--点评星星输出-->
#判断是否有提交评分星星,评论可以不提交点评星星,提交点评星星必须要评论
{if($v['likes']!=0)}
#这里输出点评星星
<div class="rating">
{for $i=1;$i<=$v['likes'];$i++}
#满星
<img src="{$tpl}assets/img/star.svg">
{/for}
{if(round($v['likes'])!=$v['likes'])}
#半星
<img src="{$tpl}assets/img/star-half-empty.svg">
{/if}
{if($v['likes']<5)}
{for $i=1;$i<=(5-$v['likes']);$i++}
#空星
<img src="{$tpl}assets/img/star-empty.svg">
{/for}
{/if}
{/if}
<!--输出第一层评论内容-->
#由于内容篇幅过于多,这里暂不粘贴,可以参考官方DEMO
评论用户名:{$v['userinfo']['username']}
评论时间:{fun date('Y-m-d H:i:s',$v['addtime'])}
评论内容:{$v['body']}
#判断是否有二层评论,也就是楼中楼,楼中楼就放到第二列输出,当然,也有第三层,这个看前端怎么写代码了,暂时不提供三层以及更高层楼中楼,比较麻烦
{if($v['haschild'])}
#跟输出一层楼同样的输出方式,问题在于判断第几层楼,以及如何做处理
{foreach $comment['data'] as $vv}
#判断获取本层回复楼中楼
{if($vv['zid']==$v['id'])}
评论用户名:{$vv['userinfo']['username']}
评论时间:{fun date('Y-m-d H:i:s',$vv['addtime'])}
评论内容:{$vv['body']}
{/if}
{/foreach}
{/if}
{/if}#闭合最上面level=0的if标签
{else}
#无评论
{/if}
```
## 评论表单
> 特别提醒:评论内容最前面带 ` [@用户名]` 这个内容在提交到后台将会替换为 `@用户名` 并且提醒对应的用户,参考官方demo
```
<form action="{fun U('Comment/index')}" onsubmit="return checkForm()" method="POST">
<input name="go" value="1" placeholder="表示" id="go" type="hidden" />
<input name="star" value="0" placeholder="评论星星数" id="star" type="hidden" />
<input name="tid" value="{$type['id']}" type="hidden" />
<input name="aid" value="{$jz['id']}" placeholder="文章ID" type="hidden" />
<input name="zid" value="0" id="zid" placeholder="评论层ID" type="hidden" />
<input name="pid" value="0" id="pid" placeholder="回复层ID" type="hidden" />
<div class="form-group" >
<textarea class="form-control" id="comments" name="body" rows="5" placeholder="文明的评论是交流的开始~"></textarea>
</div>
<div class="form-group" style="text-align:right"><button class="btn btn-primary btn-inline" type="submit">提交</button></div>
</form>
```
- 引言
- 条款
- 开始使用
- 模板标签
- 公共配置
- 系统配置
- 自定义配置
- 网站栏目
- 全局栏目属性
- 导航栏相关
- 当前栏目下的直系下级
- 当前栏目下的直系上级
- 栏目详情页
- 栏目列表页
- 栏目分页
- 输出三级及三级以上栏目
- 当前位置面包屑
- 获取当前栏目的顶级栏目
- 直播讲解栏目相关
- 文章详情页
- 基本内容
- 点赞
- 收藏
- 相关文章
- 输出新增字段
- 商品详情页
- 基本内容
- 输出新增字段
- 商品图集
- 点赞
- 收藏
- *点评星星
- 加入购物车
- *评论
- 相关商品
- 自定义字段
- 原样输出
- 单选字段
- 多选字段
- 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页面失败问题
- 为什么默认模板打开首页很慢,而打开后台却很快?
- 如何判断首页、栏目页、内容页、单页
- 视频教程
- 版本更新
- 宝塔一键部署