扩展功能优化完善

This commit is contained in:
2020-04-04 16:13:40 +08:00
parent ba37debc0e
commit 4e730d23fa
4 changed files with 100 additions and 14 deletions

View File

@@ -0,0 +1,38 @@
<?php
// +----------------------------------------------------------------------
// | OneThink [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013 http://www.onethink.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: yangweijie <yangweijiester@gmail.com> <code-tech.diandian.com>
// +----------------------------------------------------------------------
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;
}
}

View File

@@ -184,7 +184,7 @@ class Addons extends Base {
$map = []; $map = [];
$order = "id desc"; $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( $this->data = array(
'list' => $list, 'list' => $list,
@@ -216,7 +216,6 @@ class Addons extends Base {
* @title 编辑钩子 * @title 编辑钩子
*/ */
public function edithook($id) { public function edithook($id) {
$hooks = model('Hooks');
if ($this->request->isPost()) { if ($this->request->isPost()) {
$result = $hooks->change(); $result = $hooks->change();
if ($result !== false) { if ($result !== false) {
@@ -225,15 +224,13 @@ class Addons extends Base {
return $this->error($hooks->getError()); return $this->error($hooks->getError());
} }
} else { } else {
$info = db('Hooks')->find($id); $info = Hooks::find($id);
$keylist = $hooks->getaddons($info['addons']); $keylist = Hooks::getaddons($info);
$data = array( $this->data = array(
'info' => $info, 'info' => $info,
'keyList' => $keylist, 'keyList' => $keylist,
); );
$this->assign($data); return $this->fetch('admin/public/edit');
$this->setMeta('编辑钩子');
return $this->fetch('public/edit');
} }
} }

View File

@@ -0,0 +1,34 @@
<div class="boards" id="{$name}_sort">
{volist name="option" id="vo"}
<div class="board panel panel-info">
<div class="panel-heading">{$vo['name']|default=''}</div>
<div class="panel-body">
{if !empty($vo['list'])}
<div class="board-list" data-group="{$key}">
{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)}
<div class="board-item">
<span data="{$item['id']}">{$item['title']} [{$item['name']}]</span>
<input type="hidden" name="{$name}[{$key}][]" value="{$item['id']}"/>
</div>
{/if}
{/foreach}
</div>
{/if}
</div>
</div>
{/volist}
</div>
<script type="text/javascript">
$(function(){
$('.form-group #{$name}_sort').boards({
drop: function(e){
var group = e.target.closest('.board').find('.board-list').attr('data-group');
e.element.find('input').attr('name','{$name}[' + group + '][]')
}
})
})
</script>

View File

@@ -14,10 +14,27 @@ namespace app\model;
*/ */
class Hooks extends \think\Model { class Hooks extends \think\Model {
public static $keylist = [ protected function getTypeTextAttr($value, $data){
['name' => 'name', 'title' => '钩子名称', 'type' => 'text', 'help' => '需要在程序中先添加钩子,否则无效'], $type = [1 => '视图', 2 => '控制器'];
['name' => 'description', 'title' => '钩子描述', 'type' => 'text', 'help' => '钩子的描述信息'], return isset($type[$data['type']]) ? $type[$data['type']] : '';
['name' => 'type_text', 'title' => '钩子类型', 'type' => 'select', 'option' => [['key'=>1, 'label'=>'视图'], ['key' => 2, 'label' => '控制器']], 'help' => '钩子的描述信息'], }
['name' => 'addons', 'title' => '插件排序', 'type' => 'kanban'],
]; 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;
}
} }