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

레벨 아이콘 이미지 출력 채택완료

킹스맨 4년 전 조회 3,401

</p>

<p><?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; 

} 

?> </p>

<p>

 

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

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

20264455_1611602764.2568.jpghttps://sir.kr/data/editor/2101/20264455_1611602764.2568.jpg" />

20264455_1611602770.4469.jpghttps://sir.kr/data/editor/2101/20264455_1611602770.4469.jpg" />

https://sir.kr/bbs/view_image.php?fn=https%3A%2Fdata%2Feditor%2F2101%2F20264455_1611598407.9219.jpg" target="_blank">20264455_1611598407.9219.jpghttps://sir.kr/data/editor/2101/20264455_1611598407.9219.jpg" />

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

답변 6개

채택된 답변
+20 포인트
ifelse
4년 전
$mb_level = (int)($point / $ren_point); 

 

1300 EXP 니까 1.3이 나오고 int선언하니까 1이 나오는게 맞습니다.

ceil로 올림처리 하시거나 +1을 해주시는 형태로 변경하셔야 원하시는

형태가 될것 같습니다

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 7개

하찌
4년 전
이게 맞네요!
킹스맨
4년 전
.. 어떻게 수정하면 되는건가요 ㅠㅠ 정말 초보자라 모르겠네요 ㅠㅠ
진짜.. 다입력 해봤는데 ...
킹스맨
4년 전
해당 부분을 그러면 어떻게 수정 해야 옳은가요...
킹스맨
4년 전
+1처리는 어떻게 하나요? ceil 하니깐 2레벨은 정상 표기 됬는데 3레벨은 또 2레벨로 표기가 됩니다. ㅠㅠ
킹스맨
4년 전
정말 감사합니다 해결 됬습니다 너무 감사합니다... 2일간 고생했는데 드디어 정상 적용 됬습니다
킹스맨
4년 전
저 혹시 지금 저게 포인트인데 경험치로 바꿀려면 어떻게 하죠?
그냥 point 부분을 전부 exp로 변경하면될까요?
i
ifelse
4년 전
아까 잠깐 올렸던 소스면 문제있는 소스입니다.
다시 드릴게요 쪽지 주세요
정보공개 안되어있으셔서 쪽지 안가지십니다
풀고 쪽지주세요

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

4년 전

이게 2100입니다

로그인 후 평가할 수 있습니다

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

4년 전

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

i
ifelse
4년 전
2100이 2레벨인지 3레벨인지 알려주셔야죠-.-
2,3둘다에 걸쳐있잖아요 ㅜㅜ

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

4년 전

로그인 후 평가할 수 있습니다

답변에 대한 댓글 4개

i
ifelse
4년 전
2100점이 2레벨이예요? 3레벨이예요?
최소하고 최대에 다 포함되어있는데..
이상인지 초과인지 미만인지 이하인지...
킹스맨
4년 전
3레벨로 표기 됩니다. 2600점인데
i
ifelse
4년 전
2100점이요
킹스맨
4년 전
2레벨 이네요 근데 3레벨계급으로 표기가 됩니다.

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

4년 전

</p>

