포인트 레벨 아이콘 질문드립니다

포인트 레벨 아이콘 질문드립니다

QA

포인트 레벨 아이콘 질문드립니다

본문


<?php 
if (!defined('_GNUBOARD_')) exit; 
// 포인트별 아이콘 부여 
function get_level_icon($mb_id) { 
    global $g5; 
    $max_point = 1000; // 최저 
    $ren_point = 1000; // 나누기 
    $max_level = 101; // 마지막레벨 
    
    $mb = get_member($mb_id, "mb_id, mb_point"); 
    $ic_mb_id = $mb['mb_id']; 
    $is_admin = is_admin($ic_mb_id); 
    if ($ic_mb_id) { 
        // 관리자 
        if ($is_admin == 'super') { 
            $mb_icon = "<img src='".G5_IMG_URL."/level/lv_admin.png' align='absmiddle' title='관리자'>"; 
        //} else if ($ic_mb_id == 'test' || $ic_mb_id == 'test2') { // 특정회원들 
        //    $mb_icon = "<img src='".G5_IMG_URL."/level/lv_special.png' align='absmiddle' title='특별회원'>"; 
        } else { 
            $mb_point = $mb['mb_point']; 
            $point = ($mb_point < $max_point) ? $max_point : $mb_point; // 최저포인트 이하 
            $mb_level = (int)($point / $ren_point); 
            $level = ($mb_level > $max_level) ? $max_level : $mb_level; // 맥스레벨 까지만 
            $mb_icon = "<img src='".G5_IMG_URL."/level/".$level.".png' align='absmiddle' title='포인트레벨 ".$level."".number_format($mb_point)."점'>"; 
        } 
    } 
    else { 
        // 비회원 
        $mb_icon = "<img src='".G5_IMG_URL."/level/lv_guest.png' align='absmiddle' title='손님'>"; 
    } 
    return $mb_icon; 
    //echo $mb_icon; 
} 
?>

되어있는데

1000 포인트 이하 1레벨

2100 포인트 이상 2레벨

3300 포인트 이상 3레벨

4600 포인트 이상 4레벨

6000 포인트 이상 5레벨


1레벨은 재대로 적용 되는데 다른레벨도 1레벨로 아이콘이 표기 되는데 어떤게 문제인지..

초보자라 이런문의 드려서 죄송합니다.

20264455_1611602764.2568.jpg

20264455_1611602770.4469.jpg

20264455_1611598407.9219.jpg

이 질문에 댓글 쓰기 :

답변 4

$mb_icon 에서 $level 의 값이 정상 계산되어지고 있는지 확인해보시면 될듯합니다.


<?php 
if (!defined('_GNUBOARD_')) exit; 
// 포인트별 아이콘 부여 
function get_level_icon($mb_id) { 
    global $g5;     
    $max_level = 101; // 마지막레벨 
    
    $mb = get_member($mb_id, "mb_id, mb_point"); 
    $ic_mb_id = $mb['mb_id']; 
    $is_admin = is_admin($ic_mb_id); 
    if ($ic_mb_id) {         
        if ($is_admin == 'super') { 
            $mb_icon = "<img src='".G5_IMG_URL."/level/lv_admin.png' align='absmiddle' title='관리자'>";         
        } else { 
            $mb_point = $mb['mb_point']; 
            
            //if ($mb_point <= 1000) 
            if ($mb_point < 2100) 
                $mb_level = 1;
            else if ($mb_point >= 2100)
                $mb_level = 2;
            else if ($mb_point >= 3300)
                $mb_level = 3;
            else if ($mb_point >= 4600)
                $mb_level = 4;
            else if ($mb_point >= 6000)
                $mb_level = 5;
                        
            $level = ($mb_level > $max_level) ? $max_level : $mb_level;
            $mb_icon = "<img src='".G5_IMG_URL."/level/".$level.".png' align='absmiddle' title='포인트레벨 ".$level."".number_format($mb_point)."점'>"; 
        } 
    } 
    else {         
        $mb_icon = "<img src='".G5_IMG_URL."/level/lv_guest.png' align='absmiddle' title='손님'>"; 
    } 
    return $mb_icon; 
    
} 
?>

ㅠㅠ 변화가 없습니다 ㅠㅠ

outlogin/widget.php 이쪽에 혹시 문제가 있나요 ㅠㅠ;



<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 

//필요한 전역변수 선언
global $config, $member, $is_member, $urlencode, $is_admin;

// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
// add_stylesheet('<link rel="stylesheet" href="'.$widget_url.'/widget.css">', 0);

?>

