>[danger] 注意:所有插件的數據表命名格式必須為:cowcms_插件模塊名_數據表名稱,比如模塊為admin,數據表名稱為menu,創建數據表最終的名稱為:cowcms_admin_menu。
>
插件的開發和THINKPHP模塊的開發基本沒什么區別,唯一的區別就是插件模塊中多了一個exec的目錄。
>[info]exec目錄展示
>
~~~
application 模塊的總目錄
│ ├─common 公共模塊目錄(可選)
│ ├─module1 模塊目錄
│ │ ├─exec 操作執行目錄
│ │ │ ├─install 安裝模塊執行目錄
│ │ │ │ ├─sql sql文件目錄,在該目錄中的sql文件,在安裝模塊被執行
│ │ │ │ ├─exec.php 在模塊安裝時執行該文件
│ │ │ ├─uninstall 卸載模塊執行目錄
│ │ │ │ ├─exec.php 在模塊卸載時執行該文件
│ │ │ ├─update 更新目錄執行目錄
│ │ │ │ ├─sql sql文件目錄,在該目錄中的sql文件,在模塊時被執行
│ │ │ │ ├─exec.php 在模塊更新時執行該文件
│ │ │ ├─config.php 模塊配置文件
│ │ │ ├─tables.php 數據表文件,在安裝時根據執行的sql文件保存sql文件中創建的數據表
│ │ │ ├─auth.php 安裝時加入的權限規則表
│ │ │ ├─menu.php 安裝時加入的菜單列表
│ │ │ ├─event.php 安裝時關聯的碎片功能
│ │ └─ ... 更多類庫目錄
~~~
>[info] config.php---模塊的配置文件
>
~~~php
[
'name' =>'文章系統', //模塊名稱
'author'=>'COWCMS', //開發作者
'version'=>'5.1.1', //模塊版本號
'qq'=>'360881323', //開發者QQ號
'web'=>'//open.cowcms.com', //開發者個人主頁
'sign'=>'gQrr7uc0eP7GX0rtLTcqoazmOOUk9h0rcAow', //是模塊的唯一標識嗎 32為字符
'describe'=>'COWCMS插件是一個插件庫', //模塊功能描述
]
~~~
>[danger]特別注意:config.php文件中的 【sign】值,該值是每個模塊對應的一個唯一的標識碼,一個32為的字符串
>
* [ ] 【功能作用】是實現在線更新功能,此值為空的模塊不支持在線更新。
* [ ] 【獲取方法】在 //open.cowcms.com 網站上注冊會員,添加插件后,管理員審核通過,會在會員中心找到該 【sign】的值。

