Example #1
0
 /**
  * 게시판 목록페이지입니다.
  */
 public function _get_list($brd_key, $from_view = '')
 {
     // 이벤트 라이브러리를 로딩합니다
     $eventname = 'event_board_post_get_list';
     $this->load->event($eventname);
     $view = array();
     $view['view'] = array();
     // 이벤트가 존재하면 실행합니다
     $view['view']['event']['before'] = Events::trigger('before', $eventname);
     $return = array();
     $board = $this->_get_board($brd_key);
     $mem_id = (int) $this->member->item('mem_id');
     $alertmessage = $this->member->is_member() ? '회원님은 이 게시판 목록을 볼 수 있는 권한이 없습니다' : '비회원은 이 게시판에 접근할 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오';
     $check = array('group_id' => element('bgr_id', $board), 'board_id' => element('brd_id', $board));
     $this->accesslevel->check(element('access_list', $board), element('access_list_level', $board), element('access_list_group', $board), $alertmessage, $check);
     if (element('use_personal', $board) && $this->member->is_member() === false) {
         alert('이 게시판은 1:1 게시판입니다. 비회원은 접근할 수 없습니다');
         return false;
     }
     $skindir = $this->cbconfig->get_device_view_type() === 'mobile' ? element('board_mobile_skin', $board) ? element('board_mobile_skin', $board) : element('board_skin', $board) : element('board_skin', $board);
     $skinurl = base_url(VIEW_DIR . 'board/' . $skindir);
     $view['view']['is_admin'] = $is_admin = $this->member->is_admin(array('board_id' => element('brd_id', $board), 'group_id' => element('bgr_id', $board)));
     /**
      * 페이지에 숫자가 아닌 문자가 입력되거나 1보다 작은 숫자가 입력되면 에러 페이지를 보여줍니다.
      */
     $param =& $this->querystring;
     $page = (int) $this->input->get('page') > 0 ? (int) $this->input->get('page') : 1;
     $order_by_field = element('order_by_field', $board) ? element('order_by_field', $board) : 'post_num, post_reply';
     $findex = $this->input->get('findex', null, $order_by_field);
     $sfield = $sfieldchk = $this->input->get('sfield', null, '');
     if ($sfield === 'post_both') {
         $sfield = array('post_title', 'post_content');
     }
     $skeyword = $this->input->get('skeyword', null, '');
     if ($this->cbconfig->get_device_view_type() === 'mobile') {
         $per_page = element('mobile_list_count', $board) ? (int) element('mobile_list_count', $board) : 10;
     } else {
         $per_page = element('list_count', $board) ? (int) element('list_count', $board) : 20;
     }
     $offset = ($page - 1) * $per_page;
     $this->Post_model->allow_search_field = array('post_id', 'post_title', 'post_content', 'post_both', 'post_category', 'post_userid', 'post_nickname');
     // 검색이 가능한 필드
     $this->Post_model->search_field_equal = array('post_id', 'post_userid', 'post_nickname');
     // 검색중 like 가 아닌 = 검색을 하는 필드
     // 이벤트가 존재하면 실행합니다
     $view['view']['event']['step1'] = Events::trigger('step1', $eventname);
     /**
      * 상단에 공지사항 부분에 필요한 정보를 가져옵니다.
      */
     $except_all_notice = false;
     if (element('except_all_notice', $board) && $this->cbconfig->get_device_view_type() !== 'mobile') {
         $except_all_notice = true;
     }
     if (element('mobile_except_all_notice', $board) && $this->cbconfig->get_device_view_type() === 'mobile') {
         $except_all_notice = true;
     }
     $use_sideview = $this->cbconfig->get_device_view_type() === 'mobile' ? element('use_mobile_sideview', $board) : element('use_sideview', $board);
     $list_date_style = $this->cbconfig->get_device_view_type() === 'mobile' ? element('mobile_list_date_style', $board) : element('list_date_style', $board);
     $list_date_style_manual = $this->cbconfig->get_device_view_type() === 'mobile' ? element('mobile_list_date_style_manual', $board) : element('list_date_style_manual', $board);
     if (element('use_gallery_list', $board)) {
         $this->load->model('Post_file_model');
         $board['gallery_cols'] = $gallery_cols = $this->cbconfig->get_device_view_type() === 'mobile' ? element('mobile_gallery_cols', $board) : element('gallery_cols', $board);
         $board['gallery_image_width'] = $gallery_image_width = $this->cbconfig->get_device_view_type() === 'mobile' ? element('mobile_gallery_image_width', $board) : element('gallery_image_width', $board);
         $board['gallery_image_height'] = $gallery_image_height = $this->cbconfig->get_device_view_type() === 'mobile' ? element('mobile_gallery_image_height', $board) : element('gallery_image_height', $board);
         $board['gallery_percent'] = floor(102 / $board['gallery_cols']) - 2;
     }
     if (element('use_category', $board)) {
         $this->load->model('Board_category_model');
         $board['category'] = $this->Board_category_model->get_all_category(element('brd_id', $board));
     }
     $noticeresult = $this->Post_model->get_notice_list(element('brd_id', $board), $except_all_notice, $sfield, $skeyword);
     if ($noticeresult) {
         foreach ($noticeresult as $key => $val) {
             $notice_brd_key = $this->board->item_id('brd_key', element('brd_id', $val));
             $noticeresult[$key]['post_url'] = post_url($notice_brd_key, element('post_id', $val));
             $noticeresult[$key]['meta'] = $meta = $this->Post_meta_model->get_all_meta(element('post_id', $val));
             if ($this->cbconfig->get_device_view_type() === 'mobile') {
                 $noticeresult[$key]['title'] = element('mobile_subject_length', $board) ? cut_str(element('post_title', $val), element('mobile_subject_length', $board)) : element('post_title', $val);
             } else {
                 $noticeresult[$key]['title'] = element('subject_length', $board) ? cut_str(element('post_title', $val), element('subject_length', $board)) : element('post_title', $val);
             }
             if (element('post_del', $val)) {
                 $noticeresult[$key]['title'] = '게시물이 삭제 되었습니다';
             }
             $noticeresult[$key]['display_name'] = display_username(element('post_userid', $val), element('post_nickname', $val), element('mem_icon', $val), $use_sideview ? 'Y' : 'N');
             $noticeresult[$key]['display_datetime'] = display_datetime(element('post_datetime', $val), $list_date_style, $list_date_style_manual);
             $noticeresult[$key]['category'] = '';
             if (element('use_category', $board) && element('post_category', $val)) {
                 $noticeresult[$key]['category'] = $this->Board_category_model->get_category_info(element('brd_id', $val), element('post_category', $val));
             }
             if ($param->output()) {
                 $noticeresult[$key]['post_url'] .= '?' . $param->output();
             }
             $noticeresult[$key]['is_mobile'] = element('post_device', $val) === 'mobile' ? true : false;
         }
     }
     /**
      * 게시판 목록에 필요한 정보를 가져옵니다.
      */
     $where = array('brd_id' => $this->board->item_key('brd_id', $brd_key));
     $where['post_del <>'] = 2;
     if (element('except_notice', $board) && $this->cbconfig->get_device_view_type() !== 'mobile') {
         $where['post_notice'] = 0;
     }
     if (element('mobile_except_notice', $board) && $this->cbconfig->get_device_view_type() === 'mobile') {
         $where['post_notice'] = 0;
     }
     if (element('use_personal', $board) && $is_admin === false) {
         $where['post.mem_id'] = $mem_id;
     }
     $category_id = (int) $this->input->get('category_id');
     if (empty($category_id) or $category < 1) {
         $category_id = '';
     }
     $result = $this->Post_model->get_post_list($per_page, $offset, $where, $category_id, $findex, $sfield, $skeyword);
     $list_num = $result['total_rows'] - ($page - 1) * $per_page;
     if (element('list', $result)) {
         foreach (element('list', $result) as $key => $val) {
             $result['list'][$key]['post_url'] = post_url(element('brd_key', $board), element('post_id', $val));
             $result['list'][$key]['meta'] = $meta = $this->Post_meta_model->get_all_meta(element('post_id', $val));
             if ($this->cbconfig->get_device_view_type() === 'mobile') {
                 $result['list'][$key]['title'] = element('mobile_subject_length', $board) ? cut_str(element('post_title', $val), element('mobile_subject_length', $board)) : element('post_title', $val);
             } else {
                 $result['list'][$key]['title'] = element('subject_length', $board) ? cut_str(element('post_title', $val), element('subject_length', $board)) : element('post_title', $val);
             }
             if (element('post_del', $val)) {
                 $result['list'][$key]['title'] = '게시물이 삭제 되었습니다';
             }
             $is_blind = element('blame_blind_count', $board) > 0 && element('post_blame', $val) >= element('blame_blind_count', $board) ? true : false;
             if ($is_blind) {
                 $result['list'][$key]['title'] = '신고가 접수된 게시글입니다.';
             }
             $result['list'][$key]['display_name'] = display_username(element('post_userid', $val), element('post_nickname', $val), element('mem_icon', $val), $use_sideview ? 'Y' : 'N');
             $result['list'][$key]['display_datetime'] = display_datetime(element('post_datetime', $val), $list_date_style, $list_date_style_manual);
             $result['list'][$key]['category'] = '';
             if (element('use_category', $board) && element('post_category', $val)) {
                 $result['list'][$key]['category'] = $this->Board_category_model->get_category_info(element('brd_id', $val), element('post_category', $val));
             }
             if ($param->output()) {
                 $result['list'][$key]['post_url'] .= '?' . $param->output();
             }
             $result['list'][$key]['num'] = $list_num--;
             $result['list'][$key]['is_hot'] = false;
             $hot_icon_day = $this->cbconfig->get_device_view_type() === 'mobile' ? element('mobile_hot_icon_day', $board) : element('hot_icon_day', $board);
             $hot_icon_hit = $this->cbconfig->get_device_view_type() === 'mobile' ? element('mobile_hot_icon_hit', $board) : element('hot_icon_hit', $board);
             if ($hot_icon_day && ctimestamp() - strtotime(element('post_datetime', $val)) <= $hot_icon_day * 86400) {
                 if ($hot_icon_hit && $hot_icon_hit <= element('post_hit', $val)) {
                     $result['list'][$key]['is_hot'] = true;
                 }
             }
             $result['list'][$key]['is_new'] = false;
             $new_icon_hour = $this->cbconfig->get_device_view_type() === 'mobile' ? element('mobile_new_icon_hour', $board) : element('new_icon_hour', $board);
             if ($new_icon_hour && ctimestamp() - strtotime(element('post_datetime', $val)) <= $new_icon_hour * 3600) {
                 $result['list'][$key]['is_new'] = true;
             }
             $result['list'][$key]['is_mobile'] = element('post_device', $val) === 'mobile' ? true : false;
             $result['list'][$key]['thumb_url'] = '';
             $result['list'][$key]['origin_image_url'] = '';
             if (element('use_gallery_list', $board)) {
                 if (element('post_image', $val)) {
                     $filewhere = array('post_id' => element('post_id', $val), 'pfi_is_image' => 1);
                     $file = $this->Post_file_model->get_one('', '', $filewhere, '', '', 'pfi_id', 'ASC');
                     $result['list'][$key]['thumb_url'] = thumb_url('post', element('pfi_filename', $file), $gallery_image_width, $gallery_image_height);
                     $result['list'][$key]['origin_image_url'] = thumb_url('post', element('pfi_filename', $file));
                 } else {
                     $thumb_url = get_post_image_url(element('post_content', $val), $gallery_image_width, $gallery_image_height);
                     $result['list'][$key]['thumb_url'] = $thumb_url ? $thumb_url : thumb_url('', '', $gallery_image_width, $gallery_image_height);
                     $result['list'][$key]['origin_image_url'] = $thumb_url;
                 }
             }
         }
     }
     $return['data'] = $result;
     $return['notice_list'] = $noticeresult;
     if (empty($from_view)) {
         $board['headercontent'] = $this->cbconfig->get_device_view_type() === 'mobile' ? element('mobile_header_content', $board) : element('header_content', $board);
     }
     $board['footercontent'] = $this->cbconfig->get_device_view_type() === 'mobile' ? element('mobile_footer_content', $board) : element('footer_content', $board);
     $board['cat_display_style'] = $this->cbconfig->get_device_view_type() === 'mobile' ? element('mobile_category_display_style', $board) : element('category_display_style', $board);
     $return['board'] = $board;
     $return['point_info'] = '';
     if ($this->cbconfig->item('use_point') && element('use_point', $board) && element('use_point_info', $board)) {
         $point_info = '';
         if (element('point_write', $board)) {
             $point_info .= '원글작성 : ' . element('point_write', $board) . '<br />';
         }
         if (element('point_comment', $board)) {
             $point_info .= '댓글작성 : ' . element('point_comment', $board) . '<br />';
         }
         if (element('point_fileupload', $board)) {
             $point_info .= '파일업로드 : ' . element('point_fileupload', $board) . '<br />';
         }
         if (element('point_filedownload', $board)) {
             $point_info .= '파일다운로드 : ' . element('point_filedownload', $board) . '<br />';
         }
         if (element('point_filedownload_uploader', $board)) {
             $point_info .= '파일다운로드시업로더에게 : ' . element('point_filedownload_uploader', $board) . '<br />';
         }
         if (element('point_read', $board)) {
             $point_info .= '게시글조회 : ' . element('point_read', $board) . '<br />';
         }
         if (element('point_post_like', $board)) {
             $point_info .= '원글추천함 : ' . element('point_post_like', $board) . '<br />';
         }
         if (element('point_post_dislike', $board)) {
             $point_info .= '원글비추천함 : ' . element('point_post_dislike', $board) . '<br />';
         }
         if (element('point_post_liked', $board)) {
             $point_info .= '원글추천받음 : ' . element('point_post_liked', $board) . '<br />';
         }
         if (element('point_post_disliked', $board)) {
             $point_info .= '원글비추천받음 : ' . element('point_post_disliked', $board) . '<br />';
         }
         if (element('point_comment_like', $board)) {
             $point_info .= '댓글추천함 : ' . element('point_comment_like', $board) . '<br />';
         }
         if (element('point_comment_dislike', $board)) {
             $point_info .= '댓글비추천함 : ' . element('point_comment_dislike', $board) . '<br />';
         }
         if (element('point_comment_liked', $board)) {
             $point_info .= '댓글추천받음 : ' . element('point_comment_liked', $board) . '<br />';
         }
         if (element('point_comment_disliked', $board)) {
             $point_info .= '댓글비추천받음 : ' . element('point_comment_disliked', $board) . '<br />';
         }
         $return['point_info'] = $point_info;
     }
     // 이벤트가 존재하면 실행합니다
     $view['view']['event']['step2'] = Events::trigger('step2', $eventname);
     /**
      * primary key 정보를 저장합니다
      */
     $return['primary_key'] = $this->Post_model->primary_key;
     $highlight_keyword = '';
     if ($skeyword) {
         if (!$this->session->userdata('skeyword_' . $skeyword)) {
             $sfieldarray = array('post_title', 'post_content', 'post_both');
             if (in_array($sfieldchk, $sfieldarray)) {
                 $this->load->model('Search_keyword_model');
                 $searchinsert = array('sek_keyword' => $skeyword, 'sek_datetime' => cdate('Y-m-d H:i:s'), 'sek_ip' => $this->input->ip_address(), 'mem_id' => $mem_id);
                 $this->Search_keyword_model->insert($searchinsert);
                 $this->session->set_userdata('skeyword_' . $skeyword, 1);
             }
         }
         $key_explode = explode(' ', $skeyword);
         if ($key_explode) {
             foreach ($key_explode as $seval) {
                 if ($highlight_keyword) {
                     $highlight_keyword .= ',';
                 }
                 $highlight_keyword .= '\'' . html_escape($seval) . '\'';
             }
         }
     }
     $return['highlight_keyword'] = $highlight_keyword;
     /**
      * 페이지네이션을 생성합니다
      */
     $config['base_url'] = board_url($brd_key) . '?' . $param->replace('page');
     $config['total_rows'] = $result['total_rows'];
     $config['per_page'] = $per_page;
     if ($this->cbconfig->get_device_view_type() === 'mobile') {
         $config['num_links'] = element('mobile_page_count', $board) ? element('mobile_page_count', $board) : 3;
     } else {
         $config['num_links'] = element('page_count', $board) ? element('page_count', $board) : 5;
     }
     $this->pagination->initialize($config);
     $return['paging'] = $this->pagination->create_links();
     $return['page'] = $page;
     /**
      * 쓰기 주소, 삭제 주소등 필요한 주소를 구합니다
      */
     $search_option = array('post_title' => '제목', 'post_content' => '내용');
     $return['search_option'] = search_option($search_option, $sfield);
     if ($skeyword) {
         $return['list_url'] = board_url(element('brd_key', $board));
         $return['search_list_url'] = board_url(element('brd_key', $board) . '?' . $param->output());
     } else {
         $return['list_url'] = board_url(element('brd_key', $board) . '?' . $param->output());
         $return['search_list_url'] = '';
     }
     $check = array('group_id' => element('bgr_id', $board), 'board_id' => element('brd_id', $board));
     $can_write = $this->accesslevel->is_accessable(element('access_write', $board), element('access_write_level', $board), element('access_write_group', $board), $check);
     $return['write_url'] = '';
     if ($can_write === true) {
         $return['write_url'] = write_url($brd_key);
     } elseif ($this->cbconfig->get_device_view_type() !== 'mobile' && element('always_show_write_button', $board)) {
         $return['write_url'] = 'javascript:alert(\'비회원은 글쓰기 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.\');';
     } elseif ($this->cbconfig->get_device_view_type() === 'mobile' && element('mobile_always_show_write_button', $board)) {
         $return['write_url'] = 'javascript:alert(\'비회원은 글쓰기 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.\');';
     }
     $return['list_delete_url'] = site_url('postact/listdelete/' . $brd_key . '?' . $param->output());
     return $return;
 }