<div class="f-de font-weight-normal">

    <?php if($is_member) { //Login ?>

        <div class="d-flex align-items-center mb-3">
            <div class="pr-3">
                <?php include_once G5_LIB_PATH."/level_icon.lib.php"; echo get_level_icon($member['mb_id']); ?>
            </div>
            <div class="flex-grow-1 pt-2">
                <h5 class="hide-photo mb-2">
                    <b style="letter-spacing:-1px;"><?php echo str_replace('sv_member', 'sv_member en', $member['sideview']); ?></b>
                </h5>
                <p class="f-sm">
                <?php echo ($member['mb_grade']) ? $member['mb_grade'] : $member['as_level'].'레벨'; ?>
                <?php if ($is_admin == 'super' || $member['is_auth']) { ?>
                    <span class="na-bar"></span>
                    <a href="<?php echo correct_goto_url(G5_ADMIN_URL); ?>">
                        관리자
                    </a>
                <?php } ?>
                </p>
            </div>
        </div>

            <?php 
            // 멤버쉽 플러그인    
            if(IS_NA_XP) { 
                $member['as_max'] = (isset($member['as_max']) && $member['as_max'] > 0) ? $member['as_max'] : 1;
                $per = (int)(($member['as_exp'] / $member['as_max']) * 100);
            ?>
                <div class="clearfix f-sm mt-2">
                    <span class="float-left">레벨 <?php echo $member['as_level'] ?></span>
                    <span class="float-right">
                        <a href="<?php echo G5_BBS_URL ?>/exp.php" target="_blank" class="win_point">
                            Exp <?php echo number_format($member['as_exp']) ?>(<?php echo $per ?>%)
                        </a>
                    </span>
                </div>
                <div class="progress bg-white" title="레벨업까지 <?php echo number_format($member['as_max'] - $member['as_exp']);?> 경험치 필요">
                    <div class="progress-bar progress-bar-striped" role="progressbar" aria-valuenow="<?php echo $per ?>" aria-valuemin="0" aria-valuemax="100"    style="width: <?php echo $per ?>%">
                        <span class="sr-only"><?php echo $per ?>%</span>
                            
        <?php } ?>
    </div>
</div>

            $mb_level = (int)($point / $ren_point); 
            $level = ($mb_level > $max_level) ? $max_level : $mb_level; // 맥스레벨 까지만 
삭제하고 아래코드를 넣으세요
if ($mb_point >= 6000) $level = 5;
else if ($mb_point >= 4600) $level = 4;
else if ($mb_point >= 3300) $level = 3;
else if ($mb_point >= 2100) $level = 2
else $level = 1;

 

이와같이 해서도 동일하다면 

위코드 끝에 echo $mb_point; 넣어서 포인드가 제대로 추출 되는지 확인

<?php
if (!defined('_GNUBOARD_')) exit;
// 포인트별 아이콘 부여
function get_level_icon($mb_id) {
    global $g5;
    $max_point = 1000; // 최저
    $ren_point = 1000; // 나누기
    $max_level = 101; // 마지막레벨
   
    $mb = get_member($mb_id, "mb_id, mb_point");
    $ic_mb_id = $mb['mb_id'];
    $is_admin = is_admin($ic_mb_id);
    if ($ic_mb_id) {
        // 관리자
        if ($is_admin == 'super') {
            $mb_icon = "<img src='".G5_IMG_URL."/level/lv_admin.png' align='absmiddle' title='관리자'>";
        //} else if ($ic_mb_id == 'test' || $ic_mb_id == 'test2') { // 특정회원들
        //    $mb_icon = "<img src='".G5_IMG_URL."/level/lv_special.png' align='absmiddle' title='특별회원'>";
        } else {
            $mb_point = $mb['mb_point'];
            $point = ($mb_point < $max_point) ? $max_point : $mb_point; // 최저포인트 이하
if ($mb_point >= 6000) $level = 5;
else if ($mb_point >= 4600) $level = 4;
else if ($mb_point >= 3300) $level = 3;
else if ($mb_point >= 2100) $level = 2
else $level = 1;
echo $mb_point;
            $mb_icon = "<img src='".G5_IMG_URL."/level/".$level.".png' align='absmiddle' title='포인트레벨 ".$level."".number_format($mb_point)."점'>";
        }
    }
    else {
        // 비회원
        $mb_icon = "<img src='".G5_IMG_URL."/level/lv_guest.png' align='absmiddle' title='손님'>";
    }
    return $mb_icon;
    //echo $mb_icon;
}
?>

적용 했지만 사이트 전체가 깨집니다..

echo $mb_point; <--이것을 넣었으니 당연히 정상출력은 안되는 것이구요

이 포인트 값이 제대로 찍히는지 확인하려고 넣으라는 것입니다

사이트 깨지는 것은 별개로 저렇게 해도 레벨 아이콘이 제대로 안나오나요?

포인트 값은 제대로 출력 되나요?

 

 

 

<?php
if (!defined('_GNUBOARD_')) exit;
// 포인트별 아이콘 부여
function get_level_icon($mb_id) {
    global $g5;
    $max_point = 1000; // 최저
    $ren_point = 1000; // 나누기
    $max_level = 101; // 마지막레벨
 
    $mb = get_member($mb_id, "mb_id, mb_point");
    $ic_mb_id = $mb['mb_id'];
    $is_admin = is_admin($ic_mb_id);
    if ($ic_mb_id) {
        // 관리자
        if ($is_admin == 'super') {
            $mb_icon = "<img src='".G5_IMG_URL."/level/lv_admin.png' align='absmiddle' title='관리자'>";
        //} else if ($ic_mb_id == 'test' || $ic_mb_id == 'test2') { // 특정회원들
        //    $mb_icon = "<img src='".G5_IMG_URL."/level/lv_special.png' align='absmiddle' title='특별회원'>";
        } else {
            $mb_point = $mb['mb_point'];
            $point = ($mb_point < $max_point) ? $max_point : $mb_point; // 최저포인트 이하
if ($mb_point >= 6000) $level = 5;
else if ($mb_point >= 4600) $level = 4;
else if ($mb_point >= 3300) $level = 3;
else if ($mb_point >= 2100) $level = 2
else $level = 1;
echo $mb_point;    <------ 이것을 빼거나 넣어도 그대로 입니다....... 홈페이지 자체가 깨집니다
            $mb_icon = "<img src='".G5_IMG_URL."/level/".$level.".png' align='absmiddle' title='포인트레벨 ".$level."".number_format($mb_point)."점'>";
        }
    }
    else {
        // 비회원
        $mb_icon = "<img src='".G5_IMG_URL."/level/lv_guest.png' align='absmiddle' title='손님'>";
    }
    return $mb_icon;
    //echo $mb_icon;
}
?>

답변을 작성하시기 전에 로그인 해주세요.
전체 14
QA 내용 검색

회원로그인

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