文章评论标签
文章评论功能用于在文章详情页展示和提交评论。系统既提供模板标签直接渲染,也支持前端 AJAX 调用。
方式一:模板标签直接渲染(推荐)
在内容详情页模板中使用 {soeay:comment} 块标签输出评论列表。id 属性可省略,系统会自动取当前内容 ID;如需在其它位置调用指定文章评论,可传 id={soeay:content.id}。
{soeay:comment num=10}
<div class="comment-item">
<p>评论内容:[soeay:comment]</p>
<p>评论时间:[soeay:create_time]</p>
</div>
{/soeay:comment}
| 属性 | 说明 | 默认值 |
|---|---|---|
| id | 内容ID,在内容详情页可省略,自动取当前内容ID | 当前内容ID |
| num | 显示条数 | 10 |
评论列表可用变量
| 变量 | 说明 |
|---|---|
| [soeay:id] | 评论ID |
| [soeay:uid] | 评论用户ID(0 表示匿名) |
| [soeay:comment] | 评论内容 |
| [soeay:create_time] | 评论时间 |
| [soeay:i] / [soeay:num] | 循环序号 |
方式二:前端 AJAX 调用
如需异步加载、分页或更复杂的交互,可调用以下接口:
| 接口 | 方法 | 说明 |
|---|---|---|
| /comment/list?contentid=1 | GET | 获取评论列表 |
| /comment/add | POST | 发表评论(需登录) |
| /comment/like | POST | 点赞评论 |
| /comment/oppose | POST | 反对评论 |
评论提交表单示例
{soeay:if('{soeay:member.id}'!='')}
<textarea id="comment-content" placeholder="发表评论..."></textarea>
<button onclick="submitComment()">发表评论</button>
{else}
<p>请先登录后发表评论</p>
{/soeay:if}
前端调用示例
// 获取评论列表
fetch('/comment/list?contentid=' + contentId)
.then(r => r.json())
.then(data => renderComments(data));
// 提交评论
fetch('/comment/add', {
method: 'POST',
headers: { 'X-CSRF-Token': csrfToken },
body: JSON.stringify({ contentid: 1, comment: '...' })
});
使用场景
- 在文章详情页底部展示评论列表。
- 会员登录后才允许发表评论,未登录时给出提示。
- 如需评论分页,建议通过 AJAX 调用
/comment/list接口实现。
