扩展功能优化完善

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

@@ -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');
}
}

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 {
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;
}
}