牛骨文教育服务平台(让学习变的简单)

如果你的插件需要后台管理功能,可以定义管理界面的字段信息,前提是插件基本信息中要设置admin参数为1,表示你的插件有后台管理功能。

管理界面的字段信息变量名为$admin。

管理界面的字段参数有以下几种:

参数 含义 类型 必填
title 后台管理标题 string
table_name 数据库表名,不含前缀。 string
order 需要排序功能的字段,多个字段用逗号隔开 string
filter 需要筛选功能的字段,多个字段用逗号隔开 string
search_title 搜索框提示文字,一般不用填写 string
search_field 需要搜索的字段,如果需要搜索,则必填,否则不填 array
columns 后台列表字段 array
right_buttons 右侧按钮 array
top_buttons 顶部栏按钮 array
<?php
namespace pluginsHelloWorld;

use appcommoncontrollerPlugin;

/**
 * 演示插件
 */
class HelloWorld extends Plugin
{
    /**
     * @var array 插件信息
     */
    public $info = [
        // 插件名[必填]
        "name"        => "HelloWorld",
        // 插件标题[必填]
        "title"       => "你好,世界",
        // 插件唯一标识[必填],格式:插件名.开发者标识.plugin
        "identifier"  => "helloworld.ming.plugin",
        // 插件图标[选填]
        "icon"        => "fa fa-fw fa-globe",
        // 插件描述[选填]
        "description" => "这是一个演示插件,会在每个页面生成一个提示“Hello World”。您可以查看源码,里面包含了绝大部分插件所用到的方法,以及能做的事情。",
        // 插件作者[必填]
        "author"      => "CaiWeiMing",
        // 作者主页[选填]
        "author_url"  => "http://www.dolphinphp.com",
        // 插件版本[必填],格式采用三段式:主版本号.次版本号.修订版本号
        "version"     => "1.0.0",
        // 是否有后台管理功能
        "admin"       => "1",
    ];
    
    /**
     * @var string 原数据库表前缀
     */
    public $database_prefix = "dolphin_";
    
    /**
     * @var array 管理界面字段信息
     */
    public $admin = [
    	"title"        => "", // 后台管理标题
        "table_name"   => "plugin_hello", // 数据库表名,如果没有用到数据库,则留空
        "order"        => "said,name", // 需要排序功能的字段,多个字段用逗号隔开
        "filter"       => "", // 需要筛选功能的字段,多个字段用逗号隔开
        "search_title" => "", // 搜索框提示文字,一般不用填写
        "search_field" => [ // 需要搜索的字段,如果需要搜索,则必填,否则不填
            "said" => "名言",
            "name" => "出处"
        ],
        
        // 后台列表字段
        "columns" => [],
        
        // 右侧按钮
        "right_buttons" => [],
        
        // 顶部栏按钮
        "top_buttons" => []
    ];
    
    /**
     * 安装方法必须实现
     */
    public function install(){
        return true;
    }

    /**
     * 卸载方法必须实现
     */
    public function uninstall(){
        return true;
    }
}

title

后台管理标题,也可以不写,不写时默认显示”数据列表“

table_name

数据库表名,不包含表前缀,如:admin_user。

order

字段排序,用法请参考添加表头排序

filter

字段筛选,用法参考添加表头筛选

一般这样使用

"filter" => "字段名1,字段名2"

1.0.7版本支持设置选项列表

"filter" => [
    "pay_type" => [
        ["alipay" => "支付宝", "wxpay" => "微信", "unionpay" => "银联"]
    ],
    "pay_status" => [
        ["未支付", "已支付"]
    ]
]

search_field

需要搜索的字段,如果需要搜索,则必填,否则不填。
格式:"字段名" => "字段标题",比如

"search_field" => [
    "user_name" => "用户名",
    "email" => "邮箱"
],

search_title

搜索框的提示,一般无需设置

columns

定义后台列表字段,用法请参考添加多列addColumns方法。

比如:

// 后台列表字段
"columns" => [
    ["id", "ID"],
    ["said", "名言"],
    ["name", "出处"],
    ["status", "状态", "switch"],
    ["right_button", "操作", "btn"],
],

