
phpcms 的“顶踩”功能可以通过自定义字段结合简单的 PHP 逻辑和前端交互来实现。系统本身没有内置完整的顶踩模块,但你可以通过以下方式手动添加并使用。
1. 添加顶踩字段到模型
要支持顶踩,先要在对应的内容模型中添加两个字段:
支持数(digg):用于存储“顶”的次数,类型为 INT,默认值设为 0 反对数(burry):用于存储“踩”的次数,类型同样为 INT,默认值 0
进入后台 → 内容模型管理 → 修改对应模型(如文章模型)→ 字段管理 → 添加新字段,分别创建 digg 和 burry 字段。
2. 修改内容模板添加顶踩按钮
打开对应的内容显示模板文件(如 show.html),在合适位置加入顶踩按钮代码:
立即学习“PHP免费学习笔记(深入)”;
示例代码:<div class="digg-burry"> <a href="javascript:void(0);" onclick="digg_content(<?php echo $id;?>)">顶 (<span id="digg_num"><?php echo $digg;?></span>)</a> <a href="javascript:void(0);" onclick="burry_content(<?php echo $id;?>)">踩 (<span id="burry_num"><?php echo $burry;?></span>)</a></div>
3. 创建处理顶踩的 PHP 接口
在网站某个可访问目录(如 api/)下创建一个处理脚本,例如 digg.php:
<?phpdefine(‘PHPCMS_PATH’, dirname(__FILE__) . ‘/’); include PHPCMS_PATH.’init.php’;pc_base::load_app_class(‘digg_api’,’content’,0);$content_id = intval($_POST[‘id’]);$type = trim($_POST[‘type’]); // digg 或 burryif (!$content_id) { exit(‘0’);}// 实例化内容模型$Model = pc_base::load_model(‘content_model’);$Model->set_model(1); // 根据你的模型ID调整// 获取当前数据$data = $Model->get_one(array(‘id’=>$content_id));if (!$data) { exit(‘0’);}$field = $type == ‘digg’ ? ‘digg’ : ‘burry’;$new_value = $data[$field] + 1;// 更新数据库$Model->update(array($field => $new_value), array(‘id’=>$content_id));// 返回最新数值exit($new_value);?>
4. 前端 JS 实现异步点击
在页面底部或模板中加入 JavaScript 代码:
function digg_content(id) { send_vote(id, ‘digg’);}function burry_content(id) { send_vote(id, ‘burry’);}function send_vote(id, type) { $.post(‘/api/digg.php’, {id:id, type:type}, function(res){ if (res > 0) { if (type == ‘digg’) { $(‘#digg_num’).text(res); } else { $(‘#burry_num’).text(res); } alert(‘感谢您的投票!’); } else { alert(‘操作失败,请重试’); } });}
确保页面已加载 jQuery,否则需引入或改用原生 JS。
5. 安全与防刷建议
使用 cookie 或 session 记录用户是否已顶/踩过,防止重复提交 限制同一 IP 短时间内多次操作 可结合会员系统,仅允许登录用户顶踩
基本上就这些。不复杂但需要一点开发基础。按步骤操作后,你的 phpcms 站点就能支持顶踩功能了。

评论(0)