관리자페이지에서 관리자 추가하기 > 그누보드5 팁자료실

그누보드5 팁자료실

관리자페이지에서 관리자 추가하기 정보

관리자페이지에서 관리자 추가하기

첨부파일

11.png (25.7K) 24회 다운로드 2016-07-15 12:30:03
22.png (23.7K) 0회 다운로드 2016-07-15 12:30:03

본문

관리자페이지에 관리자를 추가하는 기능입니다.

사용방법은 회원관리에서 관리자 추가를 원하는 회원의 레벨을 10으로 추가시켜줍니다.
그리고 환경설정으로 가면
최고관리자 추가란에 레벨10인 회원을 뿌려와줍니다.
이후 체크를하고 확인을 누르면 최고관리자로 설정됩니다.

./adm/config_form.php 189라인 위에 최고관리자 추가 칼럼 추가 - 추가전

$g5['title'] = '환경설정';
include_once ('./admin.head.php');


./adm/config_form.php 189라인 위에 최고관리자 추가 칼럼 추가 후

// 최고관리자 추가
if(!isset($config['cf_admin_add'])) {
    sql_query(" ALTER TABLE `{$g5['config_table']}`
                    ADD `cf_admin_add` varchar(255) NOT NULL DEFAULT '' AFTER `cf_admin` ", true);
}
 
$g5['title'] = '환경설정';
include_once ('./admin.head.php');


./adm/config_form.php 237라인을 찾아서 아래 내용 추가 => 추가전

<tr>
            <th scope="row"><label for="cf_admin">최고관리자<strong class="sound_only">필수</strong></label></th>
            <td colspan="3"><?php echo get_member_id_select('cf_admin', 10, $config['cf_admin'], 'required') ?></td>
        </tr>
        <tr>
            <th scope="row"><label for="cf_admin_email">관리자 메일 주소<strong class="sound_only">필수</strong></label></th>
            <td colspan="3">
                <?php echo help('관리자가 보내고 받는 용도로 사용하는 메일 주소를 입력합니다. (회원가입, 인증메일, 테스트, 회원메일발송 등에서 사용)') ?>
                <input type="text" name="cf_admin_email" value="<?php echo $config['cf_admin_email'] ?>" id="cf_admin_email" required class="required email frm_input" size="40">
            </td>
        </tr>


./adm/config_form.php 237라인을 찾아서 아래 내용 추가 => 최고관리자 추가 관련 추가후

        <tr>
            <th scope="row"><label for="cf_admin">최고관리자<strong class="sound_only">필수</strong></label></th>
            <td colspan="3"><?php echo get_member_id_select('cf_admin', 10, $config['cf_admin'], 'required') ?></td>
        </tr>
		<tr>
            <th scope="row"><label for="cf_admin_add">최고관리자 추가</label></th>
            <td colspan="3">
				<?php echo help('회원레벨이 10 이고 최고관리자라면 체크박스에 체크됨. (해당 업체에서 관리자추가를 원할경우 사용)') ?>
				<?=admin_add_checkbox($config['cf_admin'],'cf_admin_add', 10, $config['cf_admin_add'],','); ?>
				<input type="hidden" name="cf_admin_add"  id="cf_admin_add" value="<?php echo $config['cf_admin_add'] ?>" />
            </td>
        </tr>
        <tr>
            <th scope="row"><label for="cf_admin_email">관리자 메일 주소<strong class="sound_only">필수</strong></label></th>
            <td colspan="3">
                <?php echo help('관리자가 보내고 받는 용도로 사용하는 메일 주소를 입력합니다. (회원가입, 인증메일, 테스트, 회원메일발송 등에서 사용)') ?>
                <input type="text" name="cf_admin_email" value="<?php echo $config['cf_admin_email'] ?>" id="cf_admin_email" required class="required email frm_input" size="40">
            </td>
        </tr>


./adm/config_form.php 상단에 아래 스크립트 추가

<script>
function admin_member_add(obj,chkobj) {
    var l = document.getElementsByName(chkobj);
    var i;
    var tag = "";
    for(i = 0; i < l.length; i++ ) { // for문 시작
        if(i > 0) tag += ",";
        if(l[i].checked) { // if(l[i].checked) {
            tag += l[i].value;
        }
    } // for문 종료
    document.getElementById(obj).value = tag;
}
</script>


./adm/config_form_update.php 27라인을 찾아서 아래 내용 추가 => 추가전

$sql = " update {$g5['config_table']}
            set cf_title = '{$_POST['cf_title']}',
                cf_admin = '{$_POST['cf_admin']}',


./adm/config_form_update.php 27라인을 찾아서 아래 내용 추가 =>
cf_admin_add = '{$_POST['cf_admin_add']}',  최고관리자 추가 관련 추가후

$sql = " update {$g5['config_table']}
            set cf_title = '{$_POST['cf_title']}',
                cf_admin = '{$_POST['cf_admin']}',
                cf_admin_add = '{$_POST['cf_admin_add']}',


./lib/common.lib.php에 777라인에 function is_admin($mb_id) 내용 추가 - 내용 추가전

// 관리자인가?
function is_admin($mb_id)
{
    global $config, $group, $board;
 
    if (!$mb_id) return;
 
    if ($config['cf_admin'] == $mb_id) return 'super';
    if (isset($group['gr_admin']) && ($group['gr_admin'] == $mb_id)) return 'group';
    if (isset($board['bo_admin']) && ($board['bo_admin'] == $mb_id)) return 'board';
    return '';
}


./lib/common.lib.php에 777라인에 내용 추가 - 내용 추가후

// 관리자인가?
function is_admin($mb_id) {
    global $config, $group, $board,$_SESSION;
 
    if (!$mb_id) return;
 
    $arr = explode(',' , trim($config['cf_admin_add']));
    if(in_array($mb_id, $arr))  return 'super';
 
    if ($config['cf_admin'] == $mb_id) return 'super';
 
    if (isset($group['gr_admin']) && ($group['gr_admin'] == $mb_id)) return 'group';
    if (isset($board['bo_admin']) && ($board['bo_admin'] == $mb_id)) return 'board';
    return '';
}
 
// 최고 관리자 추가 관련 , 체크박스 형태로 보여줌
function admin_add_checkbox($cf_admin, $name, $level, $checked="",$gubun=",") {
    global $g5;
 
    $sql = " SELECT mb_id FROM {$g5['member_table']} WHERE mb_id <> '{$cf_admin}' AND mb_level >= '{$level}' ORDER BY mb_no ASC ";
    $result = sql_query($sql);
    $str = '';
  
    for ($i=0; $row=sql_fetch_array($result); $i++) :
        $check_value = admin_arr_checkbox($checked,$row['mb_id'],$gubun);
        if($i > 0) $str .= "&nbsp;,&nbsp;";
        $str .= "<label for=\"{$name}_chk_{$i}\">";
        $str .= "<input type=\"checkbox\" name=\"{$name}_chk[]\" id=\"{$name}_chk_{$i}\" value=\"{$row['mb_id']}\" ";
        if ($check_value) $str .= " checked=\"checked\"";
        $str .= " onclick=\"admin_member_add('{$name}','{$name}_chk[]')\" /> {$row['mb_id']}";
        $str .= "</label>";
    endfor;
    return $str;
}

// 최고관리자를 추가한 ID 체크박스 확인
function admin_arr_checkbox($checked,$mb_id,$gubun) {

	$arr_checked = explode(",", $checked);

	if (in_array($mb_id, $arr_checked)) {
		$admin_chk = $mb_id;
	}
	return $admin_chk;
}
추천
4

댓글 10개

저도 같은 의견입니다. 업그레이드할때 모든 파일을 비교할 수가 없으니... 아쉽습니다. 그래도 배우는 점이 있어 좋습니다. 관리자 추가 소스 올려주신분께 감사드립니다.
/extend/index.php  파일을 만들고,

아래와 같이 추가하면..
사용자 레벨을 10으로 바꾸면 관리로 넘어가던데...

이것과 차이점이 어떻게 될까요?


<?php
// 최고관리자 추가
if ($member['mb_level'] > 9) $is_admin = 'super';
?>에서
본인이 싸이트를 관리하고 운영한다면 직접적인 소스수정으로 관리자를 임의로 부여할수있지만,
홈페이지를 만들어서 파는 사람들은 해당 구매자가 자유롭게 관리자 추가,삭제가 가능하게 해주는게 구매자 입장에선 편하겠지요?
구매자가 소스를 모르는 일반?분 이시라면 해당파일을 추가하고
해당 소스를 넣으라는 말을 알아듣기 쉽지가않겠죠
일반 구매자가 관리자를 추가하기위해서는 기존의 홈페이지 제작자에게 연락을 다시해서
관리자아이디 xxx를 추가해달라고 한다거나 해야하는 일이 발생합니다.
물론 똑같이 관리자를 추가하는 소스이지만
사용하는 사람과 방식의 차이가 있다고 설명드릴수있겠네요^^
그리고 위의 예시의 소스는 무조건 ftp로 접속해서 해당 소스파일을 열어야만 관리자를 추가,삭제가 가능한데비해
제가 첨부한 소스는 휴대폰에서도 가능하고, 컴퓨터 인터넷이 되는곳에만 있더라도
관리자 추가 삭제를 언제든지 가능하다는 장점또한 있습니다.
매번 에디트 플러스를 설치를해서 수정을 할수는 없을테니까요
전체 2,431 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

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