right_buttons

定义右侧按钮

添加系统自带的右侧按钮

"right_buttons" => [
    "edit",          // 使用系统自带的编辑按钮
    "enable",       // 使用系统自带的启用按钮
    "disable",      // 使用系统自带的禁用按钮
    "delete",        // 使用系统自带的删除按钮
]

用法和添加多个右侧按钮的数组方式一致,可以修改按钮的属性。

"right_buttons" => [
    "edit" => ["title" => "编辑"],          // 使用系统自带的编辑按钮
    "enable",       // 使用系统自带的启用按钮
    "disable",      // 使用系统自带的禁用按钮
    "delete",        // 使用系统自带的删除按钮
]

添加自定义右侧按钮

"right_buttons" => [
   "customs" => [
       [
           "title"  => "自定义按钮1,新窗口打开",
           "icon"  => "fa fa-list",
           "href"   => [
           "url" => "HelloWorld/Admin/testTable",
           ],
           "target" => "_blank",
       ]
   ]
]

按钮的url链接请填写”插件名/控制器/方法“。

添加自定义右侧按钮并带有参数

"right_buttons" => [
   "customs" => [
       [
           "title"  => "自定义按钮2,自定义参数",
           "icon"  => "fa fa-list",
           "href"   => [
               "url" => "HelloWorld/Admin/testTable",
               "params" => [
               "id"    => "__id__",
               "table" => "__table__",
               "name"  => "molly",
               "age"   => 12
           ]
           "target" => "_blank",
       ]
   ]
]

注意,如果要在链接上添加自定义参数,请在params上添加。

也可以定义多个自定义按钮

"right_buttons" => [
   "customs" => [
       [
           "title"  => "自定义按钮1,新窗口打开",
           "icon"  => "fa fa-list",
           "href"   => [
           "url" => "HelloWorld/Admin/testTable",
           ],
           "target" => "_blank",
       ],
       [
           "title"  => "自定义按钮2,自定义参数",
           "icon"  => "fa fa-list",
           "href"   => [
               "url" => "HelloWorld/Admin/testTable",
               "params" => [
               "id"    => "__id__",
               "table" => "__table__",
               "name"  => "molly",
               "age"   => 12
           ]
           "target" => "_blank",
       ]
   ]
]

注意,添加多个自定义按钮,不能有多个customs,多个按钮也是一起写在customs内容,以下写法是错误的。

"right_buttons" => [
  "customs" => [
       [
           "title"  => "自定义按钮1,新窗口打开",
           "icon"  => "fa fa-list",
           "href"   => [
           "url" => "HelloWorld/Admin/testTable",
           ],
           "target" => "_blank",
       ]
   ],
   "customs" => [
       [
           "title"  => "自定义按钮2,自定义参数",
           "icon"  => "fa fa-list",
           "href"   => [
               "url" => "HelloWorld/Admin/testTable",
               "params" => [
               "id"    => "__id__",
               "table" => "__table__",
               "name"  => "molly",
               "age"   => 12
           ]
           "target" => "_blank",
       ]
   ]
]

top_buttons

定义顶部按钮,用法和上面的基本相同。

添加系统自带的按钮

// 顶部栏按钮
"top_buttons" => [
    "add",    // 使用系统自带的添加按钮
    "enable", // 使用系统自带的启用按钮
    "disable",// 使用系统自带的禁用按钮
    "delete", // 使用系统自带的删除按钮
    "back", // 使用系统自带的返回按钮

    // 自定义按钮,可定义多个
    "customs" => [
        [
            "title"  => "<i class="fa fa-list"></i> 自定义按钮1",
            "href"   => [
            "url" => "HelloWorld/Admin/testTable",
            ],
            "target" => "_blank",
        ],
        // 自定义按钮并带有参数
        [
            "title" => "<i class="fa fa-user"></i> 自定义按钮2",
            "href"  => [
                "url"   => "HelloWorld/Admin/testForm",
                "params" => [
                    "name" => "molly",
                    "age"  => 12
                ]
        	],
        ]
    ],
],