회원 포인트 기준 아이콘 보이기 > 그누보드5 팁자료실

그누보드5 팁자료실

회원 포인트 기준 아이콘 보이기 정보

회원 포인트 기준 아이콘 보이기

첨부파일

level.zip (3.9K) 45회 다운로드 2017-03-06 00:21:39
gnuboard5_skin_level_20170306.png (40.1K) 9회 다운로드 2017-03-06 00:21:39

본문

회원 레벨별 아이콘 보이기
-. g5_level 테이블 생성
-. g5_member 테이블에 필드 추가
-. 그누보드5 / img / level / 0.gif ~ 7.gif  ( 첨부 level.zip )
-. 그누보드5 / adm / level_list.php  생성
-. 그누보드5 / adm / level_update.php  생성
-. 그누보드5 / adm / level_member_update.php  생성
-. 그누보드5 / adm / admin.menu200.php  수정
-. 그누보드5 / lib / common.lib.php  수정
-. 그누보드5 / skin / board / 폴더 / list.skin.php , view.skin.php . view_comment.skin.php  수정


1. 그누보드5 / data / dbconfig.php 에 내용 추가
$g5['level_table'] = G5_TABLE_PREFIX.'level';  // 회원 포인트별 레벨 정의


2. 회원 레벨을 관리하는 g5_level 테이블 만들기
`lv_idx` int(11) NOT NULL auto_increment,
`lv_name` varchar(20) NOT NULL,
`lv_point` int(10) NOT NULL,
`lv_id` int(10) NOT NULL


3. 회원테이블에 필드 추가
ALTER TABLE  `g5_member` ADD  `mb_point_level` INT( 3 ) NOT NULL ;


4. 그누보드5 / adm / admin.menu990.php  파일만들기
<?php
$menu["menu990"] = array (
    array('990000', '추가기능', G5_ADMIN_URL.'/m3stats.php', 'm3stats'),
    array("990100", "활성도 통계", ''.G5_ADMIN_URL.'/m3stats.php', 'm3stats'),
    array('990200', '레벨점수 관리', G5_ADMIN_URL.'/level_list.php', 'level'),
    array('990210', '레벨 전체 업데이트', G5_ADMIN_URL.'/level_member_update.php', 'levelupdate'),
);
?>


5. 그누보드5 / adm / level_list.php 파일 만들기
<?php
$sub_menu = "990200";
include_once('./_common.php');

auth_check($auth[$sub_menu], 'r');

$sql_common = " from {$g5['level_table']} ";

$sql_search = " where (1) ";

if ($stx) {
    $sql_search .= " and ( ";
    switch ($sfl) {
        case 'mb_id' :
            $sql_search .= " ({$sfl} = '{$stx}') ";
            break;
        default :
            $sql_search .= " ({$sfl} like '%{$stx}%') ";
            break;
    }
    $sql_search .= " ) ";
}

if (!$sst) {
    $sst  = "lv_id";
    $sod = "asc";
}
$sql_order = " order by {$sst} {$sod} ";

$sql = " select count(*) as cnt
            {$sql_common}
            {$sql_search}
            {$sql_order} ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];

$rows = $config['cf_page_rows'];
$total_page  = ceil($total_count / $rows);  // 전체 페이지 계산
if ($page < 1) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함

$sql = " select *
            {$sql_common}
            {$sql_search}
            {$sql_order}
            limit {$from_record}, {$rows} ";
$result = sql_query($sql);

$listall = '<a href="'.$_SERVER['SCRIPT_NAME'].'" class="ov_listall">전체목록</a>';

$mb = array();
if ($sfl == 'mb_id' && $stx)
    $mb = get_member($stx);

$g5['title'] = '레벨점수 관리';
include_once ('./admin.head.php');

$colspan = 4;

if (strstr($sfl, "mb_id"))
    $mb_id = $stx;
else
    $mb_id = "";
?>

<div class="local_ov01 local_ov">
    <?php echo $listall ?>
    전체 <?php echo number_format($total_count) ?> 건
</div>

