网络建站知识发布于分享网站

当前位置:首页>>新闻中心>>CMS教程

会员积分扣除实现信息置顶功能(到期自动取消)

时间: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修改留言“提交成功”提示语

    Pbootcms修改留言“提交成功”提示语

    如果您正在使用 PbootCMS 构建网站,并希望自定义留言功能的提示语,那么本文将为您提供详细的指导。通过修改相关文件,您可以轻松更改“提交成功”的提示语,以满足您的个性化需求。以下是具体的操作步骤: 首先,您需要找到并打开以下文件路径: /apps/home/controller/Messag...
    2025-04-01
  • PBootCMS上传缩略图尺寸限制修改方法

    PBootCMS上传缩略图尺寸限制修改方法

    在使用PbootCMS为客户搭建网站的过程中,可能会遇到上传缩略图时尺寸被限制的问题。例如,上传一张1920px宽的图片后,发现实际显示的尺寸仅为1000px,而在后台找不到相关设置选项。实际上,这种缩略图尺寸的限制是需要通过修改系统文件来解决的。 PbootCMS程序默认将缩略图的最大尺寸限...
    2025-04-01
  • PBootCMS模板中如何调用网站全部文章

    PBootCMS模板中如何调用网站全部文章

    在使用PBootCMS构建网站时,许多人可能会遇到如何在模板文件中调用全站所有文章的需求。本文将详细介绍如何通过PBootCMS的标签语法实现这一功能,并提供一些实用的技巧。 要调用网站所有的文章,可以使用PBootCMS提供的列表标签 `{pboot:list}`。以下是具体的操作方法: ...
    2025-04-01
  • PBootCMS编辑器过滤DIV代码的解决方法

    PBootCMS编辑器过滤DIV代码的解决方法

    在使用 PbootCMS 构建网站的过程中,您可能会遇到需要在专题内容中插入包含 HTML 代码的情况。然而,当您尝试这样做时,会发现编辑器自动去除了部分标签元素,并且将所有的 div 标签转换为了 p 标签。那么,我们该如何解决这个问题呢? AB模板网的专家表示,这是由于编辑器自身的机制导致...
    2025-04-01

公众号