加截中...

PbootCMS 后台添加阅读量和点赞量自定义修改功能

一、功能背景与效果说明

PbootCMS 后台默认的内容列表中,阅读量(visits)和点赞量(likes)仅能展示,无法直接修改。本教程通过代码改造,实现以下功能:


  • 在后台内容列表中显示可编辑的阅读量和点赞量输入框

  • 支持批量修改多篇文章的阅读量和点赞量

  • 点击 "保存阅读点赞量" 按钮即可提交修改,操作流程与 "保存排序" 一致

二、操作前准备

  1. 文件备份

    • apps/admin/controller/content/ContentController.php

    • apps/admin/model/content/ContentModel.php

    • apps/admin/view/default/content/content.html

    • 备份以下 3 个文件(防止操作失误导致功能异常):

  2. 工具准备

    • 代码编辑器(推荐 Notepad++、VS Code,支持代码高亮和搜索)

    • FTP 工具或服务器文件管理权限(用于上传修改后的文件)

    • 基础 PHP 和 HTML 知识(能理解代码逻辑即可)

三、详细操作步骤

步骤 1:修改控制器文件(处理提交数据)

文件路径apps/admin/controller/content/ContentController.php


  1. 打开文件后,按Ctrl+F搜索以下代码片段(定位文章修改逻辑):

// 文章修改
public function mod()
{
    if (!! $submit = post('submit')) {
        switch ($submit) {

2. switch ($submit) {下方添加以下代码(处理阅读量和点赞量修改的核心逻辑):

case 'pbootnet': // 修改文章访问量和点赞量
    $listall = post('listall'); // 获取选中的文章ID数组
    if ($listall) {
        // 处理阅读量
        $visits = post('visits'); // 获取提交的阅读量数组
        foreach ($listall as $key => $value) {
            // 验证输入:为空或非数字则保持原数据(原教程此处有误,修正为合理逻辑)
            if ($visits[$key] === '' || !is_numeric($visits[$key])) {
                // 从数据库获取原数据(避免覆盖为空)
                $original = $this->model->getContent($value);
                $visits[$key] = $original->visits;
            }
            // 更新数据库
            $this->model->modContent($value, "visits=" . $visits[$key]);
        }
        
        // 处理点赞量(逻辑与阅读量一致)
        $likes = post('likes'); // 获取提交的点赞量数组
        foreach ($listall as $key => $value) {
            if ($likes[$key] === '' || !is_numeric($likes[$key])) {
                $original = $this->model->getContent($value);
                $likes[$key] = $original->likes;
            }
            $this->model->modContent($value, "likes=" . $likes[$key]);
        }
        
        $this->log('修改内容访问量和点赞量成功!'); // 记录操作日志
        success('修改成功!', -1); // 提示成功并刷新页面
    } else {
        alert_back('修改失败,未选择任何内容!'); // 未选择文章时提示
    }
    break;

  1. 代码说明

    • case 'pbootnet':与后续 HTML 中的按钮value="pbootnet"对应,用于识别提交类型

    • post('listall'):获取勾选的文章 ID(确保只修改选中的文章)

    • 验证逻辑优化:原教程中$visits[$key] = visits;是错误的(未定义变量),此处修正为读取数据库原数据

    • 循环更新:通过modContent方法逐篇更新文章的visitslikes字段

  2. 保存文件(暂时不上传,待全部修改完成后统一上传)。

步骤 2:修改模型文件(添加字段查询)

文件路径apps/admin/model/content/ContentModel.php

  1. 打开文件后,搜索$field = array((定位查询字段配置),找到类似以下的数组:

$field = array(
    'a.id',
    'b.name as sortname',
    'a.scode',
    'c.name as subsortname',
    'a.subscode',
    'a.title',
    'a.subtitle',
    'a.date',
    'a.sorting',
    'a.status',
    'a.istop',
    'a.isrecommend',
    'a.isheadline',
    'a.visits',
    // 此处需要添加点赞量字段
    'a.ico',
    'a.pics',
    'a.filename',
    'a.outlink',
    'd.urlname',
    'b.filename as sortfilename'
);

2. 'a.visits',下方添加'a.likes',,添加后如下:

'a.visits',
'a.likes', // 新增点赞量字段
'a.ico',

作用:让后台列表查询时包含likes(点赞量)字段,否则页面无法显示点赞量数据。

3. 保存文件。

步骤 3:修改视图文件(显示输入框和按钮)

文件路径apps/admin/view/default/content/content.html(后台内容列表页面模板)

子步骤 3.1:添加 "点赞量" 表头

  1. 搜索<th>访问量</th>,在其下方添加点赞量表头:

<th>访问量</th>
<th>点赞量</th> <!-- 新增点赞量表头 -->

子步骤 3.2:将显示改为可编辑输入框

  1. 搜索原阅读量显示代码(通常为<td>{$value->visits}</td>),将其替换为输入框:

<!-- 原代码:<td>{$value->visits}</td> -->
<td class="table-input">
    <input type="text" lay-ignore class="layui-input" 
           name="visits[]" value="{$value->visits}">
</td>

2. 在阅读量输入框下方添加点赞量输入框:

<td class="table-input">
    <input type="text" lay-ignore class="layui-input" 
           name="likes[]" value="{$value->likes}">
</td>

 属性说明

    • name="visits[]"name="likes[]":数组形式提交,与文章 ID 数组listall对应

    • value="{$value->visits}":默认显示当前阅读量 / 点赞量

    • lay-ignore:忽略 Layui 的表单渲染(避免样式冲突)

    • class="table-input":保持与 "排序" 输入框一致的样式

子步骤 3.3:添加 "保存阅读点赞量" 按钮

  1. 搜索 "保存排序" 按钮代码:

<button type="submit" name="submit" value="sorting" class="layui-btn layui-btn-sm">保存排序</button>

2. 在其后方添加新按钮:

<button type="submit" name="submit" value="pbootnet" class="layui-btn layui-btn-sm">保存阅读点赞量</button>

关键value="pbootnet"需与步骤 1 中case 'pbootnet'完全一致,否则无法触发修改逻辑。

四、文件上传与验证

  1. 上传文件:将修改后的 3 个文件通过 FTP 上传到服务器对应路径,覆盖原文件(若使用本地环境则直接替换)。

  2. 权限检查:确保文件权限正确(通常为 644,避免因权限不足导致页面空白)。

  3. 功能验证

    • 登录 PbootCMS 后台,进入任意内容列表(如 "文章管理")

    • 确认列表中已显示 "点赞量" 列,且访问量、点赞量显示为输入框

    • 修改数值后勾选文章,点击 "保存阅读点赞量" 按钮

    • 提示 "修改成功" 后刷新页面,确认数值已更新

  4. 错误排查

    • 若页面空白:检查 PHP 代码是否有语法错误(如括号不匹配、分号缺失)

    • 数值不更新:打开浏览器控制台(F12),查看网络请求是否有错误,或检查listall是否正确获取选中的 ID

    • 无点赞量数据:确认ContentModel.php中已添加'a.likes',且数据库表中存在likes字段

效果图:

image.png






在线客服
服务热线

服务热线

13648088499

微信咨询
二维码
返回顶部