<div class="tbl_head01 tbl_wrap">
    <table>
    <caption><?php echo $g5['title']; ?> 목록</caption>
    <thead>
    <tr>
        <th scope="col">레벨</th>
        <th scope="col">아이콘</th>
        <th scope="col">계급</th>
        <th scope="col">포인트</th>
        <th scope="col">수정</th>
    </tr>
    </thead>
    <tbody>
    <?php
    for ($i=0; $row=sql_fetch_array($result); $i++) {
        $bg = 'bg'.($i%2);
    ?>

    <tr class="<?php echo $bg; ?>">
        <form name="lvupdate<?php echo $i; ?>" id="lvupdate<?php echo $i; ?>" method="post" action="level_update.php" autocomplete="off">
        <input type="hidden" name="lv_idx" value="<?php echo $row['lv_idx']; ?>">
        <input type="hidden" name="mode" value="e">
        <input type="hidden" name="token" value="<?php echo $token ?>">
        <td class="td_datetime"><input type="text" name="lv_id" value="<?php echo $row['lv_id'] ?>" class="required frm_input"></td>
        <td class="td_datetime"><img src="<?php echo G5_IMG_URL; ?>/level/<?php
        if ($row['lv_name']=="인턴") { echo "0"; }
        elseif ($row['lv_name']=="사원") { echo "1"; }
        elseif ($row['lv_name']=="대리") { echo "2"; }
        elseif ($row['lv_name']=="과장") { echo "3"; }
        elseif ($row['lv_name']=="부장") { echo "3"; }
        elseif ($row['lv_name']=="이사") { echo "4"; }
        elseif ($row['lv_name']=="사장") { echo "6"; }
        elseif ($row['lv_name']=="회장") { echo "7"; }
        else { echo "0"; }
        ?>.gif"></td>
        <td class="td_datetime"><input type="text" name="lv_name" value="<?php echo $row['lv_name'] ?>" class="required frm_input"></td>
        <td class="td_datetime"><input type="text" name="lv_point" value="<?php echo $row['lv_point'] ?>" class="required frm_input"></td>
        <td class="td_datetime"><input type="submit" value=" 수정 "></td>
        </form>
    </tr>

    <?php
    }

    if ($i == 0)
        echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
    ?>
    </tbody>
    </table>
</div>

<?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['SCRIPT_NAME']}?$qstr&amp;page="); ?>

<section id="point_mng">
    <h2 class="h2_frm">레벨 추가</h2>

    <form name="flevellist2" method="post" id="flevellist2" action="./level_update.php" autocomplete="off">
    <input type="hidden" name="mode" value="w">
    <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
    <input type="hidden" name="stx" value="<?php echo $stx ?>">
    <input type="hidden" name="sst" value="<?php echo $sst ?>">
    <input type="hidden" name="sod" value="<?php echo $sod ?>">
    <input type="hidden" name="page" value="<?php echo $page ?>">
    <input type="hidden" name="token" value="<?php echo $token ?>">

    <div class="tbl_frm01 tbl_wrap">
        <table>
        <colgroup>
            <col class="grid_4">
            <col>
        </colgroup>
        <tbody>
        <tr>
            <th scope="row"><label for="lv_id">레벨<strong class="sound_only">필수</strong></label></th>
            <td><input type="text" name="lv_id" id="lv_id" required class="required frm_input"> 숫자만</td>
        </tr>
        <tr>
            <th scope="row"><label for="lv_name">레벨 설명<strong class="sound_only">필수</strong></label></th>
            <td><input type="text" name="lv_name" id="lv_name" class="required frm_input" required> 레벨 설명</td>
        </tr>
        <tr>
            <th scope="row"><label for="lv_point">레벨 포인트<strong class="sound_only">필수</strong></label></th>
            <td><input type="text" name="lv_point" id="lv_point" required class="required frm_input"> 숫자만</td>
        </tr>
        </tbody>
        </table>
    </div>

    <div class="btn_confirm01 btn_confirm">
        <input type="submit" value="확인" class="btn_submit">
    </div>

    </form>

</section>

<?php
include_once ('./admin.tail.php');
?>


6. 그누보드5 / adm / level_update.php  파일 만들기
<?php
$sub_menu = "990200";
include_once('./_common.php');

auth_check($auth[$sub_menu], 'w');

if ($is_admin != 'super')
    alert('최고관리자만 접근 가능합니다.');

//check_admin_token();

$mode = $_POST['mode'];
$lv_name = $_POST['lv_name'];
$lv_point = $_POST['lv_point'];
$lv_id = $_POST['lv_id'];