Example #2
0
 /**
  * 목록을 가져오는 메소드입니다
  */
 public function index()
 {
     // 이벤트 라이브러리를 로딩합니다
     $eventname = 'event_admin_board_fileupload_index';
     $this->load->event($eventname);
     $view = array();
     $view['view'] = array();
     // 이벤트가 존재하면 실행합니다
     $view['view']['event']['before'] = Events::trigger('before', $eventname);
     /**
      * 페이지에 숫자가 아닌 문자가 입력되거나 1보다 작은 숫자가 입력되면 에러 페이지를 보여줍니다.
      */
     $param =& $this->querystring;
     $page = (int) $this->input->get('page') > 0 ? (int) $this->input->get('page') : 1;
     $view['view']['sort'] = array('pfi_id' => $param->sort('pfi_id', 'asc'), 'pfi_filesize' => $param->sort('pfi_filesize', 'asc'), 'pfi_download' => $param->sort('pfi_download', 'asc'), 'pfi_datetime' => $param->sort('pfi_datetime', 'asc'));
     $findex = $this->input->get('findex') ? $this->input->get('findex') : $this->{$this->modelname}->primary_key;
     $forder = $this->input->get('forder', null, 'desc');
     $sfield = $this->input->get('sfield', null, '');
     $skeyword = $this->input->get('skeyword', null, '');
     $per_page = admin_listnum();
     $offset = ($page - 1) * $per_page;
     /**
      * 게시판 목록에 필요한 정보를 가져옵니다.
      */
     $this->{$this->modelname}->allow_search_field = array('pfi_id', 'post.post_id', 'post.mem_id', 'pfi_originname', 'pfi_filename', 'pfi_datetime', 'pfi_ip');
     // 검색이 가능한 필드
     $this->{$this->modelname}->search_field_equal = array('pfi_id', 'post.post_id', 'post.mem_id');
     // 검색중 like 가 아닌 = 검색을 하는 필드
     $this->{$this->modelname}->allow_order_field = array('pfi_id', 'pfi_filesize', 'pfi_download', 'pfi_datetime');
     // 정렬이 가능한 필드
     $where = array();
     if ($brdid = (int) $this->input->get('brd_id')) {
         $where['post.brd_id'] = $brdid;
     }
     $result = $this->{$this->modelname}->get_admin_list($per_page, $offset, $where, '', $findex, $forder, $sfield, $skeyword);
     $list_num = $result['total_rows'] - ($page - 1) * $per_page;
     if (element('list', $result)) {
         foreach (element('list', $result) as $key => $val) {
             $result['list'][$key]['post_display_name'] = display_username(element('post_userid', $val), element('post_nickname', $val));
             $brd_key = $this->board->item_id('brd_key', element('brd_id', $val));
             $result['list'][$key]['posturl'] = post_url($brd_key, element('post_id', $val));
             $result['list'][$key]['download_link'] = admin_url($this->pagedir . '/download/' . element('pfi_id', $val));
             if (element('pfi_is_image', $val)) {
                 $result['list'][$key]['origin_image_url'] = thumb_url('post', element('pfi_filename', $val));
                 $result['list'][$key]['thumb_url'] = thumb_url('post', element('pfi_filename', $val), '80');
             }
             $result['list'][$key]['board'] = $board = $this->board->item_all(element('brd_id', $val));
             if ($board) {
                 $result['list'][$key]['baordurl'] = board_url(element('brd_key', $board));
             }
             $result['list'][$key]['num'] = $list_num--;
         }
     }
     $view['view']['data'] = $result;
     $view['view']['boardlist'] = $this->Board_model->get_board_list();
     /**
      * primary key 정보를 저장합니다
      */
     $view['view']['primary_key'] = $this->{$this->modelname}->primary_key;
     /**
      * 페이지네이션을 생성합니다
      */
     $config['base_url'] = admin_url($this->pagedir) . '?' . $param->replace('page');
     $config['total_rows'] = $result['total_rows'];
     $config['per_page'] = $per_page;
     $this->pagination->initialize($config);
     $view['view']['paging'] = $this->pagination->create_links();
     $view['view']['page'] = $page;
     /**
      * 쓰기 주소, 삭제 주소등 필요한 주소를 구합니다
      */
     $search_option = array('pfi_originname' => '파일명', 'pfi_datetime' => '올린날짜', 'pfi_ip' => 'IP');
     $view['view']['skeyword'] = $sfield && array_key_exists($sfield, $search_option) ? $skeyword : '';
     $view['view']['search_option'] = search_option($search_option, $sfield);
     $view['view']['listall_url'] = admin_url($this->pagedir);
     $view['view']['list_delete_url'] = admin_url($this->pagedir . '/listdelete/?' . $param->output());
     // 이벤트가 존재하면 실행합니다
     $view['view']['event']['before_layout'] = Events::trigger('before_layout', $eventname);
     /**
      * 어드민 레이아웃을 정의합니다
      */
     $layoutconfig = array('layout' => 'layout', 'skin' => 'index');
     $view['layout'] = $this->managelayout->admin($layoutconfig, $this->cbconfig->get_device_view_type());
     $this->data = $view;
     $this->layout = element('layout_skin_file', element('layout', $view));
     $this->view = element('view_skin_file', element('layout', $view));
 }
