diff --git a/addons/syslogin/controller/Admin.php b/addons/syslogin/controller/Admin.php index d06b9009..c57af263 100644 --- a/addons/syslogin/controller/Admin.php +++ b/addons/syslogin/controller/Admin.php @@ -11,8 +11,13 @@ namespace addons\syslogin\controller; use app\common\controller\Addons; class Admin extends Addons{ + + public function lists(){ + + } public function setting(){ + $this->setMeta('第三方登录设置'); $this->template('admin/login'); } } diff --git a/addons/test/Test.php b/addons/test/Test.php index a3c9639f..48629fd9 100644 --- a/addons/test/Test.php +++ b/addons/test/Test.php @@ -33,6 +33,10 @@ class Test extends Addons { } + public function headertest(){ + + } + public function install(){ return true; } diff --git a/application/admin/controller/Content.php b/application/admin/controller/Content.php index 7bc9dfcd..4487dbaa 100644 --- a/application/admin/controller/Content.php +++ b/application/admin/controller/Content.php @@ -69,6 +69,8 @@ class Content extends Admin { if (IS_POST) { $result = $this->model->save($this->param); if ($result) { + //记录行为 + action_log('add_content', 'content', $result, session('auth_user.uid')); return $this->success("添加成功!", url('admin/content/index', array('model_id' => $this->modelInfo['id']))); } else { return $this->error($this->model->getError(), url('admin/content/add', array('model_id' => $this->modelInfo['id']))); @@ -100,6 +102,8 @@ class Content extends Admin { if (IS_POST) { $result = $this->model->save($this->param, array('id'=> $id)); if ($result !== false) { + //记录行为 + action_log('update_content', 'content', $result, session('auth_user.uid')); return $this->success("更新成功!", url('admin/content/index', array('model_id' => $this->modelInfo['id']))); } else { return $this->error($this->model->getError(), url('admin/content/edit', array('model_id' => $this->modelInfo['id'], 'id' => $id))); @@ -142,6 +146,8 @@ class Content extends Admin { $result = $this->model->where($map)->delete(); if (false !== $result) { + //记录行为 + action_log('delete_content', 'content', $result, session('auth_user.uid')); return $this->success("删除成功!"); } else { return $this->error("删除失败!"); diff --git a/application/common/behavior/InitHook.php b/application/common/behavior/InitHook.php index 40153a98..4cad57ae 100644 --- a/application/common/behavior/InitHook.php +++ b/application/common/behavior/InitHook.php @@ -51,7 +51,7 @@ class InitHook { foreach ($list as $key => $value) { $route[$value['rule']] = $value['url']; } - $list = db('Model')->field("name,id")->select(); + $list = db('Model')->column('id,name'); foreach ($list as $key => $value) { $route["admin/" . $value['name'] . "/index"] = "admin/content/index?model_id=" . $value['id']; $route["admin/" . $value['name'] . "/add"] = "admin/content/add?model_id=" . $value['id']; @@ -67,6 +67,7 @@ class InitHook { $route["user/" . $value['name'] . "/del"] = "user/content/del?model_id=" . $value['id']; $route["user/" . $value['name'] . "/status"] = "user/content/status?model_id=" . $value['id']; } + $route["list/:id"] = "index/content/category"; \think\Route::rule($route); } diff --git a/application/common/controller/Admin.php b/application/common/controller/Admin.php index dedb42ec..76d235a4 100644 --- a/application/common/controller/Admin.php +++ b/application/common/controller/Admin.php @@ -218,8 +218,4 @@ class Admin extends Base { $this->assign('extend_menu', array('管理插件' => $menu)); } } - - protected function setMeta($title = '') { - $this->assign('meta_title', $title); - } } diff --git a/application/common/controller/Base.php b/application/common/controller/Base.php index 1a93ab1b..72d3725b 100644 --- a/application/common/controller/Base.php +++ b/application/common/controller/Base.php @@ -38,7 +38,7 @@ class Base extends \think\Controller { $mc = ucfirst(parse_name($mc, 1)); $op = parse_name($op, 1); } - + if (!empty($mc) && !empty($op) && !empty($ac)) { $ops = ucwords($op); $class = "\\addons\\{$mc}\\controller\\{$ops}"; @@ -137,6 +137,17 @@ class Base extends \think\Controller { } } + /** + * @title 后台设置title + * @description 设置后台页面的title + * @Author molong + * @DateTime 2017-06-21 + * @param string $title 标题名称 + */ + protected function setMeta($title = '') { + $this->assign('meta_title', $title); + } + //request信息 protected function requestInfo() { $this->param = $this->request->param(); diff --git a/application/common/model/Addons.php b/application/common/model/Addons.php index 9af1e737..802afa5e 100644 --- a/application/common/model/Addons.php +++ b/application/common/model/Addons.php @@ -14,7 +14,7 @@ namespace app\common\model; * Class AuthGroupModel * @author molong */ -class Addons extends \app\common\model\Base { +class Addons extends Base { protected $auto = array('status', 'isinstall', 'update_time'); protected $insert = array('create_time'); diff --git a/application/common/model/Hooks.php b/application/common/model/Hooks.php index 2b409b37..4f00852c 100644 --- a/application/common/model/Hooks.php +++ b/application/common/model/Hooks.php @@ -72,7 +72,7 @@ class Hooks extends Base { $this->error = "未实现{$addons_name}插件的入口文件"; return false; } - $methods = array_diff(get_class_methods($addons_class), get_class_methods('\app\common\controller\Addons')); + $methods = $this->getMethods($addons_class); $methods = array_diff($methods, array('install', 'uninstall')); foreach ($methods as $item) { $info = $this->where('name', $item)->find(); @@ -121,4 +121,42 @@ class Hooks extends Base { } return true; } + + protected function getMethods($classname, $access = null) { + $class = new \ReflectionClass($classname); + $methods = $class->getMethods(); + $returnArr = array(); + foreach ($methods as $value) { + if ("\\" . $value->class == $classname) { + if ($access != null) { + $methodAccess = new \ReflectionMethod($classname, $value->name); + switch ($access) { + case 'public': + if ($methodAccess->isPublic()) { + array_push($returnArr, $value->name); + } + break; + case 'protected': + if ($methodAccess->isProtected()) { + array_push($returnArr, $value->name); + } + break; + case 'private': + if ($methodAccess->isPrivate()) { + array_push($returnArr, $value->name); + } + break; + case 'final': + if ($methodAccess->isFinal()) { + array_push($returnArr, $value->name); + } + break; + } + } else { + array_push($returnArr, $value->name); + } + } + } + return $returnArr; + } } \ No newline at end of file diff --git a/application/route.php b/application/route.php index b856abe3..bf46a998 100644 --- a/application/route.php +++ b/application/route.php @@ -31,7 +31,7 @@ return array( 'admin/logout' => 'admin/index/logout', // 变量传入index模块的控制器和操作方法 - 'addons/:mc/:ac' => 'index/addons/execute', // 静态地址和动态地址结合 - 'usera/:mc/:ac' => 'user/addons/execute', // 静态地址和动态地址结合 - 'admina/:mc/:ac' => 'admin/addons/execute', // 静态地址和动态地址结合 + 'plugs/:mc/:ac' => 'index/addons/execute', // 静态地址和动态地址结合 + 'user/plugs/:mc/:ac' => 'user/addons/execute', // 静态地址和动态地址结合 + 'admin/plugs/:mc/:ac' => 'admin/addons/execute', // 静态地址和动态地址结合 ); \ No newline at end of file