$mb = get_member($mb_id);

if ($mode=="w") {
    $sql = "insert into ".$g5['level_table']." (lv_name, lv_point, lv_id) values ('".$lv_name."','".$lv_point."','".$lv_id."')";
    sql_query($sql);
} else {
    $sql = " update ".$g5['level_table']."
            set lv_name = '".$_POST['lv_name']."',
                lv_point = '".$_POST['lv_point']."',
                lv_id = '".$_POST['lv_id']."'
                where lv_idx = '".$_POST['lv_idx']."';
                ";
    sql_query($sql);
}

goto_url('./level_list.php', false);
?>


7. 그누보드5 / adm / level_member_update.php  파일만들기
<?php
$sub_menu = "990210";
include_once('./_common.php');

auth_check($auth[$sub_menu], 'r');

$sql_common = " from {$g5['member_table']} ";

if (!$sst) {
    $sst = "mb_datetime";
    $sod = "desc";
}

$sql_order = " order by {$sst} {$sod} ";

$g5['title'] = '레벨 전체 업데이트';
include_once('./admin.head.php');

$sql = " select * {$sql_common} {$sql_order} ";
$result = sql_query($sql);

$colspan = 16;
?>

<div class="local_desc01 local_desc">
    <p>
        회원포인트를 기준으로 레벨 일괄 업데이트를 합니다.
    </p>
</div>

<div class="tbl_head02 tbl_wrap">
    <table>
    <caption><?php echo $g5['title']; ?> 목록</caption>
    <thead>
    <tr>
        <th scope="col" id="mb_list_id">아이디</a></th>
        <th scope="col" id="mb_list_name">이름</a></th>
        <th scope="col" id="mb_list_grp">포인트</th>
        <th scope="col" id="mb_list_mng">레벨</th>
    </tr>
    </thead>
    <tbody>
    <?php
    for ($i=0; $row=sql_fetch_array($result); $i++) {
    ?>
    <tr class="<?php echo $bg; ?>">
        <td headers="mb_list_id" class="td_name sv_use"><?php echo $row['mb_id']; ?></td>
        <td headers="mb_list_name" class="td_mbname"><?php echo get_text($row['mb_name']); ?></td>
        <td headers="mb_list_point" class="td_num"><?php
        echo $row['mb_point'];
       
        // 회원가입시 기본 1000점 부여된것을 일괄 변경하고자 할때
        /*
        if ($row['mb_point'] > 999) {
            $mb_point_check = $row['mb_point'] - (int)990;
            echo $row['mb_point'];
           
            //$sql2 = "update ".$g5['member_table']." set mb_point = '".$mb_point_check."' where mb_id = '".$row['mb_id']."' ";
            //sql_query($sql2);
        } else {
            echo $row['mb_point'];
        }
        */
        ?></td>
        <td headers="mb_list_point" class="td_num"><?php
            $sql_level = "select * from ".$g5['level_table']." order by lv_point desc";
            $result2 = sql_query($sql_level);
           
            for ($k=0; $row2=sql_fetch_array($result2); $k++) {
                if ($row['mb_point'] >= $row2['lv_point']) {
                    $sql2 = " update ".$g5['member_table']." set mb_point_level = '".$row2['lv_id']."' where mb_id = '".$row['mb_id']."' ";
                    //sql_query($sql2);
                   
                    break;
                } else {
                }
            }
            echo $row2['lv_id'];
        ?></td>
    </tr>
    <?php
    }
   
    if ($i == 0)
        echo "<tr><td colspan=\"".$colspan."\" class=\"empty_table\">자료가 없습니다.</td></tr>";
    ?>
    </tbody>
    </table>
</div>
<?php

include_once ('./admin.tail.php');
?>



8-1. 그누보드5 / lib / common.lib.php
    // 포인트 UPDATE
    $sql = " update {$g5['member_table']} set mb_point = '$po_mb_point' where mb_id = '$mb_id' ";
    sql_query($sql);

