帝国CMS二次开发:会员积分扣除置顶功能,到期自动取消
帝国CMS二次开发中,可以通过编写自定义函数来实现扣除会员积分置顶功能。首先,需要在后台设置一个字段来记录会员的积分和置顶时间。然后,在模板中调用自定义函数,根据会员的积分和置顶时间来判断是否需要扣除积分并取消置顶。如果会员的积分足够且置顶时间未到期,则扣除相应的积分并更新置顶时间;否则,保持原状。这样,当会员的积分不足或置顶时间到期时,系统会自动取消置顶,确保了公平性和合理性。
帝国CMS扣除会员积分置顶修改方法:
1、在所需的系统模型中添加int字段 top单选按钮0,1(0为否,1为是)
2、修改e/class/qinfofun.php在文件中找到
esetcookie("lastaddinfotime",time(),time()+3600*24);
到
//-------------
全部替换为:
//置顶扣分$t=$empire->fetch1("selecttopfrom{$dbtbpre}ecms_".$tbname."whereuserid='$muserid'andid='$id'andclassid='$classid'limit1");if($t[top]){$w=$empire->fetch1("selectuserfenfrom{$dbtbpre}enewsmemberwhereuserid='$muserid'");if($w[userfen]>=10){$sql3=$empire->query("update{$dbtbpre}enewsmembersetuserfen=userfen-10whereuserid='$muserid'");printerror("AddQinfoSuccess",$reurl,1);}else{$sql4=$empire->query("update{$dbtbpre}ecms_".$tbname."settop=0whereuserid='$muserid'andid='$id'andclassid='$classid'limit1");printerror("jifenbugou",$reurl,1);}}else{printerror("AddQinfoSuccess",$reurl,1);}}else{printerror("DbError","history.go(-1)",1);}}
3、修改e/class/qinfofun.php在文件中找到
if($sql){$reurl=DoingReturnUrl("ListInfo.php?mid=$mid",$add['ecmsfrom']);if($add['editgotoinfourl']&&$infor['checked'])//返回内容页{if($cr['showdt']==1){$reurl=$public_r[newsurl]."e/action/ShowInfo/?classid=$classid&id=$id";}elseif($cr['showdt']==2){$reurl=$public_r[newsurl]."e/action/ShowInfo.php?classid=$classid&id=$id";}else{$reurl=$titleurl;}}
到
//---------------
替换为:
//置顶扣分$t=$empire->fetch1("selecttopfrom{$dbtbpre}ecms_".$tbname."whereuserid='$muserid'andid='$id'andclassid='$classid'limit1");if($t[top]){$w=$empire->fetch1("selectuserfenfrom{$dbtbpre}enewsmemberwhereuserid='$muserid'");if($w[userfen]>=10){$sql3=$empire->query("update{$dbtbpre}enewsmembersetuserfen=userfen-10whereuserid='$muserid'");printerror("EditQinfoSuccess",$reurl,1);}else{$sql4=$empire->query("update{$dbtbpre}ecms_".$tbname."settop=0whereuserid='$muserid'andid='$id'andclassid='$classid'limit1");printerror("jifenbugou",$reurl,1);}}else{printerror("EditQinfoSuccess",$reurl,1);}}else{printerror("DbError","history.go(-1)",1);}}
注意代码部分的10为扣除的积分自行设置,还有可以该为自己需要的提示在e/data/language/gb/pub/q_message.php中添加(gb2312版)
又添加这个字段主要是避免与老大的那个firsttitle起冲突,避免以后升级带来的麻烦
假如会员积分不足提示积分不足但信息仍让可以提交只是不能置顶。。。。。。
在列表模板中调用方法:
[e:loop={"select*fromphome_ecms_housewheretop=1andchecked=1andclassid='$GLOBALS[navclassid]'limit3",3,24,0}]<tronmouseout="this.style.backgroundColor='#ffffff'"onmouseover="this.style.backgroundColor='#F1F5FC'"><td><?=$bqr[myarea]?></td><tdclass="tx"><fontcolor="red">[置顶]</font><ahref="<?=$bqsr[titleurl]?>"title="<?=$bqr[title]?>"target="_blank"><?=$bqr[xiangxidizhi]?></a></td><td><?=$bqr[shi]?>室<?=$bqr[ting]?>厅</td><td><?=$bqr[size]?><spanclass="m">㎡</span></td><td><?=$bqr[money]?></td><tdalign="right"><?=date('Y-m-d',$bqr[newstime])?></td></tr>[/e:loop]
//01.23日更新功能添加到期时间字段date到期之后置顶功能无效
上面的列表模板sql中添加 and (unix_timestamp(youxiaoqi)-UNIX_TIMESTAMP(NOW()))>0
模板大家自己修改,如有什么问题大家跟帖我会尽量解答
上传以下图片: