관리자 페이지에서 게시판 사용하기 > 그누보드5 팁자료실

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

그누보드5 팁자료실

관리자 페이지에서 게시판 사용하기 정보

관리자 페이지에서 게시판 사용하기

본문

이 글은 그누보드를 처음깔고 관리자 화면에서 게시판 내용을 관리하기 위해서 몇시간의 삽질끝에 구성을 해봤습니다.



관리자 페이지에서 /adm/bbs/board.php?bo_table=notice 형태로 들어가면 게시판이 보였으면 좋겠다 싶어서 사용한 방법입니다.



아래 절차를 따로 오시면 어렵지 않게 하실 수 있으실 것 같아요.




bbs 디렉토리를 /adm/에도 똑같이 복사해줍니다.



gnuboard/bbs   이 디렉토리를 

gnuboard/adm/bbs 여기에도 복사를 해주시면 되요.


자, 이렇게 되면 위와 같은 구조로 디렉토리가 남을 것입니다.




adm/bbs 의 _common.php 파일 수정


<?php

define('G5_IS_ADMIN', true);
include_once ('../../common.php');
include_once(G5_ADMIN_PATH.'/admin.lib.php');
?>

실제 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
  • write


list, view 는 board.php 에 통합되어 있고
write 는 write.php 에 있습니다.



즉 board.php 와 write.php 에서 레이아웃을 맞춰야합니다.



레이아웃 맞추기 전에 먼저 제거 해야할 게 있는데요.




  • board_head.php
  • board_tail.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'),


이제 메뉴도 추가하였습니다.
새로고침 해서 게시판쪽 메뉴를 보시면 공지사항게시판 생깁니다.



여기를 누르면 관리자에서도 이제 게시판을 사용하실 수 있어요.

추천
9

댓글 17개

허허~~ 관리자에서 mysql DB별도로 생성해서 만들기 작업 이틀 했습니다...  일찍 일찍 검색부터 할것을 ㅎㅎㅎㅎ
좋은 정보 감사합니다!^_^*

$sub_menu = "001000";  <- 게시판이 나타나야 하는 기본 메뉴
    $sub_menu = "001500";          <- 게시판이  지정된 메뉴 번호
이건 어떤 메뉴 번호를 뜻하는 건가요?

array('300710', '공지사항 게시판', G5_ADMIN_URL.'/bbs/board.php?bo_table=notice', 'news');
뒤에 news는 뭘 뜻하는 거에요?
찾고자 하는 부분이 여기 있어서 자료 감사합니다.
다른분들은 다들 잘돼시나 보네요
몇가지 수정할 부분이 있어서

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_BBS_PATH',      G5_PATH.'/'.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));


adm/bbs/board.php

include_once ('../admin.head.php'); 
//echo G5_ADMIN_BBS_PATH;
// 게시물 아이디가 있다면 게시물 보기를 INCLUDE
if (isset($wr_id) && $wr_id) {
    include_once(G5_ADMIN_BBS_PATH.'/view.php'); <--- 변경 되었습니다.

if ($member['mb_level'] >= $board['bo_list_level'] && $board['bo_use_list_view'] || empty($wr_id))
    include_once (G5_ADMIN_BBS_PATH.'/list.php'); <---- 변경되었습니다.


이렇게 수정하시면 본문 페이지 이동 되네요.
그리고  style 깨지는 부분만 고치면 될듯 합니다.

admin.tail.php 
하단에 
 

<script>

    $(document).ready(function() {

        $('a').each(function() {

            var href = $(this).attr('href');

            if (href && href.includes('/bbs')) {

                var newHref = href.replace('/bbs', '/admin/bbs');

                $(this).attr('href', newHref);

            }

        });

    });

</script>

를 추가해서 링크를 변경하는 방법도 괜찮을것 같습니다.

 

전체 2,431 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT