From 4e730d23faf27d4f62384e4924f7bf79e1393d89 Mon Sep 17 00:00:00 2001 From: tensent Date: Sat, 4 Apr 2020 16:13:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=A9=E5=B1=95=E5=8A=9F=E8=83=BD=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/syslogin/Plugin.php | 38 ++++++++++++++++++++++++++++++ app/controller/admin/Addons.php | 13 ++++------ app/http/form/template/kanban.html | 34 ++++++++++++++++++++++++++ app/model/Hooks.php | 29 ++++++++++++++++++----- 4 files changed, 100 insertions(+), 14 deletions(-) create mode 100644 addons/syslogin/Plugin.php diff --git a/addons/syslogin/Plugin.php b/addons/syslogin/Plugin.php new file mode 100644 index 00000000..7675bf6d --- /dev/null +++ b/addons/syslogin/Plugin.php @@ -0,0 +1,38 @@ + +// +---------------------------------------------------------------------- +namespace addons\syslogin; + +/** + * 系统环境信息插件 + * @author thinkphp + */ + +class Plugin extends \sent\Addons{ + + public $info = array( + 'name'=>'Syslogin', + 'title'=>'第三方登录', + 'description'=>'第三方登录', + 'status'=>0, + 'author'=>'molong', + 'version'=>'0.1' + ); + + public function loginBottomAddon(){ + + } + + public function install(){ + return true; + } + + public function uninstall(){ + return true; + } +} \ No newline at end of file diff --git a/app/controller/admin/Addons.php b/app/controller/admin/Addons.php index a957427d..ba16942c 100644 --- a/app/controller/admin/Addons.php +++ b/app/controller/admin/Addons.php @@ -184,7 +184,7 @@ class Addons extends Base { $map = []; $order = "id desc"; - $list = Hooks::where($map)->order($order)->paginate($this->request->pageConfig); + $list = Hooks::where($map)->order($order)->paginate($this->request->pageConfig)->append(['type_text']); $this->data = array( 'list' => $list, @@ -216,7 +216,6 @@ class Addons extends Base { * @title 编辑钩子 */ public function edithook($id) { - $hooks = model('Hooks'); if ($this->request->isPost()) { $result = $hooks->change(); if ($result !== false) { @@ -225,15 +224,13 @@ class Addons extends Base { return $this->error($hooks->getError()); } } else { - $info = db('Hooks')->find($id); - $keylist = $hooks->getaddons($info['addons']); - $data = array( + $info = Hooks::find($id); + $keylist = Hooks::getaddons($info); + $this->data = array( 'info' => $info, 'keyList' => $keylist, ); - $this->assign($data); - $this->setMeta('编辑钩子'); - return $this->fetch('public/edit'); + return $this->fetch('admin/public/edit'); } } diff --git a/app/http/form/template/kanban.html b/app/http/form/template/kanban.html index e69de29b..78eca2e1 100644 --- a/app/http/form/template/kanban.html +++ b/app/http/form/template/kanban.html @@ -0,0 +1,34 @@ +
+{volist name="option" id="vo"} +
+
{$vo['name']|default=''}
+
+ {if !empty($vo['list'])} +
+ {foreach name="vo['list']" item="item" key="k"} + {php} + $item['group'] = isset($item['group']) ? $item['group'] : ''; + {/php} + {if (($i eq 1) or ($item['group'] eq $key)) and ($item['is_show'] eq 1)} +
+ {$item['title']} [{$item['name']}] + +
+ {/if} + {/foreach} +
+ {/if} +
+
+{/volist} +
+ \ No newline at end of file diff --git a/app/model/Hooks.php b/app/model/Hooks.php index 193c8c1c..9ed4ea67 100644 --- a/app/model/Hooks.php +++ b/app/model/Hooks.php @@ -14,10 +14,27 @@ namespace app\model; */ class Hooks extends \think\Model { - public static $keylist = [ - ['name' => 'name', 'title' => '钩子名称', 'type' => 'text', 'help' => '需要在程序中先添加钩子,否则无效'], - ['name' => 'description', 'title' => '钩子描述', 'type' => 'text', 'help' => '钩子的描述信息'], - ['name' => 'type_text', 'title' => '钩子类型', 'type' => 'select', 'option' => [['key'=>1, 'label'=>'视图'], ['key' => 2, 'label' => '控制器']], 'help' => '钩子的描述信息'], - ['name' => 'addons', 'title' => '插件排序', 'type' => 'kanban'], - ]; + protected function getTypeTextAttr($value, $data){ + $type = [1 => '视图', 2 => '控制器']; + return isset($type[$data['type']]) ? $type[$data['type']] : ''; + } + + public static function getaddons($addons){ + if (isset($addons['addons']) && $addons['addons']) { + $hook_list = explode(',', $addons['addons']); + foreach ($hook_list as $key => $value) { + $field_list[] = array('id' => $value, 'title' => $value, 'name' => $value, 'is_show' => 1); + } + $option[] = ['name' => '钩子挂载排序', 'list' => $field_list]; + } else { + $option[] = ['name' => '钩子挂载排序', 'list' => []]; + } + $keylist = [ + ['name' => 'name', 'title' => '钩子名称', 'type' => 'text', 'help' => '需要在程序中先添加钩子,否则无效'], + ['name' => 'description', 'title' => '钩子描述', 'type' => 'text', 'help' => '钩子的描述信息'], + ['name' => 'type_text', 'title' => '钩子类型', 'type' => 'select', 'option' => [['key'=>1, 'label'=>'视图'], ['key' => 2, 'label' => '控制器']], 'help' => '钩子的描述信息'], + ['name' => 'addons', 'title' => '插件排序', 'type' => 'kanban', 'option' => $option], + ]; + return $keylist; + } } \ No newline at end of file