## 鉤子的約束
每個插件鉤子文件必須繼承公共的插件控制器``app\common\controller\Plugins``,插件里面必須要有以下四個方法:
~~~
/**
* 安裝前的業務處理,可在此方法實現,默認返回true
* @return bool
*/
public function install()
{
// 在此寫業務代碼,沒有可不寫
return true;
}
/**
* 安裝后的業務處理,可在此方法實現,默認返回true
* @return bool
*/
public function installAfter()
{
// 在此寫業務代碼,沒有可不寫
return true;
}
/**
* 卸載前的業務處理,可在此方法實現,默認返回true
* @return bool
*/
public function uninstall()
{
// 在此寫業務代碼,沒有可不寫
return true;
}
/**
* 卸載后的業務處理,可在此方法實現,默認返回true
* @return bool
*/
public function uninstallAfter()
{
// 在此寫業務代碼,沒有可不寫
return true;
}
~~~
## 插件鉤子的添加與實現方法
>[info] 插件鉤子的索引變量名為 $hooks
~~~
/**
* @var array 插件鉤子索引
* 插件安裝后,新添加的鉤子方法需要重裝插件才會生效
*/
public $hooks = [
// 鉤子名稱 => 鉤子說明【系統鉤子,說明不用填寫】
'system_admin_tips',// 這是系統默認預埋的鉤子,可刪除
];
~~~
~~~
/**
* @var array 插件鉤子索引
* 插件安裝后,新添加的鉤子方法需要重裝插件才會生效
*/
public $hooks = [
// 鉤子名稱 => 鉤子說明【系統鉤子,說明不用填寫】
'system_admin_tips',// 這是系統默認預埋的鉤子,你可以刪除
];
/**
* system_admin_tips鉤子方法
* @param $params
*/
public function systemAdminTips(&$params)
{
echo '我是系統預埋的鉤子';
}
~~~
>[info] 自定義鉤子example_hook
~~~
/**
* @var array 插件鉤子索引
* 插件安裝后,新添加的鉤子方法需要重裝插件才會生效
*/
public $hooks = [
// 鉤子名稱 => 鉤子說明【系統鉤子,說明不用填寫】
'example_hook' => '這是一個擴展的自定義鉤子',
];
/**
* example_hook鉤子方法
* @param $params
*/
public function exampleHook(&$params)
{
$str = '我是一個自定義鉤子';
// 【示例】直接輸出字符串
echo $str;
// 【示例】模板賦值并輸出模板
$this->assign('str', $str);
// 模板文件完整路徑:/plugins/test/view/widget/example_hook.php
return $this->fetch('example_hook');
}
~~~
>[info] 鉤子的調用方法:runhook('example_hook')
>帶參數調用:runhook('example_hook', ['param1'=> '參數1', 'param2'=> '參數2'])
- 序言
- 環境配置
- 下載及安裝
- 目錄結構
- 系統配置
- 多語言
- 命令行(pro版)
- 自動生成模塊或插件(build)
- 生成模塊
- 生成插件
- 自動生成增刪改查(crud)
- 第一步:創建數據表
- 第二步:使用crud指令生成
- 自動生成類庫文件(make)
- 生成控制器文件(make:controller)
- 生成模型文件(make:model)
- 生成邏輯文件(make:logic)
- 生成服務文件(make:service)
- 生成驗證器文件(make:validate)
- 構建器(pro版)
- 表單構建器(form)
- 表單屬性設置
- 添加表單項
- 文本框(text)
- 隱藏域(hidden)
- 密碼框(password)
- 文本域(textarea)
- 單文件(file)
- 多文件(files)
- 單圖(image)
- 多圖(images)
- 開關(switch)
- 單選(radio)
- 多選(checkbox)
- 下拉框(select)
- 標簽(tag)
- 日期時間(datetime)
- 顏色選擇器(color)
- 富文本編輯器(editor)
- 滑塊(slider)
- 評分(rate)
- 穿梭框(transfer)
- 進度條(progress)
- 樹形(tree)
- 聯動(linkage)
- 自定義html(html)
- 分隔線(line)
- 文字(txt)
- 下拉框增強版(select+)
- 數據表格(table)
- 添加表單分組(group)
- 柵格布局(grid)
- 觸發器(trigger)
- 通用上傳方法
- 表格構建器(table)
- 表格基礎配置
- 添加表頭工具欄
- 添加表格篩選
- 頁面提示(pageTips)
- 引入 JS 文件
- 引入 CSS 文件
- 渲染額外 JS 代碼
- 渲染額外 CSS 代碼
- 模塊開發
- 1.生成模塊
- 2.創建菜單
- 3.創建控制器
- 后臺通用方法
- 插件開發
- 1.新建插件
- 2.插件配置
- 3.插件控制器
- 4.插件模板
- 5.插件鉤子
- 模板替換變量
- 公共函數庫
- 后臺通用JS方法
- 常見問題
- 官方模塊
- CMS內容管理模塊
- 目錄結構
- 模板標簽
- API接口
- 欄目頁/內容頁
- 小程序發布
- 官方插件
- 第三方登錄
- excel插件
- 萬能采集
- 采集規則
- 采集內容