diff --git a/wheeparam/application/controllers/admin/Board.php b/wheeparam/application/controllers/admin/Board.php index 72e1f16..69f1b0a 100644 --- a/wheeparam/application/controllers/admin/Board.php +++ b/wheeparam/application/controllers/admin/Board.php @@ -37,6 +37,7 @@ class Board extends WB_Controller if( $this->form_validation->run() != FALSE ) { $data['brd_key'] = $this->input->post('brd_key', TRUE); + $data['brd_type'] = $this->input->post('brd_type',TRUE,'list'); $data['brd_title'] = $this->input->post('brd_title', TRUE,''); $data['brd_keywords'] = $this->input->post('brd_keywords', TRUE); $data['brd_description'] = $this->input->post('brd_description', TRUE); diff --git a/wheeparam/application/libraries/Boardlib.php b/wheeparam/application/libraries/Boardlib.php index 2416de1..9aa697c 100644 --- a/wheeparam/application/libraries/Boardlib.php +++ b/wheeparam/application/libraries/Boardlib.php @@ -479,8 +479,14 @@ class Boardlib { if( $this->CI->form_validation->run() != FALSE ) { - // 비회원이로 리캡쳐 설정이 되있을 경우 구글 리캡챠 확인 + // 수정글이면 기존 글의 정보를 가져온다. + $post = array(); + + if( $post_idx ) { + $post = $this->get_post($brd_key, $post_idx, FALSE); + } + // 비회원이로 리캡쳐 설정이 되있을 경우 구글 리캡챠 확인 if( ! $this->CI->member->is_login() ) { // 비회원이고 리캡쳐 설정이 되있을 경우 경우 구글 리캡챠확인 @@ -498,8 +504,6 @@ class Boardlib { // 비회원일이고 수정일 경우 입력한 패스워드와 기존 패스워드 확인 if( $post_idx ) { - $post = $this->get_post($brd_key, $post_idx, FALSE); - if( get_password_hash( $this->CI->input->post('post_password', TRUE) ) != $post['post_password'] ) { alert('잘못된 비밀번호 입니다.'); @@ -596,7 +600,7 @@ class Boardlib { } else { - $filedata = $this->upload->data(); + $filedata = $this->CI->upload->data(); $upload_array[] = array( "att_target_type" => 'BOARD', "att_origin" => $filedata['orig_name'], @@ -622,70 +626,6 @@ class Boardlib { } } - // 게시글의 대표 이미지를 가져온다. - if ( count($upload_array) > 0 ) { - // 첨부파일중에 이미지가 있으면 그중에 가장 먼저나오는걸 설정 - foreach($upload_array as $row) { - if($row['att_is_image'] == 'Y') { - $data['post_thumbnail'] = $row['att_filepath']; - break; - } - } - - // 첨부파일중에 없다면 HTML 코드에서 이미지를 찾아낸다. - if( empty($data['post_thumbnail']) ) { - $matches = get_editor_image($data['post_content']); - if(! empty($matches)) { - $img = element(0, element(1, $matches)); - - if(! empty($img)) { - preg_match("/src=[\'\"]?([^>\'\"]+[^>\'\"]+)/i", $img, $m); - $src = isset($m[1]) ? $m[1] : ''; - - if(! empty($src)) { - $data['post_thumbnail'] = $src; - } - } - } - } - $matches = null; - - // 거기서도 없으면 본문내용에 포함된 iframe 동영상에서.. - if( empty($data['post_thumbnail']) ) { - preg_match_all("/]*src=[\'\"]?([^>\'\"]+[^>\'\"]+)[\'\"]?[^>]*>/i", $data['post_content'], $matches); - for ($i = 0; $i < count($matches[1]); $i++) { - if (!isset($matches[1][$i])) continue; - - $video = get_video_info($matches[1][$i]); - - // 비디오 타입이 아니거나, 알려지지 않은 비디오 일경우 건너뛴다. - if (!$video['type'] OR !$video['thumb']) continue; - - if ($video['thumb']) { - $data['post_thumbnail'] = $video['thumb']; - } - } - } - - // 그래도 없으면 embed 태그 포함여부 확인해서.. - $matches = null; - if( empty($data['post_thumbnail']) ) { - preg_match_all("/]*src=[\'\"]?([^>\'\"]+[^>\'\"]+)[\'\"]?[^>]*>/i", $data['post_content'], $matches); - for($i=0; $iCI->db->insert_batch("attach", $upload_array); } + // 게시글의 대표 이미지를 가져온다. + $attach_list = $this->get_attach_list($data['brd_key'], $post_idx); + if ( count($attach_list) > 0 ) { + foreach($attach_list as $row) { + if($row['att_is_image'] == 'Y') { + $data['post_thumbnail'] = base_url($row['att_filepath']); + break; + } + } + } + + // 첨부파일중에 없다면 HTML 코드에서 이미지를 찾아낸다. + if( empty($data['post_thumbnail']) ) { + $matches = get_editor_image($data['post_content']); + + if(! empty($matches)) { + $img = element(0, element(1, $matches)); + + if(! empty($img)) { + preg_match("/src=[\'\"]?([^>\'\"]+[^>\'\"]+)/i", $img, $m); + $src = isset($m[1]) ? $m[1] : ''; + + if(! empty($src)) { + $data['post_thumbnail'] = str_replace(base_url()."/", "", $src); + } + } + } + } + $matches = null; + + // 거기서도 없으면 본문내용에 포함된 iframe 동영상에서.. + if( empty($data['post_thumbnail']) ) { + preg_match_all("/]*src=[\'\"]?([^>\'\"]+[^>\'\"]+)[\'\"]?[^>]*>/i", $data['post_content'], $matches); + for ($i = 0; $i < count($matches[1]); $i++) { + if (!isset($matches[1][$i])) continue; + + $video = get_video_info($matches[1][$i]); + + // 비디오 타입이 아니거나, 알려지지 않은 비디오 일경우 건너뛴다. + if (!$video['type'] OR !$video['thumb']) continue; + + if ($video['thumb']) { + $data['post_thumbnail'] = $video['thumb']; + } + } + } + + // 그래도 없으면 embed 태그 포함여부 확인해서.. + $matches = null; + if( empty($data['post_thumbnail']) ) { + preg_match_all("/]*src=[\'\"]?([^>\'\"]+[^>\'\"]+)[\'\"]?[^>]*>/i", $data['post_content'], $matches); + for($i=0; $iCI->db->where('post_idx', $post_idx)->set('post_thumbnail', $data['post_thumbnail'])->update('board_post'); + + // 자신의 글은 비밀글이더라도 바로 보거나, 아니면 수정/삭제를 할수 있도록 세션처리 if($this->CI->member->is_login() ) { if( ! PAGE_ADMIN && ! $this->CI->member->is_super() ) @@ -1393,5 +1401,4 @@ class Boardlib { $this->CI->db->where('brd_key', $brd_key)->where('post_idx', $post_idx)->set('post_count_comment', (int)$count); return $this->CI->db->update('board_post'); } - } \ No newline at end of file diff --git a/wheeparam/config/wheeparam.sql b/wheeparam/config/wheeparam.sql index 17f92b3..c62aad1 100644 --- a/wheeparam/config/wheeparam.sql +++ b/wheeparam/config/wheeparam.sql @@ -74,6 +74,7 @@ CREATE TABLE `wb_banner_group` ( DROP TABLE IF EXISTS `wb_board`; CREATE TABLE `wb_board` ( `brd_key` varchar(20) NOT NULL DEFAULT '', + `brd_type` enum('list','gallery','webzine') NOT NULL DEFAULT 'list', `brd_title` varchar(30) NOT NULL DEFAULT '', `brd_skin_l` varchar(100) NOT NULL DEFAULT '', `brd_skin_l_m` varchar(100) NOT NULL DEFAULT '', diff --git a/wheeparam/views/themes/admin/board/form.php b/wheeparam/views/themes/admin/board/form.php index ae1e9bf..0ea9d27 100644 --- a/wheeparam/views/themes/admin/board/form.php +++ b/wheeparam/views/themes/admin/board/form.php @@ -28,6 +28,16 @@ +
+
게시판 형태
+
+ +
+
diff --git a/wheeparam/views/themes/admin/board/lists.php b/wheeparam/views/themes/admin/board/lists.php index 6b58945..d6e555f 100644 --- a/wheeparam/views/themes/admin/board/lists.php +++ b/wheeparam/views/themes/admin/board/lists.php @@ -15,6 +15,14 @@ columns: [ {caption:'고유KEY', dataField:'brd_key', width:80, alignment:'left'}, {caption:'게시판이름', dataField:'brd_title', minWidth:100, alignment:'left'}, + { + caption:'타입', dataField:'brd_type', width:60, alignment:'center', + customizeText:function(cell) { + if(cell.value == 'list') return '목록형'; + else if (cell.value == 'gallery') return '앨범형'; + else if (cell.value == 'webzine') return '웹진형'; + } + }, { caption:'스킨', columns: [