Example #3
0
 /**
  * 방문자 로그 목록을 가져옵니다
  */
 public function index()
 {
     // 이벤트 라이브러리를 로딩합니다
     $eventname = 'event_admin_stat_statcounter_index';
     $this->load->event($eventname);
     $view = array();
     $view['view'] = array();
     // 이벤트가 존재하면 실행합니다
     $view['view']['event']['before'] = Events::trigger('before', $eventname);
     /**
      * 페이지에 숫자가 아닌 문자가 입력되거나 1보다 작은 숫자가 입력되면 에러 페이지를 보여줍니다.
      */
     $param =& $this->querystring;
     $page = (int) $this->input->get('page') > 0 ? (int) $this->input->get('page') : 1;
     $findex = $this->input->get('findex') ? $this->input->get('findex') : $this->{$this->modelname}->primary_key;
     $forder = $this->input->get('forder', null, 'desc');
     $sfield = $this->input->get('sfield', null, '');
     $skeyword = $this->input->get('skeyword', null, '');
     $per_page = admin_listnum();
     $offset = ($page - 1) * $per_page;
     /**
      * 게시판 목록에 필요한 정보를 가져옵니다.
      */
     $this->{$this->modelname}->allow_search_field = array('sco_ip', 'sco_date', 'sco_referer', 'sco_current', 'sco_agent');
     // 검색이 가능한 필드
     $this->{$this->modelname}->search_field_equal = array();
     // 검색중 like 가 아닌 = 검색을 하는 필드
     $result = $this->{$this->modelname}->get_admin_list($per_page, $offset, '', '', $findex, $forder, $sfield, $skeyword);
     if (element('list', $result)) {
         foreach (element('list', $result) as $key => $val) {
             if (element('sco_agent', $val)) {
                 $userAgent = get_useragent_info(element('sco_agent', $val));
                 $result['list'][$key]['browsername'] = $userAgent['browsername'];
                 $result['list'][$key]['browserversion'] = $userAgent['browserversion'];
                 $result['list'][$key]['os'] = $userAgent['os'];
                 $result['list'][$key]['engine'] = $userAgent['engine'];
             }
         }
     }
     $view['view']['data'] = $result;
     /**
      * primary key 정보를 저장합니다
      */
     $view['view']['primary_key'] = $this->{$this->modelname}->primary_key;
     /**
      * 페이지네이션을 생성합니다
      */
     $config['base_url'] = admin_url($this->pagedir) . '?' . $param->replace('page');
     $config['total_rows'] = $result['total_rows'];
     $config['per_page'] = $per_page;
     $this->pagination->initialize($config);
     $view['view']['paging'] = $this->pagination->create_links();
     $view['view']['page'] = $page;
     /**
      * 쓰기 주소, 삭제 주소등 필요한 주소를 구합니다
      */
     $search_option = array('sco_ip' => 'IP', 'sco_date' => '날짜', 'sco_referer' => '이전주소', 'sco_current' => '현재주소', 'sco_agent' => 'OS/Browser');
     $view['view']['skeyword'] = $sfield && array_key_exists($sfield, $search_option) ? $skeyword : '';
     $view['view']['search_option'] = search_option($search_option, $sfield);
     $view['view']['listall_url'] = admin_url($this->pagedir);
     // 이벤트가 존재하면 실행합니다
     $view['view']['event']['before_layout'] = Events::trigger('before_layout', $eventname);
     /**
      * 어드민 레이아웃을 정의합니다
      */
     $layoutconfig = array('layout' => 'layout', 'skin' => 'index');
     $view['layout'] = $this->managelayout->admin($layoutconfig, $this->cbconfig->get_device_view_type());
     $this->data = $view;
     $this->layout = element('layout_skin_file', element('layout', $view));
     $this->view = element('view_skin_file', element('layout', $view));
 }
