| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- <?php
- /**
- * 洛阳赤炎鹰网络科技有限公司
- * https://www.cyyvip.com
- * Copyright (c) 2022 赤店商城 All rights reserved.
- */
- namespace Common\Controller;
- use Common\Controller\AppframeController;
- class AdminbaseController extends AppframeController {
-
- public function __construct() {
- $admintpl_path=C("SP_ADMIN_TMPL_PATH").C("SP_ADMIN_DEFAULT_THEME")."/";
- C("TMPL_ACTION_SUCCESS",$admintpl_path.C("SP_ADMIN_TMPL_ACTION_SUCCESS"));
- C("TMPL_ACTION_ERROR",$admintpl_path.C("SP_ADMIN_TMPL_ACTION_ERROR"));
- parent::__construct();
- $time=time();
- $this->assign("js_debug",APP_DEBUG?"?v=$time":"");
- }
- function _initialize(){
- parent::_initialize();
- $this->load_app_admin_menu_lang();
- if(isset($_SESSION['ADMIN_ID'])){
- $users_obj= M("Users");
- $id=$_SESSION['ADMIN_ID'];
- $user=$users_obj->where("id=$id")->find();
- if(!$this->check_access($id)){
- $this->error("您没有访问权限!");
- exit();
- }
- $this->assign("admin",$user);
- }else{
- //$this->error("您还没有登录!",U("admin/public/login"));
- if(IS_AJAX){
- $this->error("您还没有登录!",U("admin/public/login"));
- }else{
- header("Location:".U("admin/public/login"));
- exit();
- }
-
- }
- }
-
- /**
- * 初始化后台菜单
- */
- public function initMenu() {
- $Menu = F("Menu");
- if (!$Menu) {
- $Menu=D("Common/Menu")->menu_cache();
- }
- return $Menu;
- }
- /**
- * 消息提示
- * @param type $message
- * @param type $jumpUrl
- * @param type $ajax
- */
- public function success($message = '', $jumpUrl = '', $ajax = false) {
- parent::success($message, $jumpUrl, $ajax);
- }
- /**
- * 模板显示
- * @param type $templateFile 指定要调用的模板文件
- * @param type $charset 输出编码
- * @param type $contentType 输出类型
- * @param string $content 输出内容
- * 此方法作用在于实现后台模板直接存放在各自项目目录下。例如Admin项目的后台模板,直接存放在Admin/Tpl/目录下
- */
- public function display($templateFile = '', $charset = '', $contentType = '', $content = '', $prefix = '') {
- parent::display($this->parseTemplate($templateFile), $charset, $contentType);
- }
-
- /**
- * 获取输出页面内容
- * 调用内置的模板引擎fetch方法,
- * @access protected
- * @param string $templateFile 指定要调用的模板文件
- * 默认为空 由系统自动定位模板文件
- * @param string $content 模板输出内容
- * @param string $prefix 模板缓存前缀*
- * @return string
- */
- public function fetch($templateFile='',$content='',$prefix=''){
- $templateFile = empty($content)?$this->parseTemplate($templateFile):'';
- return parent::fetch($templateFile,$content,$prefix);
- }
-
- /**
- * 自动定位模板文件
- * @access protected
- * @param string $template 模板文件规则
- * @return string
- */
- public function parseTemplate($template='') {
- $tmpl_path=C("SP_ADMIN_TMPL_PATH");
- define("SP_TMPL_PATH", $tmpl_path);
- // 获取当前主题名称
- $theme = C('SP_ADMIN_DEFAULT_THEME');
-
- if(is_file($template)) {
- // 获取当前主题的模版路径
- define('THEME_PATH', $tmpl_path.$theme."/");
- return $template;
- }
- $depr = C('TMPL_FILE_DEPR');
- $template = str_replace(':', $depr, $template);
-
- // 获取当前模块
- $module = MODULE_NAME."/";
- if(strpos($template,'@')){ // 跨模块调用模版文件
- list($module,$template) = explode('@',$template);
- }
- // 获取当前主题的模版路径
- define('THEME_PATH', $tmpl_path.$theme."/");
-
- // 分析模板文件规则
- if('' == $template) {
- // 如果模板文件名为空 按照默认规则定位
- $template = CONTROLLER_NAME . $depr . ACTION_NAME;
- }elseif(false === strpos($template, '/')){
- $template = CONTROLLER_NAME . $depr . $template;
- }
-
- C("TMPL_PARSE_STRING.__TMPL__",__ROOT__."/".THEME_PATH);
-
- C('SP_VIEW_PATH',$tmpl_path);
- C('DEFAULT_THEME',$theme);
- define("SP_CURRENT_THEME", $theme);
-
- $file = sp_add_template_file_suffix(THEME_PATH.$module.$template);
- $file= str_replace("//",'/',$file);
- if(!file_exists_case($file)) E(L('_TEMPLATE_NOT_EXIST_').':'.$file);
- return $file;
- }
- /**
- * 排序 排序字段为listorders数组 POST 排序字段为:listorder
- */
- protected function _listorders($model) {
- if (!is_object($model)) {
- return false;
- }
- $pk = $model->getPk(); //获取主键名称
- $ids = $_POST['listorders'];
- foreach ($ids as $key => $r) {
- $data['listorder'] = $r;
- $model->where(array($pk => $key))->save($data);
- }
- return true;
- }
- /**
- * 后台分页
- *
- */
- protected function page($total_size = 1, $page_size = 0, $current_page = 1, $listRows = 6, $pageParam = '', $pageLink = '', $static = FALSE) {
- if ($page_size == 0) {
- $page_size = C("PAGE_LISTROWS");
- }
-
- if (empty($pageParam)) {
- $pageParam = C("VAR_PAGE");
- }
-
- $Page = new \Page($total_size, $page_size, $current_page, $listRows, $pageParam, $pageLink, $static);
- $Page->SetPager('Admin', '{first}{prev} {liststart}{list}{listend} {next}{last}', array("listlong" => "9", "first" => "首页", "last" => "尾页", "prev" => "上一页", "next" => "下一页", "list" => "*", "disabledclass" => ""));
- return $Page;
- }
- private function check_access($uid){
- //如果用户角色是1,则无需判断
- if($uid == 1){
- return true;
- }
-
- $rule=MODULE_NAME.CONTROLLER_NAME.ACTION_NAME;
- $no_need_check_rules=array("AdminIndexindex","AdminMainindex");
-
- if( !in_array($rule,$no_need_check_rules) ){
- return sp_auth_check($uid);
- }else{
- return true;
- }
- }
-
- private function load_app_admin_menu_lang(){
- if (C('LANG_SWITCH_ON',null,false)){
- $admin_menu_lang_file=SPAPP.MODULE_NAME."/Lang/".LANG_SET."/admin_menu.php";
- if(is_file($admin_menu_lang_file)){
- $lang=include $admin_menu_lang_file;
- L($lang);
- }
- }
- }
- }
|