给帝国CMS装上星级评分,让网站更灵动
帝国 cms星级评分

首页 2025-09-02 23:18:31

今天心情好得离谱,像刚加满一箱98号汽油,一脚油门就能从键盘冲进宇宙。于是我打开后台,决定给那台老旧的帝国CMS做一次“抬头看星星”的手术——给它装上星级评分。别小看几颗星星,它们可是能让访客在0.1秒内决定要不要继续留下的魔法按钮。
第一步,先把“e/plus/star.php”拖进项目,这就像给夜行司机递上一副夜视镜。文件放进去后,我像给猫系铃铛一样,在模板里叮叮当当插进一段JS调用:。一刷新,页面上立马蹦出五颗小星星,像五个刚放学的熊孩子,排排坐,眨眼睛。
可熊孩子不听话,得立规矩。我钻进“userfun.php”,写下一行:$my_star=$empire->fetch1("select * from {$dbtbpre}ecms_".$classid." where id='$id'");,顺手把评分数和总票数取回来。接着在模板里加了一个onclick="StarVote(【!--id--】)",点星就投票,像极了小时候往同学背后贴“好人卡”。
但投票完还得刷新才能看到新数字?那多扫兴。于是我把AJAX搬了出来,用jQuery写了个$.post,把结果悄悄塞回页面,星星尾巴后面立刻冒出“9.6分/188人”的小红字,像爆米花噼里啪啦炸开。后台再配一个“只允许会员评分”的小开关,顺手把刷票的小黑手关在门外。
一切搞定,我点了一颗星,页面没闪、没跳,分数却从9.6升到9.7,像有人在夜空里轻轻擦了一根火柴。那一刻,我突然懂了:技术也可以很温柔,温柔到让每一次点击都像在银河里留下一颗会发光的名字。
教程:帝国CMS星级评分超细步骤
  1. 准备文件
    下载官方或可信的 star 插件包,解压后把 star.php、star.js、star.css 扔进 /e/plus/。
  2. 开启模型字段
    后台→系统→数据表与系统模型→管理模型→修改所需模型→增加字段:
    · 字段名:infopfen
    · 标识:总评分
    · 类型:INT(11) 默认0
    再增加字段:
    · 字段名:infopfennum
    · 标识:总投票数
    · 类型:INT(11) 默认0
    保存后更新缓存。
  3. 嵌入前端代码
    在内容模板(如 /e/data/template/plus/viewtemp.php)里插入:
    复制
    
    
    
  4. 创建投票接口
    在 /e/plus/star.php 顶部加安全校验:
    复制
    require('../class/connect.php');
    require('../class/db_sql.php');
    $link=db_connect();
    $empire=new mysqlquery();
    $id=(int)$_GET【'id'】;
    $classid=(int)$_GET【'classid'】;
    接收AJAX POST:
    复制
    $fen=(int)$_POST【'fen'】;
    $empire->query("update {$dbtbpre}ecms_".$classid." set infopfen=infopfen+$fen,infopfennum=infopfennum+1 where id='$id'");
    echo round(($r【'infopfen'】+$fen)/($r【'infopfennum'】+1),1);
  5. 前端无刷新提交
    在 star.js 里写:
    复制
    function StarVote(f){
        $.post('【!--news.url--】e/plus/star.php',{id:【!--id--】,fen:f},function(d){
            $('#starscore').html(d+'分');
        });
    }
  6. 权限与防刷
    后台→系统→会员→会员组权限,给“允许评星”打勾;
    star.php 里再加 if(empty($userid)) exit('login'); 防游客刷票。
  7. 样式微调
    改 star.css,把星星换成火箭、爱心、猫爪都行,只要 background:url(…) 指对路径。
  8. 最终测试
    用会员账号点星,看数据库 infopfen 与 infopfennum 是否同步增长,前台是否实时刷新。如果一切OK,就把笑容留在脸上,把代码留在服务器,把银河留给每个来访的人。
MySQL连接就这么简单!本地远程、编程语言连接方法一网打尽
还在为MySQL日期计算头疼?这份加一天操作指南能解决90%问题
MySQL日志到底在哪里?Linux/Windows/macOS全平台查找方法在此
MySQL数据库管理工具全景评测:从Workbench到DBeaver的技术选型指南
MySQL密码忘了怎么办?这份重置指南能救急,Windows/Linux/Mac都适用
你的MySQL为什么经常卡死?可能是锁表在作怪!快速排查方法在此
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
清空MySQL数据表千万别用错!DELETE和TRUNCATE这个区别可能导致重大事故
你的MySQL中文排序一团糟?记住这几点,轻松实现准确拼音排序!
别再混淆Hive和MySQL了!读懂它们的天壤之别,才算摸到大数据的门道