Example #4
0
 /**
  * 목록을 가져오는 메소드입니다
  */
 public function index()
 {
     // 이벤트 라이브러리를 로딩합니다
     $eventname = 'event_admin_page_faq_index';
     $this->load->event($eventname);
     $view = array();
     $view['view'] = array();
     // 이벤트가 존재하면 실행합니다
     $view['view']['event']['before'] = Events::trigger('before', $eventname);
     /**
      * 페이지에 숫자가 아닌 문자가 입력되거나 1보다 작은 숫자가 입력되면 에러 페이지를 보여줍니다.
      */
     $param =& $this->querystring;
     $page = (int) $this->input->get('page') > 0 ? (int) $this->input->get('page') : 1;
     $view['view']['sort'] = array('faq_id' => $param->sort('faq_id', 'asc'), 'faq_title' => $param->sort('faq_title', 'asc'), 'faq_order' => $param->sort('faq_order', 'asc'), 'faq_datetime' => $param->sort('faq_datetime', 'asc'));
     $findex = $this->input->get('findex', null, 'faq_order');
     $forder = $this->input->get('forder', null, 'asc');
     $sfield = $this->input->get('sfield', null, '');
     $skeyword = $this->input->get('skeyword', null, '');
     $fgr_id = $this->input->get('fgr_id', null, '');
     $per_page = admin_listnum();
     $offset = ($page - 1) * $per_page;
     $where = array();
     if ($fgr_id) {
         $where = array('fgr_id' => $fgr_id);
     }
     /**
      * 게시판 목록에 필요한 정보를 가져옵니다.
      */
     $this->{$this->modelname}->allow_search_field = array('faq_id', 'fgr_id', 'faq_title', 'faq_content', 'faq_mobile_content', 'faq_datetime', 'faq.mem_id');
     // 검색이 가능한 필드
     $this->{$this->modelname}->search_field_equal = array('faq_id', 'fgr_id', 'faq.mem_id');
     // 검색중 like 가 아닌 = 검색을 하는 필드
     $this->{$this->modelname}->allow_order_field = array('faq_id', 'faq_title', 'faq_order', 'faq_datetime');
     // 정렬이 가능한 필드
     $result = $this->{$this->modelname}->get_admin_list($per_page, $offset, $where, '', $findex, $forder, $sfield, $skeyword);
     if (element('list', $result)) {
         foreach (element('list', $result) as $key => $val) {
             $result['list'][$key]['display_name'] = display_username(element('mem_userid', $val), element('mem_nickname', $val), element('mem_icon', $val));
             $result['list'][$key]['faqgroup'] = $this->Faq_group_model->get_one(element('fgr_id', $val));
         }
     }
     $view['view']['data'] = $result;
     /**
      * primary key 정보를 저장합니다
      */
     $view['view']['primary_key'] = $this->{$this->modelname}->primary_key;
     /**
      * 페이지네이션을 생성합니다
      */
     $config['base_url'] = admin_url($this->pagedir) . '?' . $param->replace('page');
     $config['total_rows'] = $result['total_rows'];
     $config['per_page'] = $per_page;
     $this->pagination->initialize($config);
     $view['view']['paging'] = $this->pagination->create_links();
     $view['view']['page'] = $page;
     /**
      * 쓰기 주소, 삭제 주소등 필요한 주소를 구합니다
      */
     $search_option = array('faq_title' => '제목', 'faq_content' => '내용', 'faq_mobile_content' => '모바일내용', 'faq_datetime' => '날짜');
     $view['view']['skeyword'] = $sfield && array_key_exists($sfield, $search_option) ? $skeyword : '';
     $view['view']['search_option'] = search_option($search_option, $sfield);
     $view['view']['listall_url'] = admin_url('page/faqgroup');
     $view['view']['write_url'] = admin_url($this->pagedir . '/write?fgr_id=' . $fgr_id);
     $view['view']['list_delete_url'] = admin_url($this->pagedir . '/listdelete/?' . $param->output());
     // 이벤트가 존재하면 실행합니다
     $view['view']['event']['before_layout'] = Events::trigger('before_layout', $eventname);
     /**
      * 어드민 레이아웃을 정의합니다
      */
     $layoutconfig = array('layout' => 'layout', 'skin' => 'index');
     $view['layout'] = $this->managelayout->admin($layoutconfig, $this->cbconfig->get_device_view_type());
     $this->data = $view;
     $this->layout = element('layout_skin_file', element('layout', $view));
     $this->view = element('view_skin_file', element('layout', $view));
 }
