一、功能背景與效果說明
PbootCMS 后臺默認的內容列表中,閱讀量(visits)和點贊量(likes)僅能展示,無法直接修改。本教程通過代碼改造,實現以下功能:
二、操作前準備
三、詳細操作步驟
步驟 1:修改控制器文件(處理提交數據)
文件路徑:apps/admin/controller/content/ContentController.php
// 文章修改 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;
步驟 2:修改模型文件(添加字段查詢)
文件路徑:apps/admin/model/content/ContentModel.php
打開文件后,搜索
$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:添加 "點贊量" 表頭
<th>訪問量</th> <th>點贊量</th> <!-- 新增點贊量表頭 -->
子步驟 3.2:將顯示改為可編輯輸入框
<!-- 原代碼:<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>
屬性說明:
子步驟 3.3:添加 "保存閱讀點贊量" 按鈕
<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'
完全一致,否則無法觸發修改邏輯。
四、文件上傳與驗證
效果圖: