コード例 #1
0
ファイル: Abstract.php プロジェクト: emilymwang8/cms
 public function handle_request()
 {
     //当前菜单
     $itemCode = $this->get_item_code();
     $userId = $this->get_user_id();
     //检查登录者信息是否保存,不保存则保存值数据库中
     $this->_check_user_info($userId);
     $params = $this->getParam();
     //城市设置
     $this->_check_city_set($params);
     $this->setAttribute("itemCode_" . $userId, $itemCode);
     //当前登录者名称
     $userName = $this->get_user_name();
     $this->setAttribute("userName_" . $userId, $userName);
     if (!$this->enable_anonymous()) {
         //需要验证权限
         if (!$this->_check_authority($itemCode, $selfMenuArr, $userlevel)) {
             //无权限访问
             //return 'Error_HTTP404';
             return $this->handle_request_internel();
         }
     } else {
         //不需要验证权限,一般用于ajax处理或者无页面返回或者一些针对所有人开放的功能
         $userinfo = $this->_userInfo;
         $this->userlevel = $userlevel = $userinfo['level'];
         $selfMenuArr = Bll_Authority::get_all_menus_by_group_id($userinfo['group_id']);
         $selfMenu = Bll_Menus::init_menus_arr($selfMenuArr);
         $isSupperMan = intval($userlevel) == Const_Cms::CMS_USER_LEVEL_SUPPER ? true : false;
         //标记系统设置是否需要展示
         if ($isSupperMan || in_array('G004', $selfMenu)) {
             $this->setAttribute('system_show_' . $this->get_user_id(), true);
         }
     }
     $siJiMenusId = $deepth = 0;
     //当前账号菜单信息
     if ($this->open_left_menus() && $itemCode) {
         //加了左侧菜单
         $menusInfo = Bll_Menus::init_user_menus($itemCode, $selfMenuArr, $userlevel, $siJiMenusId, $deepth, $this->current_item, $this->total_item);
         $this->setAttribute("menusInfo_" . $userId, $menusInfo);
     }
     $this->setAttribute("open_left_menus_" . $userId, $this->open_left_menus());
     $this->setAttribute("open_top_menus_" . $userId, $this->open_top_menus());
     //更新用户最近使用菜单
     Bll_UserUsedLog::replace_user_menus_log($userId, $siJiMenusId, $deepth, $this->nowTime);
     //记录用户菜单使用日志
     Bll_UserMenusUsedLog::insert_user_used_menus_info($userId, $userName, $siJiMenusId, $deepth, $this->request->get_client_ip(), $this->nowTime);
     return $this->handle_request_internel();
 }
コード例 #2
0
ファイル: Menus.php プロジェクト: emilymwang8/cms
 /**
  * 获取用户最近使用菜单,菜单截取标题为8个中文字符
  * @param $userId
  * @return array|bool
  */
 public static function get_user_last_menus_info($userId)
 {
     //最近使用菜单
     $last_used_menus = Bll_UserUsedLog::get_user_last_used_menus($userId, Const_Cms::CMS_SIJI_MENU_DEEPTH);
     $last_used_menus = Tool_Array::init_new_arr_by_key($last_used_menus, "item_id");
     //菜单ID数组
     $menus_ids = Tool_Array::get_val_arr($last_used_menus, "item_id");
     $menus_total_info = self::get_menus_info_by_ids($menus_ids);
     $menus_total_info = Tool_Array::init_new_arr_by_key($menus_total_info, "id");
     $last_menus = array();
     foreach ($last_used_menus as $last_used_menus_key => $last_used_menus_val) {
         if (empty($menus_total_info[$last_used_menus_key])) {
             //菜单无效
             unset($last_used_menus[$last_used_menus_key]);
             continue;
         }
         $menus_total_info[$last_used_menus_key]['item_title'] = Tool_Font::split_font($menus_total_info[$last_used_menus_key]['item_title'], Const_Cms::CMS_LAST_USED_FONT_LEN, "");
         //<=8字,超出截字显示;数字或字母,按半字符计算;
         $last_menus[] = $menus_total_info[$last_used_menus_key];
     }
     return $last_menus;
 }