modules/,與數據表同名。admin 類(自帶權限驗證)。phpcms/caches/configs/route.php 指向 content 模塊 index 控制器 init 方法。後台 → 擴展 → 菜單管理 → 添加一級菜單(模塊名/文件名/方法名) → 添加子菜單 → v9_module 表註冊(相當於安裝)。
CREATE TABLE v9_link ( ... ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
link_model<?php
defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_sys_class('model', '', 0);
class link_model extends model {
function __construct() {
$this->db_config = pc_base::load_config('database');
$this->db_setting = 'default';
$this->table_name = 'link';
parent::__construct();
}
}
// 注意:模型僅指定表與庫,非徹底 MVC,復制修改即可。
?>
link(完整 CURD)<?php
defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_app_class('admin', 'admin', 0);
class link extends admin {
private $db, $db2;
public $siteid;
function __construct() {
parent::__construct();
$this->db = pc_base::load_model('link_model');
$this->db2 = pc_base::load_model('type_model');
}
// 列表、分頁、分類篩選
public function init() { /* ... */ }
// 添加、驗證、附件關聯
public function add() { /* ... */ }
// 編輯分類、排序異步更新
public function edit_type() { /* ... */ }
// 刪除(單條/批量)、附件同步清理
public function delete() { /* ... */ }
}
?>
關鍵點:
libs/classes/,模型基類 model.class.php 經工廠類操作 DB。listinfo() 列表、get_one() 單條、insert() 增、update() 改。showmessage()(global.func.php),多語言用 L()。include $this->admin_tpl('link_list')。modules/link/templates/*.tpl.php<?php defined('IN_ADMIN') or exit('No Permission resources.');
$show_dialog = 1;
include $this->admin_tpl('header', 'admin'); ?>
<table class="search-form">...</table>
<!-- 列表循環、操作按鈕、JS 腳本 -->
混編風格,控制器變量直接可用,底部可寫自定義 JS。
PHPCMS 模塊化設計人性化,掌握「菜單註冊 → 建表 → 模型 → 控制器 → 模板」流程即可高效二開。待續《下篇》。
來源:@黑眼詩人