Interact 互动插件
为 1CMS 提供点赞、收藏互动功能,支持多种内容类型,可配置按钮样式。
快速开始
基本调用
// 点赞按钮
{interact:like('article', $id)}
// 收藏按钮
{interact:favorite('article', $id)}
// 同时显示点赞+收藏
{interact:code('article', $id)}
参数说明
| 方法 | 参数 | 说明 |
|---|---|---|
like |
target_type, target_id, labelStyle |
点赞按钮 |
favorite |
target_type, target_id, labelStyle |
收藏按钮 |
code |
target_type, target_id, mode |
自定义模式 |
- target_type(必填):目标类型,用于区分不同内容的互动数据。如
'article'、'dynamic'等,自定义字符串,调用和查询时保持一致即可。 - target_id(必填):目标内容的 ID。
- labelStyle(可选):按钮样式,覆盖后台全局配置。
- mode(可选):
'both'(默认)、'like'、'favorite'
按钮样式(labelStyle)
通过第三个参数 labelStyle 控制按钮显示样式:
| 值 | 效果 |
|---|---|
'icontext' |
图标 + 文字(默认) |
'icon' |
纯图标,不显示文字 |
// 图标+文字(默认)
{interact:like('article', $id)}
{interact:like('article', $id, 'icontext')}
// 纯图标
{interact:like('article', $id, 'icon')}
{interact:favorite('article', $id, 'icon')}
不传 labelStyle 时使用后台全局配置的样式(默认 icontext)。
target_type 说明
target_type 是自定义分类标签,用于区分不同场景下的互动数据,与 CMS 模型/栏目无关联。
// 文章点赞
{interact:like('article', $id)}
// 动态点赞
{interact:like('dynamic', $id)}
注意:target_type 不同则互动数据独立计算。同一内容应使用相同的 target_type,否则首页和详情页的点赞/收藏数不共享。
资源引用
插件支持两种资源引用方式:
方式一:自动引入(推荐)
只需调用互动按钮,CSS 和 JS 会自动引入(通过 $GLOBALS['interact_assets_loaded'] 防止重复加载):
{interact:code('article', $id)} // 自动引入 interact.css 和 interact.js
方式二:手动引入
如需在页面头部预先引入:
{interact:css()}
{interact:js()}
后台配置
| 配置项 | 说明 | 默认值 |
|---|---|---|
| 按钮样式 | icontext(图标+文字)或 icon(纯图标) |
icontext |
| 点赞文字 | 点赞按钮的文字标签 | 点赞 |
| 收藏文字 | 收藏按钮的文字标签 | 收藏 |
互动逻辑
点赞/收藏为切换逻辑(toggle):
- 用户首次点击 → 记录互动数据,
addtime保存当前 Unix 时间戳 - 用户再次点击 → 删除记录(取消点赞/收藏)
- 取消后重新点击 → 插入新记录,时间为重新操作的时间