Example #5
0
 /**
  * 목록을 가져오는 메소드입니다
  */
 public function index()
 {
     // 이벤트 라이브러리를 로딩합니다
     $eventname = 'event_admin_board_like_index';
     $this->load->event($eventname);
     $view = array();
     $view['view'] = array();
     // 이벤트가 존재하면 실행합니다
     $view['view']['event']['before'] = Events::trigger('before', $eventname);
     /**
      * 페이지에 숫자가 아닌 문자가 입력되거나 1보다 작은 숫자가 입력되면 에러 페이지를 보여줍니다.
      */
     $param =& $this->querystring;
     $page = (int) $this->input->get('page') > 0 ? (int) $this->input->get('page') : 1;
     $findex = $this->input->get('findex') ? $this->input->get('findex') : $this->{$this->modelname}->primary_key;
     $forder = $this->input->get('forder', null, 'desc');
     $sfield = $this->input->get('sfield', null, '');
     $skeyword = $this->input->get('skeyword', null, '');
     $per_page = admin_listnum();
     $offset = ($page - 1) * $per_page;
     /**
      * 게시판 목록에 필요한 정보를 가져옵니다.
      */
     $this->{$this->modelname}->allow_search_field = array('lik_id', 'target_id', 'target_type', 'post_id', 'like.mem_id', 'target_mem_id', 'lik_type', 'lik_datetime', 'lik_ip');
     // 검색이 가능한 필드
     $this->{$this->modelname}->search_field_equal = array('lik_id', 'target_id', 'target_type', 'post_id', 'like.mem_id', 'target_mem_id', 'lik_type');
     // 검색중 like 가 아닌 = 검색을 하는 필드
     $this->{$this->modelname}->allow_order_field = array('lik_id');
     // 정렬이 가능한 필드
     $where = array();
     if ($brdid = (int) $this->input->get('brd_id')) {
         $where['like.brd_id'] = $brdid;
     }
     if ($this->input->get('target_type')) {
         $where['like.target_type'] = $this->input->get('target_type');
     }
     $result = $this->{$this->modelname}->get_admin_list($per_page, $offset, $where, '', $findex, $forder, $sfield, $skeyword);
     $list_num = $result['total_rows'] - ($page - 1) * $per_page;
     if (element('list', $result)) {
         foreach (element('list', $result) as $key => $val) {
             $result['list'][$key]['display_name'] = display_username(element('mem_userid', $val), element('mem_nickname', $val), element('mem_icon', $val));
             $result['list'][$key]['target_member'] = $target_member = $this->Member_model->get_by_memid(element('target_mem_id', $val), 'mem_id, mem_userid, mem_nickname, mem_icon');
             $result['list'][$key]['target_display_name'] = display_username(element('mem_userid', $target_member), element('mem_nickname', $target_member), element('mem_icon', $target_member));
             $result['list'][$key]['num'] = $list_num--;
             if (element('target_type', $val) === '1') {
                 $result['list'][$key]['target_name'] = '원글';
                 $result['list'][$key]['post'] = $post = $this->Post_model->get_one(element('target_id', $val), 'post_id, brd_id, post_title');
                 if ($post) {
                     $result['list'][$key]['board'] = $board = $this->board->item_all(element('brd_id', $post));
                     $result['list'][$key]['origin_content'] = element('post_title', $post);
                     $result['list'][$key]['posturl'] = post_url(element('brd_key', $board), element('post_id', $post));
                 }
             } elseif (element('target_type', $val) === '2') {
                 $result['list'][$key]['target_name'] = '댓글';
                 $result['list'][$key]['comment'] = $comment = $this->Comment_model->get_one(element('target_id', $val), 'cmt_id, post_id, cmt_content');
                 if ($comment) {
                     $result['list'][$key]['post'] = $post = $this->Post_model->get_one(element('post_id', $comment));
                     $result['list'][$key]['origin_content'] = cut_str(element('cmt_content', $comment), 40);
                     if ($post) {
                         $result['list'][$key]['board'] = $board = $this->board->item_all(element('brd_id', $post));
                         $result['list'][$key]['posturl'] = post_url(element('brd_key', $board), element('post_id', $post)) . '#comment_id=' . element('cmt_id', $comment);
                     }
                 }
             }
             if (element('lik_type', $val) === '1') {
                 $result['list'][$key]['like_or_dislike'] = '<span class="label label-success">추천</span>';
             } elseif (element('lik_type', $val) === '2') {
                 $result['list'][$key]['like_or_dislike'] = '<span class="label label-warning">비추</span>';
             }
         }
     }
     $view['view']['data'] = $result;
     $view['view']['boardlist'] = $this->Board_model->get_board_list();
     /**
      * primary key 정보를 저장합니다
      */
     $view['view']['primary_key'] = $this->{$this->modelname}->primary_key;
     /**
      * 페이지네이션을 생성합니다
      */
     $config['base_url'] = admin_url($this->pagedir) . '?' . $param->replace('page');
     $config['total_rows'] = $result['total_rows'];
     $config['per_page'] = $per_page;
     $this->pagination->initialize($config);
     $view['view']['paging'] = $this->pagination->create_links();
     $view['view']['page'] = $page;
     /**
      * 쓰기 주소, 삭제 주소등 필요한 주소를 구합니다
      */
     $search_option = array('lik_datetime' => '날짜', 'lik_ip' => 'IP');
     $view['view']['skeyword'] = $sfield && array_key_exists($sfield, $search_option) ? $skeyword : '';
     $view['view']['search_option'] = search_option($search_option, $sfield);
     $view['view']['listall_url'] = admin_url($this->pagedir);
     $view['view']['list_delete_url'] = admin_url($this->pagedir . '/listdelete/?' . $param->output());
     // 이벤트가 존재하면 실행합니다
     $view['view']['event']['before_layout'] = Events::trigger('before_layout', $eventname);
     /**
      * 어드민 레이아웃을 정의합니다
      */
     $layoutconfig = array('layout' => 'layout', 'skin' => 'index');
     $view['layout'] = $this->managelayout->admin($layoutconfig, $this->cbconfig->get_device_view_type());
     $this->data = $view;
     $this->layout = element('layout_skin_file', element('layout', $view));
     $this->view = element('view_skin_file', element('layout', $view));
 }
