## 內置函數
`FastAdmin`插件系統中有內置多個函數用于我們進行調用,除了以下插件系統中的內置函數可以調用外,我們還可以直接調用FastAdmin框架中的內置函數,如`cdnurl`圖片補全、`addtion`附加關聯數據、`check_cors_request`跨域檢測、`xss_clean`清理XSS 等函數,請參考文檔:https://doc.fastadmin.net/doc/1263.html
## addon\_url
用于生成插件控制器方法的url
### 參數列表
| 名稱 | 描述 |
| --- | --- |
| $url | 插件標識/控制器名/方法名 |
| $vars | 變量參數,默認為空 |
| $suffix | 是否生成后綴,默認為true |
| $domain | 域名,默認不包含域名 |
### 調用方法
~~~bash
$url1 = addon_url('mydemo/index/index');
$url2 = addon_url('mydemo/index/index', [':name'=>'myname', 'id'=>123]);
$url3 = addon_url('mydemo/index/index', [':name'=>'myname', 'id'=>123], true, true);
~~~
我們可以看到第二個參數數組中有`:name`和`id`兩種寫法,`:name`在`ThinkPHP5`中沒有這種寫法的,這是FastAdmin插件系統中特有的寫法。這里`:name`是為了配合`插件管理`\->`配置`\->`偽靜態`使用的,具體使用方法可以參考`偽靜態`章節。
### 返回值
以下返回值都是在未使用偽靜態時返回的URL,如果使用了偽靜態則返回值會不同。
~~~bash
/addons/mydemo/index/index
/addons/mydemo/index/index.html?id=123&name=myname
http://www.fa.com/addons/mydemo/index/index.html?id=123&name=myname
~~~
## get\_addon\_list
獲得插件列表,此函數將返回本地已安裝的插件列表
### 調用方法
~~~bash
$addonList = get_addon_list();
~~~
### 返回值
二維數組
## get\_addon\_info
獲得插件的基礎信息
### 參數列表
| 名稱 | 描述 |
| --- | --- |
| $name | 插件標識 |
### 調用方法
~~~bash
$addonInfo = get_addon_info('mydemo');
~~~
### 返回值
一維數組,示例
~~~javascript
Array
(
[name] => mydemo
[title] => 插件名稱mydemo
[intro] => FastAdmin插件
[author] => yourname
[website] => https://www.fastadmin.net
[version] => 1.0.0
[state] => 1
[url] => /addons/mydemo.html
)
~~~
## get\_addon\_config
獲取插件類的配置值,以鍵值數組的形式返回
### 參數列表
| 名稱 | 描述 |
| --- | --- |
| $name | 插件標識 |
### 調用方法
~~~bash
$addonConfig = get_addon_config('mydemo');
~~~
### 返回值
~~~scss
Array
(
[usernmae] => test
[password] => 123456
)
~~~
## get\_addon\_fullconfig
獲取插件類的配置數組,以二級數組的形式返回
### 參數列表
| 名稱 | 描述 |
| --- | --- |
| $name | 插件標識 |
### 調用方法
~~~bash
$addonConfigList = get_addon_fullconfig('mydemo');
~~~
### 返回值
~~~sql
Array
(
[0] => Array
(
[name] => usernmae
[title] => 用戶名
[type] => string
[content] => Array
(
)
[value] => test
[rule] => required
[msg] =>
[tip] =>
[ok] =>
[extend] =>
)
[1] => Array
(
[name] => password
[title] => 密碼
[type] => string
[content] => Array
(
)
[value] => 123456
[rule] => required
[msg] =>
[tip] =>
[ok] =>
[extend] =>
)
)
~~~
## get\_addon\_instance
獲取插件的單例
### 參數列表
| 名稱 | 描述 |
| --- | --- |
| $name | 插件標識 |
### 調用方法
~~~bash
$addonInstance = get_addon_instance('mydemo');
~~~
### 返回值
~~~less
addons\mydemo\Mydemo Object
~~~
## set\_addon\_info
設置插件基礎配置信息,將實時更新插件目錄下的`info.ini`文件
### 參數列表
| 名稱 | 描述 |
| --- | --- |
| $name | 插件標識 |
| $array | 配置數據 |
### 功能描述
### 調用方法
~~~sql
$result = set_addon_info('mydemo', ['title'=>'標題一']);
~~~
### 返回值
bool
## set\_addon\_config
設置插件配置信息,一般臨時寫入配置信息,第三個參數用于實時寫入配置信息
### 參數列表
| 名稱 | 描述 |
| --- | --- |
| $name | 插件標識 |
| $config | 配置數據 |
| $writefile | 是否寫入配置文件,默認為true |
### 調用方法
~~~sql
$result = set_addon_config('mydemo', ['username'=>'testname']);
$result = set_addon_config('mydemo', ['username'=>'testname'], true);
~~~
### 返回值
bool
## set\_addon\_fullconfig
實時寫入插件配置文件
### 參數列表
| 名稱 | 描述 |
| --- | --- |
| $name | 插件標識 |
| $config | 配置數據,二維數組信息,一般框架內部使用,不建議調用 |
### 調用方法
~~~sql
$result = set_addon_fullconfig('mydemo', [['username'=>'testname', 'type'=>'string', ...]]);
~~~
### 返回值
bool