를 아래와 같이 변경

    // 포인트 UPDATE
    $sql = " update {$g5['member_table']} set mb_point = '$po_mb_point' where mb_id = '$mb_id' ";
    sql_query($sql);
   
    // 포인트 부여
    // 레벨 정의 테이블 데이타를 큰 포인트부터 순차적으로 가져옴
    // ALTER TABLE  `g5_member` ADD  `mb_point_level` INT( 3 ) NOT NULL ;
    $lv_point = "";
   
    $sql_level = "select * from ".$g5['level_table']." order by lv_point desc";
    $result = sql_query($sql_level);
   
    for ($i=0; $row=sql_fetch_array($result); $i++) {
   
        $lv_point = $row['lv_point'];
        $lv_id = $row['lv_id'];
       
        if ($po_mb_point >= $lv_point) {
            $sql = " update ".$g5['member_table']." set mb_point_level = '".$lv_id."' where mb_id = '".$mb_id."' ";
            sql_query($sql);
            break;
        } else {
            $sql = "";
        }
    }


8-2. 그누보드5 / lib / common.lib.php

        // 포인트 UPDATE
        $sql = " update {$g5['member_table']} set mb_point = '$sum_point' where mb_id = '$mb_id' ";
        $result = sql_query($sql);

를 아래와 같이 변경

        // 포인트 UPDATE
        $sql = " update {$g5['member_table']} set mb_point = '$sum_point' where mb_id = '$mb_id' ";
        $result = sql_query($sql);
       
        // 포인트 삭제
        // 레벨 정의 테이블 데이타를 큰 포인트부터 순차적으로 가져옴
        // ALTER TABLE  `g5_member` ADD  `mb_point_level` INT( 3 ) NOT NULL ;
        $lv_point = "";
   
        $sql_level = "select * from ".$g5['level_table']." order by lv_point desc";
        $result = sql_query($sql_level);
       
        for ($i=0; $row=sql_fetch_array($result); $i++) {
       
            $lv_point = $row['lv_point'];
            $lv_id = $row['lv_id'];
           
            if ($po_mb_point >= $lv_point) {
                $sql = " update ".$g5['member_table']." set mb_point_level = '".$lv_id."' where mb_id = '".$mb_id."' ";
                sql_query($sql);
                break;
            } else {
                $sql = "";
            }
        }


9. 그누보드5 / skin / board / 폴더 / list.skin.php  125줄
            <td class="td_name sv_use"><?php echo $list[$i]['name'] ?></td>

를 다음과 같이 변경

            <td class="td_name sv_use"><?php
                $mb_point_level = $list[$i]['mb_point_level'];
               
                if ($mb_point_level=="") {
                    $mb_point_level = 0;
                } else {
                }
               
                $icon_file_url = G5_IMG_URL.'/level/'.$mb_point_level.".gif";
                echo '<img src="'.$icon_file_url.'" alt=""> ';
            ?><?php echo $list[$i]['name'] ?></td>


10. 그누보드5 / skin / board / 폴더 / view.skin.php  26줄
        작성자 <strong><?php echo $view['name'] ?><?php if ($is_ip_view) { echo "&nbsp;($ip)"; } ?></strong>

를 다음과 같이 변경

        작성자 <?php
            $mb_point_level = $view['mb_point_level'];
           
            if ($mb_point_level=="") {
                $mb_point_level = 0;
            } else {
            }
           
            $icon_file_url = G5_IMG_URL.'/level/'.$mb_point_level.".gif";
            echo '<img src="'.$icon_file_url.'" alt=""> ';
        ?> <strong><?php echo $view['name'] ?><?php if ($is_ip_view) { echo "&nbsp;($ip)"; } ?></strong>


11. 그누보드5 / skin / board / 폴더 / view_comment.skin.php  33줄
            <?php echo $list[$i]['name'] ?>

를 다음과 같이 변경

            <?php
            $mb_point_level = $view['mb_point_level'];
           
            if ($mb_point_level=="") {
                $mb_point_level = 0;
            } else {
            }
           
            $icon_file_url = G5_IMG_URL.'/level/'.$mb_point_level.".gif";
            echo '<img src="'.$icon_file_url.'" alt=""> ';
            ?>
            <?php echo $list[$i]['name'] ?>


참고자료
https://sir.kr/g4_tiptech/30919
추천
3

댓글 5개

따라 가는거도 숨찬데...대체 작성하신 분은 어떤 마음으로 글을 썼을까요...
감탄입니다.
감사합니다.

그런데 동작을 안하네요.

m3stats.php
이 원래 없는건지..버젼업 되면서 사라진건지...
혹시 아시는 분 답변 부탁드립니다.
전체 2,431 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

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