이 글은 그누보드를 처음깔고 관리자 화면에서 게시판 내용을 관리하기 위해서 몇시간의 삽질끝에 구성을 해봤습니다. 관리자 페이지에서 /adm/bbs/board.php?bo_table=notice 형태로 들어가면 게시판이 보였으면 좋겠다 싶어서 사용한 방법입니다. 아래 절차를 따로 오시면 어렵지 않게 하실 수 있으실 것 같아요. 자, 이렇게 되면 위와 같은 구조로 디렉토리가 남을 것입니다. 실제 common.php 파일 경로와 admin.lib.php 가 추가 되어야 합니다. 그누보드 상수 설정/adm/bbs/ 를 뛰워야 하기 때문에 기본 링크가 변경이 필요합니다. gnuboard/adm/admin.lib.php 파일 가서 먼저 상수를 추가 해줍니다. define('G5_ADMIN_BBS_DIR', 'adm/bbs'); define('G5_ADMIN_BBS_URL', G5_URL.'/'.G5_ADMIN_BBS_DIR); define('G5_ADMIN_HTTP_BBS_URL', https_url(G5_ADMIN_BBS_DIR, false)); define('G5_ADMIN_HTTPS_BBS_URL', https_url(G5_ADMIN_BBS_DIR, true)); 게시판 레이아웃 지우기관리자가 가지고 있는 기본적인 레이아웃을 맞추기 위해서는 게시판에 admin.head.php, admin.tail.php 를 연결해야합니다. 게시판은 기본적으로 3가지 화면을 가집니다.
list, view 는 board.php 에 통합되어 있고 write 는 write.php 에 있습니다. 즉 board.php 와 write.php 에서 레이아웃을 맞춰야합니다. 레이아웃 맞추기 전에 먼저 제거 해야할 게 있는데요.
2개의 파일이 게시판에서 사용되는 기본화면에 대한 레이아웃입니다. 이 부부은 admin 에서 필요 없기 때문에 과감히 수정해줍니다. gnuboard/adm/bbs/board_head.php
<div style='padding:10px;'>
<div >
gnuboard/adm/bbs/board_tail.php
</div>
</div> 자신만의 레이아웃을 구성하셔도 상관 없습니다. 관리자 레이아웃 맞추기게시판 레이아웃을 지웠으면 이제 board.php, write.php 에 관리자 레이아웃을 추가해야합니다. gnuboard/adm/bbs/board.php 이렇게 생긴 부분을 include_once('./_common.php'); 아래와 같이 바꿉니다. $sub_menu = "001000"; <- 게시판이 나타나야 하는 기본 메뉴 if ($_GET['bo_table'] == 'notice') { $sub_menu = "001500"; <- 게시판이 지정된 메뉴 번호 } include_once('./_common.php'); <- 기존과 동일 auth_check($auth[$sub_menu], 'r'); <- 이건 권한 체크인데. 어짜피 관리자로 들어온거라 필요는 없을 것 ㅏㅌ네요. $token = get_token(); if ($is_admin != 'super') alert('최고관리자만 접근 가능합니다.'); <- 관리자만 볼 수 있습니다. $g5['title'] = ''; <- bo_table 에 따라 다른 title 지정해주시면 될 것 같아요. include_once ('../admin.head.php'); <- admin 페이지 레이아웃 head 를 지정합니다. include_once(G5_PATH.'/head.sub.php'); <- 지워주세요. include_once(G5_PATH.'/tail.sub.php'); <- 지워주세요. include_once ('../admin.tail.php'); <- admin 페이지 레이아웃 tail을 지정합니다. write.php 도 같은 방법으로 작업 해주시면 됩니다. 리스트 확인하기위 설정이 다 되셨으면 게시판을 만들고 아래 링크로 들어가봅니다. gnuboard/adm/bbs/board.php?bo_table=notice 리스트가 나오면 정상이어요. 리스트 나올 때 링크를 클릭해보면 알겠지만 view 페이지 링크가 메인으로 가게 되어 있습니다 . 이걸 adm/bbs 로 돌려야 해요. list 링크 수정gnuboard/adm/bbs/list.php 를 보시면 실제 글을 get_list() 함수를 통해서 가지고 오는 것을 알 수 있습니다. 실제로 get_list() 함수에서 실제 가야될 경로를 설정해줍니다. get_list() 함수는 gnuboard/lib/common.lib.php 에 있습니다. 여기서 보시면 get_list() 안에 기본적으로 G5_BBS_URL 을 지정해주는것을 알 수 있습니다. 이것 때문에 adm/bbs 로 링크가 못오고 외부로 다시 가게 됩니다. 여기를 살짝 수정해보죠. 먼저파라미터 정의 부분에서 $BBS_PATH 라는 변수를 추가 합니다. 기본값은 G5_BBS_URL 로 두시구여. function get_list($write_row, $board, $skin_url, $subject_len=40, $BBS_PATH = G5_BBS_URL) 그런 다음 get_list 내부에 사용되는 G5_BBS_URL 을 모두 $BBS_PATH 로 바꿉니다. $list['ca_name_href'] = $BBS_PATH.'/board.php?bo_table='.$board['bo_table'].'&sca='.urlencode($list['ca_name']); $list['href'] = $BBS_PATH.'/board.php?bo_table='.$board['bo_table'].'&wr_id='.$list['wr_id'].$qstr; $list['link_href'][$i] = $BBS_PATH.'/link.php?bo_table='.$board['bo_table'].'&wr_id='.$list['wr_id'].'&no='.$i.$qstr; 이 부분이 수정되었으면 gnuboard/adm/bbs/list.php 에서 get_list 를 사용할 때 G5_ADMIN_BBS_URL 을 넘겨줍니다. // 공지 처리 $list[$i] = get_list($row, $board, $board_skin_url, G5_IS_MOBILE ? $board['bo_mobile_subject_len'] : $board['bo_subject_len'], G5_ADMIN_BBS_URL); ... // 페이지의 공지개수가 목록수 보다 작을 때만 실행 $list[$i] = get_list($row, $board, $board_skin_url, G5_IS_MOBILE ? $board['bo_mobile_subject_len'] : $board['bo_subject_len'], G5_ADMIN_BBS_URL); 장소가 2개군요. 하나는 공지사항, 하나는 그냥 리스트 글쓰기자 다시 리스트 페이지를 가봅시다. /gnuboard/adm/bbs/board.php?bo_table=notice 가셔서 글쓰기를 눌러보시면 됩니다. 글을 쓴 다음에 저장을 누르시면 또 메인으로 가버립니다.여기도 링크 변경이 필요하겠네요. gnuboard/adm/bbs/write.php 로 가셔서 저장하는 페이지 링크를 바꿉니다. $action_url = https_url(G5_ADMIN_BBS_DIR)."/write_update.php"; $action_url 을 바꾸시면 이제 adm/bbs 쪽에 있는 write_update.php 를 사용하게 됩니다. 저장후 이동링크 변경 하기/gnuboard/adm/bbs/write_update.php 도 고쳐보시죠. alert('올바른 방법으로 수정하여 주십시오.', G5_ADMIN_BBS_URL.'/board.php?bo_table='.$bo_table); $link_url = G5_ADMIN_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$wr_id.'&'.$qstr; if ($file_upload_msg) alert($file_upload_msg, G5_ADMIN_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$wr_id.'&page='.$page.$qstr); else goto_url(G5_ADMIN_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$wr_id.$qstr); 여기는 4가지 정되가 있네요. 관련된 링크를 모두 수정하시면 이제 저장후에도 다시 adm/bbs 기준으로 이동하게 됩니다. 메뉴 연결하기이제 /gnuboard/adm/bbs/board.php?bo_table=notice 라는 링크를 갖게 되었습니다. 게시판 관련해서 관리자 메뉴가 /gnuboard/adm/admin.menu300.php 에 설정되어 있기 때문에 여기에 게시판 링크를 하나 추가 해볼게요. $menu['menu300'] = array ( array('300000', '게시판관리', ''.G5_ADMIN_URL.'/board_list.php', 'board'), array('300100', '게시판관리', ''.G5_ADMIN_URL.'/board_list.php', 'bbs_board'), array('300200', '게시판그룹관리', ''.G5_ADMIN_URL.'/boardgroup_list.php', 'bbs_group'), array('300300', '인기검색어관리', ''.G5_ADMIN_URL.'/popular_list.php', 'bbs_poplist', 1), array('300400', '인기검색어순위', ''.G5_ADMIN_URL.'/popular_rank.php', 'bbs_poprank', 1), array('300500', '1:1문의설정', ''.G5_ADMIN_URL.'/qa_config.php', 'qa'), array('300600', '내용관리', G5_ADMIN_URL.'/contentlist.php', 'scf_contents', 1), array('300700', 'FAQ관리', G5_ADMIN_URL.'/faqmasterlist.php', 'scf_faq', 1), // 여기에 한번 넣어보시죠. array('300710', '공지사항 게시판', G5_ADMIN_URL.'/bbs/board.php?bo_table=notice', 'news'), 이제 메뉴도 추가하였습니다. 새로고침
해서 게시판쪽 메뉴를 보시면 여기를 누르면 관리자에서도 이제 게시판을 사용하실 수 있어요. |