Example #6
0
 /**
  * 목록을 가져오는 메소드입니다
  */
 public function index()
 {
     // 이벤트 라이브러리를 로딩합니다
     $eventname = 'event_admin_board_trash_comment_index';
     $this->load->event($eventname);
     $view = array();
     $view['view'] = array();
     // 이벤트가 존재하면 실행합니다
     $view['view']['event']['before'] = Events::trigger('before', $eventname);
     /**
      * 페이지에 숫자가 아닌 문자가 입력되거나 1보다 작은 숫자가 입력되면 에러 페이지를 보여줍니다.
      */
     $param =& $this->querystring;
     $page = (int) $this->input->get('page') > 0 ? (int) $this->input->get('page') : 1;
     $findex = 'cmt_id';
     $forder = 'desc';
     $sfield = $this->input->get('sfield', null, '');
     $skeyword = $this->input->get('skeyword', null, '');
     $per_page = admin_listnum();
     $offset = ($page - 1) * $per_page;
     /**
      * 게시판 목록에 필요한 정보를 가져옵니다.
      */
     $this->{$this->modelname}->allow_search_field = array('cmt_id', 'cmt_content', 'mem_id', 'cmt_username', 'cmt_nickname', 'cmt_email', 'cmt_datetime', 'cmt_ip', 'cmt_device');
     // 검색이 가능한 필드
     $this->{$this->modelname}->search_field_equal = array('cmt_id', 'mem_id');
     // 검색중 like 가 아닌 = 검색을 하는 필드
     $this->{$this->modelname}->allow_order_field = array('cmt_id desc');
     // 정렬이 가능한 필드
     $where = array('cmt_del' => 2);
     if ($brdid = (int) $this->input->get('brd_id')) {
         $where['post.brd_id'] = $brdid;
     }
     $result = $this->{$this->modelname}->get_admin_list($per_page, $offset, $where, '', $findex, $forder, $sfield, $skeyword);
     $list_num = $result['total_rows'] - ($page - 1) * $per_page;
     if (element('list', $result)) {
         foreach (element('list', $result) as $key => $val) {
             $result['list'][$key]['meta'] = $meta = $this->Comment_meta_model->get_all_meta(element('cmt_id', $val));
             $result['list'][$key]['member'] = $dbmember = $this->Member_model->get_by_memid($meta['trash_mem_id'], 'mem_id, mem_userid, mem_nickname, mem_icon');
             $result['list'][$key]['display_name'] = display_username(element('mem_userid', $dbmember), element('mem_nickname', $dbmember));
             $result['list'][$key]['post'] = $post = $this->Post_model->get_one(element('post_id', $val));
             $result['list'][$key]['board'] = $board = $this->board->item_all(element('brd_id', $post));
             $result['list'][$key]['content'] = display_html_content($val['cmt_content'], $val['cmt_html'], element('post_image_width', $board));
             $result['list'][$key]['num'] = $list_num--;
             if ($board) {
                 $result['list'][$key]['baordurl'] = board_url(element('brd_key', $board));
                 $result['list'][$key]['posturl'] = post_url(element('brd_key', $board), element('post_id', $val) . '#comment_id=' . element('cmt_id', $val));
             }
         }
     }
     $view['view']['data'] = $result;
     $view['view']['boardlist'] = $this->Board_model->get_board_list();
     /**
      * primary key 정보를 저장합니다
      */
     $view['view']['primary_key'] = $this->{$this->modelname}->primary_key;
     /**
      * 페이지네이션을 생성합니다
      */
     $config['base_url'] = admin_url($this->pagedir) . '?' . $param->replace('page');
     $config['total_rows'] = $result['total_rows'];
     $config['per_page'] = $per_page;
     $this->pagination->initialize($config);
     $view['view']['paging'] = $this->pagination->create_links();
     $view['view']['page'] = $page;
     /**
      * 쓰기 주소, 삭제 주소등 필요한 주소를 구합니다
      */
     $search_option = array('cmt_content' => '내용', 'cmt_nickname' => '닉네임', 'cmt_email' => '이메일', 'cmt_datetime' => '작성일', 'cmt_ip' => 'IP');
     $view['view']['skeyword'] = $sfield && array_key_exists($sfield, $search_option) ? $skeyword : '';
     $view['view']['search_option'] = search_option($search_option, $sfield);
     $view['view']['listall_url'] = admin_url($this->pagedir);
     $view['view']['list_delete_url'] = admin_url($this->pagedir . '/listdelete/?' . $param->output());
     $view['view']['list_truncate_url'] = admin_url($this->pagedir . '/truncate/?' . $param->output());
     $view['view']['list_recover_url'] = admin_url($this->pagedir . '/listrecover/?' . $param->output());
     // 이벤트가 존재하면 실행합니다
     $view['view']['event']['before_layout'] = Events::trigger('before_layout', $eventname);
     /**
      * 어드민 레이아웃을 정의합니다
      */
     $layoutconfig = array('layout' => 'layout', 'skin' => 'index');
     $view['layout'] = $this->managelayout->admin($layoutconfig, $this->cbconfig->get_device_view_type());
     $this->data = $view;
     $this->layout = element('layout_skin_file', element('layout', $view));
     $this->view = element('view_skin_file', element('layout', $view));
 }
