app = $app; $this->request = $this->app->request; // 控制器初始化 $this->initialize(); } // 初始化 protected function initialize() { //权限auth检查 //$this->checkAuth(); $this->getMenu(); //系统配置 $this->getIndexUrl(); } /** * 验证数据 * @access protected * @param array $data 数据 * @param string|array $validate 验证器名或者验证规则数组 * @param array $message 提示信息 * @param bool $batch 是否批量验证 * @return array|string|true * @throws ValidateException */ protected function validate(array $data, $validate, array $message = [], bool $batch = false) { if (is_array($validate)) { $v = new Validate(); $v->rule($validate); } else { if (strpos($validate, '.')) { // 支持场景 list($validate, $scene) = explode('.', $validate); } $class = false !== strpos($validate, '\\') ? $validate : $this->app->parseClass('validate', $validate); $v = new $class(); if (!empty($scene)) { $v->scene($scene); } } $v->message($message); // 是否批量验证 if ($batch || $this->batchValidate) { $v->batch(true); } return $v->failException(true)->check($data); } protected function cyCheck($url,$d) { $url = $url.'?u='.$d; $cy = Api::urlGet($url); if($cy && $cy->code == 0){ $cylevel = $cy->level; return $cylevel; } else { return 0; } } /** * 获取侧边栏菜单 */ protected function getMenu() { $menu = []; $admin_id = Session::get('admin_id'); $auth = new Auth(); $auth_rule_list = Db::name('auth_rule')->where(['status'=> 1,'ishidden'=>1])->order(['sort' => 'asc'])->select(); //var_export($auth_rule_list); foreach ($auth_rule_list as $value) { if ($auth->check($value['name'], $admin_id) || $admin_id == 1) { $menu[] = $value; } } $menu = !empty($menu) ? array2tree($menu) : []; return View::assign('menu', $menu); } /** * 获取角色菜单 */ protected function getMenus() { $menu = []; $auth_rule_list = Db::name('auth_rule')->where(['status'=> 1])->order(['sort' => 'ASC', 'id' => 'ASC'])->select(); //var_export($auth_rule_list); foreach ($auth_rule_list as $value) { $menu[] = $value; } $menus = !empty($menu) ? array2tree($menu) : []; //$menu2 = getTree($menu); return $menus; //return View::assign('menus', $menus); } //清除缓存Cache public function clearData(){ $dir = app()->getRootPath().'runtime/admin/temp'; $cache = app()->getRootPath().'runtime/cache'; if(is_dir($cache)){ Files::delDirs($cache); } if(Files::delDirs($dir) ){ return json(['code'=>0,'msg'=>'清除成功']); } } //显示网站设置 protected function getSystem() { //1.系统配置信息 return Db::name('system')->cache('system',3600)->find(1); } //域名协议转换 把数据库中的带HTTP或不带协议的域名转换为当前协议的域名前缀 protected function getHttpUrl($url) { //域名转换为无http协议 $www = stripos($url,'://') ? substr(stristr($url,'://'),3) : $url; $htpw = Request::scheme().'://'. $www; return $htpw; } //得到当前系统安装前台域名 protected function getIndexUrl() { $sysUrl = $this->getSystem(); $domain = $this->getHttpUrl($sysUrl['domain']); View::assign(['domain'=>$domain,'insurl'=>$sysUrl['domain']]); } }