我們需要加載此插件時,就立刻建立自己的數據表,以供我們使用
* guestbook
+ config.php
+ GuestbookPlugin.php
+ data
- config.php
- guestbook.sql
GuestbookPlugin.php
~~~
<?php
namespace plugins\guestbook;
use cmf\lib\Plugin;
use think\Db;
class GuestbookPlugin extends Plugin
{
public $info = array(
'name' => 'Guestbook',
'title' => '留言板',
'description' => '留言板描述',
'status' => 1,
'author' => 'duan',
'version' => '1.0'
);
public $hasAdmin = 1;//插件是否有后臺管理界面
// 插件安裝
public function install()
{
$dbConfig = Config('database');
$dbSql = cmf_split_sql(PLUGINS_PATH . 'guestbook/data/guestbook.sql', $dbConfig['prefix'], $dbConfig['charset']);
if (empty($dbConfig) || empty($dbSql)) {
$this->error("非法安裝");
}
$db = Db::connect($dbConfig);
foreach ($dbSql as $key => $sql) {
$db->execute($sql);
}
return true;//安裝成功返回true,失敗false
}
// 插件卸載
public function uninstall()
{
$dbConfig = Config('database');
$sql = "DROP TABLE IF EXISTS " . $dbConfig['prefix'] . "plugin_sy_guestbook";
if (empty($dbConfig) || empty($sql)) {
$this->error("非法安裝");
}
$db = Db::connect($dbConfig);
try {
$db->execute($sql);
} catch (\Exception $e) {
return false;
}
return true;//卸載成功返回true,失敗false
}
}
~~~
data/config.php
直接利用公共的數據庫配置文件
~~~
<?php
/**
* 配置文件
*/
if(file_exists(CMF_ROOT."data/conf/database.php")){
$database=include CMF_ROOT."data/conf/database.php";
}else{
$database=[];
}
return $database;
~~~
data/guestbook.sql
~~~
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for cmf_plugin_sy_guestbook
-- ----------------------------
DROP TABLE IF EXISTS `cmf_plugin_sy_guestbook`;
CREATE TABLE `cmf_plugin_sy_guestbook` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '留言ID號',
`name` varchar(50) DEFAULT NULL COMMENT '留言者姓名',
`tel` varchar(15) DEFAULT NULL COMMENT '留言者電話',
`fax` varchar(15) DEFAULT NULL COMMENT '留言者傳真',
`email` varchar(50) DEFAULT NULL COMMENT '留言者郵箱',
`qq` varchar(15) DEFAULT NULL COMMENT '留言者QQ號',
`subject` varchar(255) DEFAULT NULL COMMENT '留言標題',
`message` text COMMENT '留言信息',
`isread` tinyint(2) DEFAULT '1' COMMENT '是否查看過',
`update_time` int(10) DEFAULT NULL COMMENT '更新時間',
`create_time` int(10) DEFAULT NULL COMMENT '創建時間',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
-- ----------------------------
-- Records of cmf_plugin_sy_guestbook
-- ----------------------------
SET FOREIGN_KEY_CHECKS=1;
~~~
現在如果重新安裝此插件,可以到數據庫查看具體信息了

> 首先感謝WelkinVan 他寫的《ThinkCMF5從入門到精通》給了我很多幫助
> 點擊去《[ThinkCMF5從入門到精通](http://www.hmoore.net/welkinvan/thinkcmf5)》
>
- php套路
- 套路之類結構
- thinkphp分塊解析之Collection
- thinkphp基礎之collection
- Collection在thinkphp中的運用
- thinkcmf模塊分析
- Controller按界面點擊順序排列表
- user模塊-Controller分析
- portal模塊-Controller分析
- admin模塊-Controller分析
- user模塊-腦圖
- portal模塊-腦圖
- admin模塊-腦圖
- cmf公共函數解析-common.php
- thinkcmf點滴記錄
- 自定義標簽詳解
- 插件
- 系統信息插件
- 插件演示插件
- 留言板插件
- 留言板1 建立胚胎
- 留言板1-1 數據庫變化
- 留言板1-2 自定義鉤子
- 留言板2 連接數據庫
- 留言板3 讀取后臺界面數據
- 留言板4 前端模板
- 留言板5 分離cssjs文件
- 留言板6 驗證
- 留言板7 圖形驗證碼
- 留言板8 后臺留言列表頁
- 留言板9 后記
- 評論插件
- 1 分析數據表
- 2 CommentModel.php
- 3 UserModel.php
- 4 DCommentPlugin.php
- 前端調用代碼
- 喜歡插件
- 1 分析
- 2 收藏功能
- 3 插件建模
- 4 數據庫設計
- 5 插入一條數據
- 多語言
- thinkphp多語言
- thinkcmf多語言