Example #7
0
 /**
  * 목록을 가져오는 메소드입니다
  */
 public function index()
 {
     // 이벤트 라이브러리를 로딩합니다
     $eventname = 'event_admin_page_popup_index';
     $this->load->event($eventname);
     $view = array();
     $view['view'] = array();
     // 이벤트가 존재하면 실행합니다
     $view['view']['event']['before'] = Events::trigger('before', $eventname);
     /**
      * 페이지에 숫자가 아닌 문자가 입력되거나 1보다 작은 숫자가 입력되면 에러 페이지를 보여줍니다.
      */
     $param =& $this->querystring;
     $page = (int) $this->input->get('page') > 0 ? (int) $this->input->get('page') : 1;
     $view['view']['sort'] = array('pop_title' => $param->sort('pop_title', 'asc'), 'pop_device' => $param->sort('pop_device', 'asc'), 'pop_start_date' => $param->sort('pop_start_date', 'asc'), 'pop_end_date' => $param->sort('pop_end_date', 'asc'), 'pop_activated' => $param->sort('pop_activated', 'asc'));
     $findex = $this->input->get('findex') ? $this->input->get('findex') : $this->{$this->modelname}->primary_key;
     $forder = $this->input->get('forder', null, 'desc');
     $sfield = $this->input->get('sfield', null, '');
     $skeyword = $this->input->get('skeyword', null, '');
     $per_page = admin_listnum();
     $offset = ($page - 1) * $per_page;
     /**
      * 게시판 목록에 필요한 정보를 가져옵니다.
      */
     $this->{$this->modelname}->allow_search_field = array('pop_id', 'pop_title', 'pop_content');
     // 검색이 가능한 필드
     $this->{$this->modelname}->search_field_equal = array('pop_id');
     // 검색중 like 가 아닌 = 검색을 하는 필드
     $this->{$this->modelname}->allow_order_field = array('pop_title', 'pop_device', 'pop_start_date', 'pop_end_date', 'pop_activated');
     // 정렬이 가능한 필드
     $result = $this->{$this->modelname}->get_admin_list($per_page, $offset, '', '', $findex, $forder, $sfield, $skeyword);
     $list_num = $result['total_rows'] - ($page - 1) * $per_page;
     if (element('list', $result)) {
         foreach (element('list', $result) as $key => $val) {
             if (empty($val['pop_start_date']) or $val['pop_start_date'] === '0000-00-00') {
                 $result['list'][$key]['pop_start_date'] = '미지정';
             }
             if (empty($val['pop_end_date']) or $val['pop_end_date'] === '0000-00-00') {
                 $result['list'][$key]['pop_end_date'] = '미지정';
             }
             $result['list'][$key]['num'] = $list_num--;
         }
     }
     $view['view']['data'] = $result;
     /**
      * primary key 정보를 저장합니다
      */
     $view['view']['primary_key'] = $this->{$this->modelname}->primary_key;
     /**
      * 페이지네이션을 생성합니다
      */
     $config['base_url'] = admin_url($this->pagedir) . '?' . $param->replace('page');
     $config['total_rows'] = $result['total_rows'];
     $config['per_page'] = $per_page;
     $this->pagination->initialize($config);
     $view['view']['paging'] = $this->pagination->create_links();
     $view['view']['page'] = $page;
     /**
      * 쓰기 주소, 삭제 주소등 필요한 주소를 구합니다
      */
     $search_option = array('pop_title' => '제목', 'pop_content' => '내용');
     $view['view']['skeyword'] = $sfield && array_key_exists($sfield, $search_option) ? $skeyword : '';
     $view['view']['search_option'] = search_option($search_option, $sfield);
     $view['view']['listall_url'] = admin_url($this->pagedir);
     $view['view']['write_url'] = admin_url($this->pagedir . '/write');
     $view['view']['list_delete_url'] = admin_url($this->pagedir . '/listdelete/?' . $param->output());
     // 이벤트가 존재하면 실행합니다
     $view['view']['event']['before_layout'] = Events::trigger('before_layout', $eventname);
     /**
      * 어드민 레이아웃을 정의합니다
      */
     $layoutconfig = array('layout' => 'layout', 'skin' => 'index');
     $view['layout'] = $this->managelayout->admin($layoutconfig, $this->cbconfig->get_device_view_type());
     $this->data = $view;
     $this->layout = element('layout_skin_file', element('layout', $view));
     $this->view = element('view_skin_file', element('layout', $view));
 }
Example #8
0
 /**
  * 목록을 가져오는 메소드입니다
  */
 public function index()
 {
     // 이벤트 라이브러리를 로딩합니다
     $eventname = 'event_admin_member_members_index';
     $this->load->event($eventname);
     $view = array();
     $view['view'] = array();
     // 이벤트가 존재하면 실행합니다
     $view['view']['event']['before'] = Events::trigger('before', $eventname);
     /**
      * 페이지에 숫자가 아닌 문자가 입력되거나 1보다 작은 숫자가 입력되면 에러 페이지를 보여줍니다.
      */
     $param =& $this->querystring;
     $page = (int) $this->input->get('page') > 0 ? (int) $this->input->get('page') : 1;
     $view['view']['sort'] = array('mem_id' => $param->sort('mem_id', 'asc'), 'mem_userid' => $param->sort('mem_userid', 'asc'), 'mem_username' => $param->sort('mem_username', 'asc'), 'mem_nickname' => $param->sort('mem_nickname', 'asc'), 'mem_email' => $param->sort('mem_email', 'asc'), 'mem_point' => $param->sort('mem_point', 'asc'), 'mem_register_datetime' => $param->sort('mem_register_datetime', 'asc'), 'mem_lastlogin_datetime' => $param->sort('mem_lastlogin_datetime', 'asc'), 'mem_level' => $param->sort('mem_level', 'asc'));
     $findex = $this->input->get('findex', null, 'member.mem_id');
     $forder = $this->input->get('forder', null, 'desc');
     $sfield = $this->input->get('sfield', null, '');
     $skeyword = $this->input->get('skeyword', null, '');
     $per_page = admin_listnum();
     $offset = ($page - 1) * $per_page;
     /**
      * 게시판 목록에 필요한 정보를 가져옵니다.
      */
     $this->{$this->modelname}->allow_search_field = array('mem_id', 'mem_userid', 'mem_email', 'mem_username', 'mem_nickname', 'mem_level', 'mem_homepage', 'mem_register_datetime', 'mem_register_ip', 'mem_lastlogin_datetime', 'mem_lastlogin_ip', 'mem_is_admin');
     // 검색이 가능한 필드
     $this->{$this->modelname}->search_field_equal = array('mem_id', 'mem_level', 'mem_is_admin');
     // 검색중 like 가 아닌 = 검색을 하는 필드
     $this->{$this->modelname}->allow_order_field = array('member.mem_id', 'mem_userid', 'mem_username', 'mem_nickname', 'mem_email', 'mem_point', 'mem_register_datetime', 'mem_lastlogin_datetime', 'mem_level');
     // 정렬이 가능한 필드
     $where = array();
     if ($this->input->get('mem_is_admin')) {
         $where['mem_is_admin'] = 1;
     }
     if ($this->input->get('mem_denied')) {
         $where['mem_denied'] = 1;
     }
     if ($mgr_id = (int) $this->input->get('mgr_id')) {
         if ($mgr_id > 0) {
             $where['mgr_id'] = $mgr_id;
         }
     }
     $result = $this->{$this->modelname}->get_admin_list($per_page, $offset, $where, '', $findex, $forder, $sfield, $skeyword);
     $list_num = $result['total_rows'] - ($page - 1) * $per_page;
     if (element('list', $result)) {
         foreach (element('list', $result) as $key => $val) {
             $result['list'][$key]['mem_denied_text'] = $this->member_denied[$result['list'][$key]['mem_denied']];
             $result['list'][$key]['display_name'] = display_username(element('mem_userid', $val), element('mem_nickname', $val), element('mem_icon', $val));
             $result['list'][$key]['meta'] = $this->Member_meta_model->get_all_meta(element('mem_id', $val));
             $result['list'][$key]['num'] = $list_num--;
         }
     }
     $view['view']['data'] = $result;
     /**
      * primary key 정보를 저장합니다
      */
     $view['view']['primary_key'] = $this->{$this->modelname}->primary_key;
     /**
      * 페이지네이션을 생성합니다
      */
     $config['base_url'] = admin_url($this->pagedir) . '?' . $param->replace('page');
     $config['total_rows'] = $result['total_rows'];
     $config['per_page'] = $per_page;
     $this->pagination->initialize($config);
     $view['view']['paging'] = $this->pagination->create_links();
     $view['view']['page'] = $page;
     /**
      * 쓰기 주소, 삭제 주소등 필요한 주소를 구합니다
      */
     $search_option = array('mem_userid' => '회원아이디', 'mem_email' => '이메일', 'mem_username' => '회원명', 'mem_nickname' => '닉네임', 'mem_level' => '회원레벨', 'mem_homepage' => '홈페이지', 'mem_register_datetime' => '회원가입날짜', 'mem_register_ip' => '회원가입IP', 'mem_lastlogin_datetime' => '최종로그인날짜', 'mem_lastlogin_ip' => '최종로그인IP', 'mem_adminmemo' => '관리자메모');
     $view['view']['skeyword'] = $sfield && array_key_exists($sfield, $search_option) ? $skeyword : '';
     $view['view']['search_option'] = search_option($search_option, $sfield);
     $view['view']['listall_url'] = admin_url($this->pagedir);
     $view['view']['write_url'] = admin_url($this->pagedir . '/write');
     $view['view']['list_delete_url'] = admin_url($this->pagedir . '/listdelete/?' . $param->output());
     // 이벤트가 존재하면 실행합니다
     $view['view']['event']['before_layout'] = Events::trigger('before_layout', $eventname);
     /**
      * 어드민 레이아웃을 정의합니다
      */
     $layoutconfig = array('layout' => 'layout', 'skin' => 'index');
     $view['layout'] = $this->managelayout->admin($layoutconfig, $this->cbconfig->get_device_view_type());
     $this->data = $view;
     $this->layout = element('layout_skin_file', element('layout', $view));
     $this->view = element('view_skin_file', element('layout', $view));
 }
