PHP

[그누보드] 그룹관리자 및 게시판관리자 여러명 지정하기

먹세 2013. 4. 17. 15:40

그누보드는 기본적으로 최고관리자, 그룹관리자, 게시판관리자 이렇게 세 종류의 관리자로 나뉜다.

또한, 기본적으로 한명씩 밖에 지정을 할 수가 없다.


그룹관리자에 여러명을 지정해야 하는 상황이 발생할 경우를 대비하여 방법을 알아보자.

아래 순서대로 작업한다면 어렵지 않게 수정할 수 있다.




1. adm/boardgroup_list.php

 if ($is_admin == "super")

        echo "<td><input type=text class=ed name=gr_admin[$i] value='$row[gr_admin]' maxlength=20></td>";


에서


 if ($is_admin == "super")

        echo "<td><input type=text class=ed name=gr_admin[$i] value='$row[gr_admin]' maxlength=100></td>";

빨간 숫자부분만 크게 바꿔준다.

여러 아이디를 사용할 것이기 때문에 기존에 있던 input보다 크게 maxlength=100 정도로 바꿔준다.




2. lib/common.lib.php

if ($group['gr_admin'] == $mb_id) return 'group';

if ($board['bo_admin'] == $mb_id) return 'board';


이 부분을 


if( in_array( $mb_id, explode( ',', $group['gr_admin']))) return 'group';    ///그룹관리자

if( in_array( $mb_id, explode( ',', $board['bo_admin']))) return 'board';    ///게시판관리자


이렇게 수정한다. 

여러 아이디들이 담겨있는 필드를 가져와서 ','로 구분하여 배열을 만들고, 현재 로그인 된 아이디가 배열의 key값중에 속해있는지 구분하는 문구이다.




3. bbs/board.php

// 최고관리자 또는 그룹관리자라면

if ($member[mb_id] && ($is_admin == 'super' || $group[gr_admin] == $member[mb_id]))

    $admin_href = "$g4[admin_path]/board_form.php?w=u&bo_table=$bo_table";

이 부분을

if ($member[mb_id] && ($is_admin == 'super' || $is_admin == 'group' || $is_admin == 'board'))

    $admin_href = "$g4[admin_path]/board_form.php?w=u&bo_table=$bo_table";

빨간색 처럼 바꿔준다.




4. bbs/list.php


$is_checkbox = false;

if ($member[mb_id] && ($is_admin == "super" || $group[gr_admin] == $member[mb_id] || $board[bo_admin] == $member[mb_id]))

    $is_checkbox = true;


이부분을


$is_checkbox = false;

if ($member[mb_id] && ($is_admin == "super" || $is_admin == "group" || $is_admin == "board"))

    $is_checkbox = true;


이것은 그룹관리자나 게시판관리자로 접속했을때 게시물을 관리할 수 있는 체크박스가 나타나게 해주는 것이다.



5. bbs/delete_comment.php, bbs/delete_all.php, bbs/delete.php, bbs/write_update.php

이 네개의 파일에서


 if ($member[mb_id] == $group[gr_admin]) { // 자신이 관리하는 그룹인가?

라는 부분이 있다면 

if ($is_admin == "group") { // 자신이 관리하는 그룹인가? 

이렇게 수정해주고,


 if ($member[mb_id] != $board[bo_admin]) // 자신이 관리하는 게시판인가?

라는 부분이 있으면

if ($is_admin != "board") // 자신이 관리하는 게시판인가?

이렇게 수정해준다.



수정할 곳이 좀 여러군데여서 복잡해 보이지만,

파일당 한곳씩 수정하는 것이기 때문에 금방 작업을 끝낼 수 있을 것이다.







반응형

'PHP' 카테고리의 다른 글

php 메일 utf-8로 보내기  (0) 2013.04.30
php 현재 생성되어있는 변수 확인  (0) 2013.04.30
다중 셀렉트(배열이용)  (0) 2013.04.05
그누보드 로그인세션 공유  (0) 2013.04.05
php로 pdf 파일 다운로드 구현  (0) 2013.04.05