public function events()
 {
     admin_only();
     $event_model = D('Events');
     //从session中读取搜索条件
     if (isset($_SESSION['admin_events_condition'])) {
         $admin_events_condition = $_SESSION['admin_events_condition'];
         unset($admin_events_condition['p']);
     } else {
         $admin_events_condition = array('type' => 'all', 'check' => 'all');
     }
     //用传入的搜索条件覆盖现有的搜索条件
     //XXX: sql injection prevention relies on PHP settings. see get_magic_quotes_gpc()
     foreach ($_GET as $key => $value) {
         $admin_events_condition[$key] = $value;
     }
     if ($_GET['q'] == 'all') {
         $admin_events_condition['q'] = '';
     }
     //保存搜索条件
     $_SESSION['admin_events_condition'] = $admin_events_condition;
     extract($admin_events_condition);
     //筛选
     $where_clause = array();
     if ($type != 'all') {
         $where_clause['type'] = $type;
     }
     if ($check == 'deleted') {
         $where_clause['enabled'] = 0;
     } else {
         if ($check == 'pending') {
             $where_clause['is_checked'] = 0;
             $where_clause['enabled'] = 1;
         } else {
             if ($check == 'checked') {
                 $where_clause['is_checked'] = 1;
                 $where_clause['enabled'] = 1;
             }
         }
     }
     if (!empty($q)) {
         $where_clause['name'] = array('like', "%{$q}%");
     }
     import("ORG.Util.TBPage");
     $listRows = C('ADMIN_ROW_LIST');
     $event_count = $event_model->where($where_clause)->count();
     $Page = new TBPage($event_count, $listRows);
     $event_result = $event_model->where($where_clause)->order('create_time desc')->limit($Page->firstRow . ',' . $listRows)->select();
     //fetch user name for each event
     $user_ids = array();
     foreach ($event_result as $e) {
         $user_ids[$e['user_id']] = 1;
     }
     $user_model = new UsersModel();
     $related_users = $user_model->query("select id,name from users where id in (" . implode(',', array_keys($user_ids)) . ")");
     foreach ($related_users as $r) {
         $user_ids[$r['id']] = $r['name'];
     }
     for ($i = 0; $i < count($event_result); $i++) {
         $event_result[$i]['creator_name'] = $user_ids[$event_result[$i]['user_id']];
     }
     $page_bar = $Page->show();
     $this->assign('q', $q);
     $this->assign('check', $check);
     $this->assign('type', $type);
     $this->assign('event_result', $event_result);
     $this->assign('page', $page_bar);
     $this->display();
 }