>[info] exec.php---模塊執行文件,在模塊執行 安裝,更新,卸載操作的時候,都會執行其對應目錄下的exec.php文件和sql目錄下的sql文件。
>
模塊安裝時:要執行--install 目錄下的exec.php文件,以及sql目錄下的sql文件
模塊卸載時:要執行--uninstall 目錄下的exec.php文件,以及sql目錄下的sql文件
模塊更新時:要執行--update 目錄下的exec.php文件,以及sql目錄下的sql文件
>[info] 執行文件 exec.php,在這個文件中預設了幾個執行函數
>
~~~php
//在執行安裝,卸載,更新時,提交的表單數據
// $module_name 當前執行的模塊名
$this->field = function($module_name){
$fields=[
[
'name'=>"username",//字段名稱
'title'=>"用戶名",//字段別名
'verify'=>"required",//表單驗證(支持text|textarea),多個用|隔開 required(必填項) phone(手機號)email(郵箱)url(網址)number(數字)date(日期)identity(身份證)
'type'=>"text",//表單類型 可選 text|select|checkbox|radio|textarea
'value'=>"admin",//表單默認值 在(text|textarea)表單類型值為字符串,在(select|checkbox|radio) 表單類型值為默認選擇的索引,在checkbox表單類型,默認值可以為數組
'option'=>"",// 在(checkbox|select|radio)表單類型 該字段有效,格式為text=value|text=value
'placeholder'=>''//placeholder值,對(text|textarea)表單類型有效
]
];
return $fields;
};
//在執行安裝,卸載,更新時,如果field函數返回了字段且有表單數據被提交會執行此函數
// $module_name 當前執行的模塊名
// $data field函數中產生的表單提交過來的數據
$this->form = function($module_name,$data){
return $data;
};
//在執行安裝,卸載,更新之前要執行該函數
// $module_name 當前執行的模塊名
// $data form函數中反回來的數據
$this->begin = function($module_name,$data){
return $data;
};
//在執行安裝,更新時,如果有sql文件,在執行sql文件前會執行此函數
// $module_name 當前執行的模塊名
// $data form函數中反回來的數據
// $param 前邊函數返回的值 $param['begin'] :begin函數返回的值
$this->sqlBegin = function($module_name,$data,$param){
return $data;
};
//在執行安裝,更新時,如果有sql文件,在執行sql文件完成后會執行此函數
// $module_name 當前執行的模塊名
// $data form函數中反回來的數據
// $param 前邊函數返回的值 $param['begin'] :begin函數返回的值,$param['sqlBegin'] :sqlBegin函數返回的值
$this->sqlEnd = function($module_name,$data,$param){
return $data;
};
//在執行安裝,卸載,更新完成后會執行此函數
// $module_name 當前執行的模塊名
// $data form函數中反回來的數據
// $param 前邊函數返回的值 $param['begin'] :begin函數返回的值,$param['sqlBegin'] :sqlBegin函數返回的值,$param['sqlEnd'] :sqlEnd函數返回的值
$this->finish = function($module_name,$data,$param){
return $data;
};
~~~
>[info] 執行文件 exec.php中 $this->field函數中字段設置效果,如
>
~~~php
$this->field = function($module_name){
$fields=[
[
'name'=>"username",//字段名稱
'title'=>"用戶名",//字段別名
'verify'=>"required",//表單驗證(支持text|textarea),多個用|隔開 required(必填項) phone(手機號)email(郵箱)url(網址)number(數字)date(日期)identity(身份證)
'type'=>"text",//表單類型 可選 text|select|checkbox|radio|textarea
'value'=>"admin",//表單默認值 在(text|textarea)表單類型值為字符串,在(select|checkbox|radio) 表單類型值為默認選擇的索引,在checkbox表單類型,默認值可以為數組
'option'=>"",// 在(checkbox|select|radio)表單類型 該字段有效,格式為text=value|text=value
'placeholder'=>''//placeholder值,對(text|textarea)表單類型有效
],
[
'name'=>"group_1",//字段名稱
'title'=>"會員組1",//字段別名
'verify'=>"required",//表單驗證(支持text|textarea),多個用|隔開 required(必填項) phone(手機號)email(郵箱)url(網址)number(數字)date(日期)identity(身份證)
'type'=>"select",//表單類型 可選 text|select|checkbox|radio|textarea
'value'=>"2",//表單默認值 在(text|textarea)表單類型值為字符串,在(select|checkbox|radio) 表單類型值為默認選擇的索引,在checkbox表單類型,默認值可以為數組
'option'=>"普通會員=10|高級會員=11|合作會員=12",// 在(checkbox|select|radio)表單類型 該字段有效,格式為text=value|text=value
'placeholder'=>''//placeholder值,對(text|textarea)表單類型有效
],
[
'name'=>"group_2",//字段名稱
'title'=>"會員組2",//字段別名
'verify'=>"required",//表單驗證(支持text|textarea),多個用|隔開 required(必填項) phone(手機號)email(郵箱)url(網址)number(數字)date(日期)identity(身份證)
'type'=>"radio",//表單類型 可選 text|select|checkbox|radio|textarea
'value'=>"2",//表單默認值 在(text|textarea)表單類型值為字符串,在(select|checkbox|radio) 表單類型值為默認選擇的索引,在checkbox表單類型,默認值可以為數組
'option'=>"普通會員=10|高級會員=11|合作會員=12",// 在(checkbox|select|radio)表單類型 該字段有效,格式為text=value|text=value
'placeholder'=>''//placeholder值,對(text|textarea)表單類型有效
],
[
'name'=>"group_3",//字段名稱
'title'=>"會員組3",//字段別名
'verify'=>"required",//表單驗證(支持text|textarea),多個用|隔開 required(必填項) phone(手機號)email(郵箱)url(網址)number(數字)date(日期)identity(身份證)
'type'=>"checkbox",//表單類型 可選 text|select|checkbox|radio|textarea
'value'=>"2",//表單默認值 在(text|textarea)表單類型值為字符串,在(select|checkbox|radio) 表單類型值為默認選擇的索引,在checkbox表單類型,默認值可以為數組
'option'=>"普通會員=10|高級會員=11|合作會員=12",// 在(checkbox|select|radio)表單類型 該字段有效,格式為text=value|text=value
'placeholder'=>''//placeholder值,對(text|textarea)表單類型有效
]
];
return $fields;
};
~~~

- 序言
- 基礎
- 源碼包
- 核心包
- 完整包
- 系統模塊
- 安裝模塊
- 后臺模塊
- 插件模塊
- 插件開發
- 開發基礎
- 權限開發
- 菜單開發
- 開發調試
- 碎片開發
- 碎片鉤子預設表
- 插件說明
- 字段插件
- 插件介紹
- 字段使用
- 單行文本
- 多行文本
- 選項-下拉
- 選項-復選
- 選項-單選
- 選項-滑塊
- 顏色選擇器
- 星級評分
- 日期時間
- 文件上傳
- 編輯器
- API接口
- 微信插件
- 微信配置
- 公眾號配置
- 支付配置
- 微信支付使用
- API類庫
- 紅包發放
- 付款到零錢
- 碎片
- 公眾號碎片
- 紅包碎片
- 付款到零錢碎片
- API微信接口
- 支付寶插件
- 支付寶配置
- 支付寶支付使用
- api接口
- api接口后端開發
- api接口前端使用
- API參數接口
- 會員插件
- 登錄使用
- 會員碎片
- API會員接口
- API注冊接口
- 積分插件
- 積分設置
- 積分碎片
- API積分接口
- API提現接口
- API兌換接口
- API充值接口
- 訂單
- 訂單碎片
- API訂單接口
- 商城
- 商城鉤子
- API商城接口
- API商城會員接口
- 簽到
- 簽到設置
- 簽到碎片
- API簽到接口
- 上傳
- 上傳設置
- 上傳JS接口
- 推廣插件
- 海報設置
- API海報接口
- 文章插件
- 文章設置
- 文章鉤子
- API文章接口
- API文章會員接口
- 管理員
- 管理員碎片
- 站內信
- API站內信接口
- 雜項
- 菜單
- 菜單設置
- API菜單接口
- 錯誤碼
- 支付碎片
- 支付
- 充值
- 購買會員組
- 購買產品