<p><?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 >= 606000) $level = 101;

            else if ($mb_point >= 595000) $level = 100;

            else if ($mb_point >= 584100) $level = 99;

            else if ($mb_point >= 573300) $level = 98;

            else if ($mb_point >= 562600) $level = 97;

            else if ($mb_point >= 552000) $level = 96;

            else if ($mb_point >= 541500) $level = 95;

            else if ($mb_point >= 531100) $level = 94;

            else if ($mb_point >= 520800) $level = 93;

            else if ($mb_point >= 510600) $level = 92;

            else if ($mb_point >= 500500) $level = 91;

            else if ($mb_point >= 490500) $level = 90;

            else if ($mb_point >= 490500) $level = 89;

            else if ($mb_point >= 470800) $level = 88;

            else if ($mb_point >= 461100) $level = 87;

            else if ($mb_point >= 451500) $level = 86;

            else if ($mb_point >= 442000) $level = 85;

            else if ($mb_point >= 432600) $level = 84;

            else if ($mb_point >= 423300) $level = 83;

            else if ($mb_point >= 423300) $level = 82;

            else if ($mb_point >= 405000) $level = 81;

            else if ($mb_point >= 396000) $level = 80;

            else if ($mb_point >= 387100) $level = 79;

            else if ($mb_point >= 378300) $level = 78;

            else if ($mb_point >= 369600) $level = 77;

            else if ($mb_point >= 361000) $level = 76;

            else if ($mb_point >= 352500) $level = 75;

            else if ($mb_point >= 344100) $level = 74;

            else if ($mb_point >= 335800) $level = 73;

            else if ($mb_point >= 327600) $level = 72;

            else if ($mb_point >= 319500) $level = 71;

            else if ($mb_point >= 311500) $level = 70;

            else if ($mb_point >= 303600) $level = 69;

            else if ($mb_point >= 295800) $level = 68;

            else if ($mb_point >= 288100) $level = 67;

            else if ($mb_point >= 280500) $level = 66;

            else if ($mb_point >= 273000) $level = 65;

            else if ($mb_point >= 265600) $level = 64;

            else if ($mb_point >= 258300) $level = 63;

            else if ($mb_point >= 251100) $level = 62;

            else if ($mb_point >= 244000) $level = 61;

            else if ($mb_point >= 237000) $level = 60;

            else if ($mb_point >= 230100) $level = 59;

            else if ($mb_point >= 223300) $level = 58;

            else if ($mb_point >= 216600) $level = 57;

            else if ($mb_point >= 210000) $level = 56;

            else if ($mb_point >= 203500) $level = 55;

            else if ($mb_point >= 197100) $level = 54;

            else if ($mb_point >= 190800) $level = 53;

            else if ($mb_point >= 184600) $level = 52;

            else if ($mb_point >= 178500) $level = 51;

            else if ($mb_point >= 172500) $level = 50;

            else if ($mb_point >= 166600) $level = 49;

            else if ($mb_point >= 160800) $level = 48;

            else if ($mb_point >= 155100) $level = 47;

            else if ($mb_point >= 149500) $level = 46;

            else if ($mb_point >= 144000) $level = 45;

            else if ($mb_point >= 138600) $level = 44;

            else if ($mb_point >= 133300) $level = 43;

            else if ($mb_point >= 128100) $level = 42;

            else if ($mb_point >= 123000) $level = 41;

            else if ($mb_point >= 118000) $level = 40;

            else if ($mb_point >= 113100) $level = 39;

            else if ($mb_point >= 108300) $level = 38;

            else if ($mb_point >= 103600) $level = 37;

            else if ($mb_point >= 99000) $level = 36;

            else if ($mb_point >= 94000) $level = 35;

            else if ($mb_point >= 90000) $level = 34;

            else if ($mb_point >= 85000) $level = 33;

            else if ($mb_point >= 81600) $level = 32;

            else if ($mb_point >= 77500) $level = 31;

            else if ($mb_point >= 73500) $level = 30;

            else if ($mb_point >= 69600) $level = 29;

            else if ($mb_point >= 65800) $level = 28;

            else if ($mb_point >= 62100) $level = 27;

            else if ($mb_point >= 58500) $level = 26;

            else if ($mb_point >= 55000) $level = 25;

            else if ($mb_point >= 51600) $level = 24;

            else if ($mb_point >= 48300) $level = 23;

            else if ($mb_point >= 45100) $level = 22;

            else if ($mb_point >= 42000) $level = 21;

            else if ($mb_point >= 39000) $level = 20;

            else if ($mb_point >= 36100) $level = 19;

            else if ($mb_point >= 33300) $level = 18;

            else if ($mb_point >= 30600) $level = 17;

            else if ($mb_point >= 28000) $level = 16;

            else if ($mb_point >= 25500) $level = 15;

            else if ($mb_point >= 23100) $level = 14;

            else if ($mb_point >= 20800) $level = 13;

            else if ($mb_point >= 18600) $level = 12;

            else if ($mb_point >= 16500) $level = 11;

            else if ($mb_point >= 14500) $level = 10;

            else if ($mb_point >= 12600) $level = 9;

            else if ($mb_point >= 10800) $level = 8;

            else if ($mb_point >= 9100) $level = 7;

            else if ($mb_point >= 7500) $level = 6;

            else 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 if ($mb_point >= 4600) $level = 4;

            else if ($mb_point >= 3300) $level = 3;

            else if ($mb_point >= 2100) $level = 2;

            else $level = 1;

            $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;

}

?></p>

<p>

 

하... 다 넣어봤지만... 이번에는 깨지지는않는데 변화가 없네요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

냑냑
4년 전
코드 짜신걸 보면 회원 포인트가 2100 이상 이면 레벨 2를 주게 해놨는데 현재 로그인 한 회원은 1300포인트죠? 그럼 레벨이 1이니깐 변화가 없는거고요

1000점대 2레벨
2000점대 3레벨
4000점대 4레벨로 변경하시려면

$mb_level = (int)($point / $ren_point); <-- 이 부분을 아래껄로 변경하세요
$mb_level = (int)ceil($point / $ren_point);
i
ifelse
4년 전
본문에 올려주신 소스랑 이 댓글에 소스랑 기준점이 틀린데요
어떤 소스랑 기준점으로 쓰실려고 하는지 모르겠네요
1레벨 기준점이 몇인가요? 2레벨~101레벨의 기준점은 몇인가요?
소스가 좀 섞어지신것 같은데... 1000~2100점 사이 회원이 붕 뜨는 문제도있고..
소스중간중간 불필요한 것들도 있고..2번 elseif 된것도 있고...;;

하고자 하는 기준을 명확하게 말씀해주시면 답을 드릴 수 있을 것 같습니다.
킹스맨
4년 전
+1처리는 어떻게 하나요? ceil 하니깐 2레벨은 정상 표기 됬는데 3레벨은 또 2레벨로 표기가 됩니다. ㅠㅠ

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

4년 전

소스에는 전혀 문제가 없고요

 

추측으론 이미지 경로 문제거나

 

저 함수를 불러오는 곳이 잘못될 가능성이 큽니다

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

킹스맨
4년 전
로그인 위젯 입니다
근데 이게 로그인 위젯 뿐이 아니라 게시판에서도 레벨 아이콘이 변경이 없습니다

<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>

<div class="btn-group w-100" role="group" aria-label="Member Menu">
<a href="javascript:;" onclick="sidebar('user')" class="btn btn-primary text-white" role="button">
내정보
</a>
<a href="javascript:;" onclick="sidebar('noti')" class="btn btn-primary text-white" role="button">
<i class="fa fa-bell" aria-hidden="true"></i>
<span class="sr-only">알림</span>
<span class="nt-noti-label<?php echo ($member['noti_cnt']) ? '' : ' d-none';?>">
<b class="nt-noti-cnt"><?php echo number_format($member['noti_cnt']) ?></b>
</span>
</a>
<a href="<?php echo G5_BBS_URL ?>/logout.php" class="btn btn-primary text-white" role="button">
로그아웃
</a>
</div>

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

답변을 작성하려면 로그인이 필요합니다.

로그인