테스트 사이트 - 개발 중인 베타 버전입니다

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

· 9년 전 · 20001 · 12
11.png
22.png
관리자페이지에 관리자를 추가하는 기능입니다.

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

./adm/config_form.php 189라인 위에 최고관리자 추가 칼럼 추가 - 추가전
[code]
$g5['title'] = '환경설정';
include_once ('./admin.head.php');
[/code]

./adm/config_form.php 189라인 위에 최고관리자 추가 칼럼 추가 후
[code]
// 최고관리자 추가
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');
[/code]

./adm/config_form.php 237라인을 찾아서 아래 내용 추가 => 추가전
[code]
<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>
[/code]

./adm/config_form.php 237라인을 찾아서 아래 내용 추가 => 최고관리자 추가 관련 추가후
[code]
<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>
[/code]

./adm/config_form.php 상단에 아래 스크립트 추가
[code]
<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>
[/code]

./adm/config_form_update.php 27라인을 찾아서 아래 내용 추가 => 추가전
[code]
$sql = " update {$g5['config_table']}
            set cf_title = '{$_POST['cf_title']}',
                cf_admin = '{$_POST['cf_admin']}',
[/code]

./adm/config_form_update.php 27라인을 찾아서 아래 내용 추가 =>
cf_admin_add = '{$_POST['cf_admin_add']}', 최고관리자 추가 관련 추가후
[code]
$sql = " update {$g5['config_table']}
set cf_title = '{$_POST['cf_title']}',
cf_admin = '{$_POST['cf_admin']}',
cf_admin_add = '{$_POST['cf_admin_add']}',
[/code]

./lib/common.lib.php에 777라인에 function is_admin($mb_id) 내용 추가 - 내용 추가전
[code]
// 관리자인가?
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 '';
}
[/code]

./lib/common.lib.php에 777라인에 내용 추가 - 내용 추가후
[code]
// 관리자인가?
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;
}
[/code]

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 12개

8개월 전

진짜 감사합니다. 2025년 현재버전에도 잘 적용됩니다. 대단하십니다.

8개월 전
관리자페이지에서 관리자 추가하기.

게시글 목록

번호 제목
4378
4377
4352
4341
4336
4334
4325
4309
4302
4301
4296
4290
4280
4278
4256
4236
4222
4211
4196
4195
4194
4166
4160
4156
4146
4139
4131
4129
4127
4124