Example #9
0
 /**
  * 목록을 가져오는 메소드입니다
  */
 public function index()
 {
     // 이벤트 라이브러리를 로딩합니다
     $eventname = 'event_admin_stat_currentvisitor_index';
     $this->load->event($eventname);
     $view = array();
     $view['view'] = array();
     // 이벤트가 존재하면 실행합니다
     $view['view']['event']['before'] = Events::trigger('before', $eventname);
     /**
      * 페이지에 숫자가 아닌 문자가 입력되거나 1보다 작은 숫자가 입력되면 에러 페이지를 보여줍니다.
      */
     $param =& $this->querystring;
     $page = (int) $this->input->get('page') > 0 ? (int) $this->input->get('page') : 1;
     $view['view']['sort'] = array('cur_ip' => $param->sort('cur_ip', 'asc'), 'cur_datetime' => $param->sort('cur_datetime', 'asc'), 'cur_page' => $param->sort('cur_page', 'asc'), 'cur_url' => $param->sort('cur_url', 'asc'), 'cur_referer' => $param->sort('cur_referer', 'asc'));
     $findex = $this->input->get('findex', null, 'cur_datetime');
     $forder = $this->input->get('forder', null, 'desc');
     $sfield = $this->input->get('sfield', null, '');
     $skeyword = $this->input->get('skeyword', null, '');
     $per_page = 100;
     $offset = ($page - 1) * $per_page;
     $minute = (int) $this->cbconfig->item('currentvisitor_minute');
     if ($minute < 1) {
         $minute = 10;
     }
     $curdatetime = cdate('Y-m-d H:i:s', ctimestamp() - $minute * 60);
     $cachename = 'delete_old_currentvisitor_cache';
     $cachetime = 60;
     if (!($result = $this->cache->get($cachename))) {
         $deletewhere = array('cur_datetime < ' => $curdatetime);
         $this->Currentvisitor_model->delete_where($deletewhere);
         $this->cache->save($cachename, cdate('Y-m-d H:i:s'), $cachetime);
     }
     /**
      * 게시판 목록에 필요한 정보를 가져옵니다.
      */
     $this->{$this->modelname}->allow_search_field = array('cur_ip', 'cur_mem_name', 'cur_datetime', 'cur_page', 'cur_url', 'cur_referer', 'cur_useragent', 'currentvisitor.mem_id');
     // 검색이 가능한 필드
     $this->{$this->modelname}->search_field_equal = array('currentvisitor.mem_id');
     // 검색중 like 가 아닌 = 검색을 하는 필드
     $this->{$this->modelname}->allow_order_field = array('cur_ip', 'cur_datetime', 'cur_page', 'cur_url', 'cur_referer');
     // 정렬이 가능한 필드
     $where = array('cur_datetime >' => $curdatetime);
     $result = $this->{$this->modelname}->get_admin_list($per_page, $offset, $where, '', $findex, $forder, $sfield, $skeyword);
     $list_num = $result['total_rows'] - ($page - 1) * $per_page;
     if (element('list', $result)) {
         foreach (element('list', $result) as $key => $val) {
             $result['list'][$key]['display_name'] = display_username(element('mem_userid', $val), element('mem_nickname', $val), element('mem_icon', $val));
             if (element('cur_useragent', $val)) {
                 $userAgent = get_useragent_info(element('cur_useragent', $val));
                 $result['list'][$key]['browsername'] = $userAgent['browsername'];
                 $result['list'][$key]['browserversion'] = $userAgent['browserversion'];
                 $result['list'][$key]['os'] = $userAgent['os'];
                 $result['list'][$key]['engine'] = $userAgent['engine'];
             }
             $result['list'][$key]['num'] = $list_num--;
         }
     }
     $view['view']['data'] = $result;
     /**
      * primary key 정보를 저장합니다
      */
     $view['view']['primary_key'] = $this->{$this->modelname}->primary_key;
     /**
      * 페이지네이션을 생성합니다
      */
     $config['base_url'] = admin_url($this->pagedir) . '?' . $param->replace('page');
     $config['total_rows'] = $result['total_rows'];
     $config['per_page'] = $per_page;
     $this->pagination->initialize($config);
     $view['view']['paging'] = $this->pagination->create_links();
     $view['view']['page'] = $page;
     /**
      * 쓰기 주소, 삭제 주소등 필요한 주소를 구합니다
      */
     $search_option = array('cur_ip' => '아이피', 'cur_datetime' => '날짜', 'cur_page' => '페이지이름', 'cur_url' => '현재주소', 'cur_referer' => '이전주소', 'cur_useragent' => '운영체제/브라우저');
     $view['view']['skeyword'] = $sfield && array_key_exists($sfield, $search_option) ? $skeyword : '';
     $view['view']['search_option'] = search_option($search_option, $sfield);
     $view['view']['listall_url'] = admin_url($this->pagedir);
     // 이벤트가 존재하면 실행합니다
     $view['view']['event']['before_layout'] = Events::trigger('before_layout', $eventname);
     /**
      * 어드민 레이아웃을 정의합니다
      */
     $layoutconfig = array('layout' => 'layout', 'skin' => 'index');
     $view['layout'] = $this->managelayout->admin($layoutconfig, $this->cbconfig->get_device_view_type());
     $this->data = $view;
     $this->layout = element('layout_skin_file', element('layout', $view));
     $this->view = element('view_skin_file', element('layout', $view));
 }