-
会员积分扣除实现信息置顶功能(到期自动取消)
- 时间:2025-03-29 02:10:46 来源: 人气:0
在帝国CMS中实现信息置顶功能并扣除会员积分,需要对系统进行一些修改。以下是详细的步骤和代码示例,帮助您顺利完成设置。
首先,在所需的系统模型中添加一个名为 top
的 int 字段,并设置为单选按钮(0 表示否,1 表示是)。接下来,主要修改 e/class/qinfofun.php
文件中的两处代码,分别用于增加和编辑操作。
第一步:修改增加操作的代码
在文件中找到以下代码:
esetcookie("lastaddinfotime",time(),time()+3600*24);
在其下方至 //-------------
之间替换为以下代码:
// 置顶扣分
$t = $empire->fetch1("select top from {$dbtbpre}ecms_".$tbname." where userid='$muserid' and id='$id' and classid='$classid' limit 1");
if ($t[top]) {
$w = $empire->fetch1("select userfen from {$dbtbpre}enewsmember where userid='$muserid'");
if ($w[userfen] >= 10) {
$sql3 = $empire->query("update {$dbtbpre}enewsmember set userfen=userfen-10 where userid='$muserid'");
printerror("AddQinfoSuccess", $reurl, 1);
} else {
$sql4 = $empire->query("update {$dbtbpre}ecms_".$tbname." set top=0 where userid='$muserid' and id='$id' and classid='$classid' limit 1");
printerror("jifenbugou", $reurl, 1);
}
} else {
printerror("AddQinfoSuccess", $reurl, 1);
}
第二步:修改编辑操作的代码
找到以下代码:
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("select top from {$dbtbpre}ecms_".$tbname." where userid='$muserid' and id='$id' and classid='$classid' limit 1");
if ($t[top]) {
$w = $empire->fetch1("select userfen from {$dbtbpre}enewsmember where userid='$muserid'");
if ($w[userfen] >= 10) {
$sql3 = $empire->query("update {$dbtbpre}enewsmember set userfen=userfen-10 where userid='$muserid'");
printerror("EditQinfoSuccess", $reurl, 1);
} else {
$sql4 = $empire->query("update {$dbtbpre}ecms_".$tbname." set top=0 where userid='$muserid' and id='$id' and classid='$classid' limit 1");
printerror("jifenbugou", $reurl, 1);
}
} else {
printerror("EditQinfoSuccess", $reurl, 1);
}
注意事项
红色部分的数字 10
表示扣除的积分值,您可以根据实际需求自行调整。另外,提示信息 jifenbugou
可以在 e/data/language/gb/pub/q_message.php
文件中进行自定义修改。
为了避免与现有字段冲突,建议新增加一个名为 top
的字段,这样可以减少未来升级时可能带来的麻烦。
如果会员积分不足,系统会提示“积分不足”,但信息仍然可以提交,只是无法置顶。
列表模板调用方法
在列表模板中可以通过以下 SQL 查询调用置顶信息:
[e:loop={"select * from phome_ecms_house where top=1 and checked=1 and classid='$GLOBALS[navclassid]' limit 3",3,24,0}]
<tr onmouseout="this.style.backgroundColor='#ffffff'" onmouseover="this.style.backgroundColor='#F1F5FC'">
<td><?=$bqr[myarea]?></td>
<td class="tx"><font color="red">[置顶]</font>
<a href="<?=$bqsr[titleurl]?>" title="<?=$bqr[title]?>" target="_blank"><?=$bqr[xiangxidizhi]?></a></td>
<td><?=$bqr[shi]?>室<?=$bqr[ting]?>厅</td>
<td><?=$bqr[size]?><span class="m">㎡</span></td>
<td><?=$bqr[money]?></td>
<td align="right"><?=date('Y-m-d',$bqr[newstime])?></td>
</tr>
[/e:loop]
更新功能:添加到期时间
为了限制置顶的有效期,可以在数据库中新增一个名为 date
的字段,表示到期时间。在上述列表模板的 SQL 查询中加入以下条件:
and (unix_timestamp(youxiaoqi)-UNIX_TIMESTAMP(NOW())) > 0
以上就是实现帝国CMS信息置顶功能并扣除会员积分的完整步骤。如果您有任何问题,欢迎跟帖讨论,我会尽力解答。
相关文章
-
如果您正在使用 PbootCMS 构建网站,并希望自定义留言功能的提示语,那么本文将为您提供详细的指导。通过修改相关文件,您可以轻松更改“提交成功”的提示语,以满足您的个性化需求。以下是具体的操作步骤: 首先,您需要找到并打开以下文件路径: /apps/home/controller/Messag...2025-04-01
-
在使用PbootCMS为客户搭建网站的过程中,可能会遇到上传缩略图时尺寸被限制的问题。例如,上传一张1920px宽的图片后,发现实际显示的尺寸仅为1000px,而在后台找不到相关设置选项。实际上,这种缩略图尺寸的限制是需要通过修改系统文件来解决的。 PbootCMS程序默认将缩略图的最大尺寸限...2025-04-01
-
在使用PBootCMS构建网站时,许多人可能会遇到如何在模板文件中调用全站所有文章的需求。本文将详细介绍如何通过PBootCMS的标签语法实现这一功能,并提供一些实用的技巧。 要调用网站所有的文章,可以使用PBootCMS提供的列表标签 `{pboot:list}`。以下是具体的操作方法: ...2025-04-01
-
在使用 PbootCMS 构建网站的过程中,您可能会遇到需要在专题内容中插入包含 HTML 代码的情况。然而,当您尝试这样做时,会发现编辑器自动去除了部分标签元素,并且将所有的 div 标签转换为了 p 标签。那么,我们该如何解决这个问题呢? AB模板网的专家表示,这是由于编辑器自身的机制导致...2025-04-01