댓글(코멘트)입력란에 경험치 게이지가 정상적으로 표시가 되지않네요;;; > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

댓글(코멘트)입력란에 경험치 게이지가 정상적으로 표시가 되지않네요;;; 정보

댓글(코멘트)입력란에 경험치 게이지가 정상적으로 표시가 되지않네요;;;

본문

원인은 뭐가 문제인거는 알겠는데;;;해결 방법을 모르겠습니다;;;;

게시판상단에 작성자의 레벨아이콘과 경험치는 잘나오는데

문제는 아래의 댓글부분인데 각 회원의 이미지까지는 정상적으로 나오는데 경험치 게이지가...일단

<?=exp_bar($list[$i][mb_id],$mb[mb_point],1);?>

이부분에서 앞의 아이디값은 정상적으로 잘 불러오는데 뒤의 포인트값을 정상적으로 불러오지못하네요;;;
아무리 변수를 바꾸어봐도....되지가않습니다....ㅠ.ㅠ
지금 저렇게하면 글작성자의 포인트값만 불러오네요;;댓글작성자의 포인트값을 전혀 불러오지못하고있네요;;;

물론 해당 파일 상단에

if ($write[wr_id]) { //레벨 아이콘 표시 시작
              $mb = get_member($write[mb_id]);
}
$level = get_member_level($mb['mb_id'],$mb['mb_point']); //레벨 아이콘 표시 끝

는 넣었구요;;;;;;;

왜 이상하게 자꾸.....글 작성자의 포인트값은 잘 불러와지는데;;;;댓글작성자의 포인트값을 가지고오지못할까요...ㅠ.ㅠ
혼자서 끙끙되다가 결국 이렇게 질문글을 적게되네요..ㅠ.ㅠ

참고로 작성자 양계닭은 현재 슈퍼어드민 계정이고...경험치 23%는 맞는 값입니다(.....)
1000포인트마다 레벨업을 하게 설정이되어있거든요-ㅁ-;;;;

포인트가 1,231점이니까....23%맞습니다(....)원래 관리자계정은 경험치게이지가 표시되지않아야하는데^^;;;;게시글 본문에서는 잘표시가 되는데;;;;;
댓글부분에서는 적나라(???)하게 포인트가 나오는군요;;;;

댓글 전체

if ($write[wr_id]) { //레벨 아이콘 표시 시작
              $mb = get_member($write[mb_id]);
}

$write[wr_id]는 수정글일때만 저런 변수가 생깁니다.
댓글부분 경험치 표시 부분에

if ($list[$i][mb_id]) { //레벨 아이콘 표시 시작
              $mb = get_member($list[$i][mb_id]);
}
$level = get_member_level($mb['mb_id'],$mb['mb_point']); //레벨 아이콘 표시 끝

로 변경해보세요
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

if ($list[$i][mb_id]) { //레벨 아이콘 표시 시작
              $mb = get_member($list[$i][mb_id]);
}
$level = get_member_level($mb['mb_id'],$mb['mb_point']); //레벨 아이콘 표시 끝

include_once("$g4[path]/head.sub.php");
include_once("$g4[path]/lib/thumb.lib.php");
?>

<table width=660 cellpadding=0 cellspacing=0 border=0>
<tr>
    <td valign=top><? for ($k=0; $k<strlen($list[$i][wr_comment_reply]); $k++) echo "<img src='$board_skin_path/img/icon_reply.gif'>"?></td
   
    ><td valign=top>
    <? if($mb[mb_level] < 2) {
echo "<img src='$board_skin_path/img/guest.jpg' Width='73' height='73'  >";
} else {
$mb_icon = "";
$mb_dir = substr($list[$i][mb_id],0,2);
$icon_file = "$g4[path]/data/member/$mb_dir/{$list[$i][mb_id]}.gif";
if (file_exists($icon_file)) {
$mb_thumb = thumbnail($icon_file , 73,73,0,0,100);
echo "<img src='$mb_thumb'  width='73' height='73'    >";
} else {
echo "<img src='$board_skin_path/img/noimg.gif' width='73' height='73'  >";
}
}
?>   
<?=$mb_icon?>

      <table border=0 cellpadding=0 cellspacing=0 width=580>
                <tr>
        <tr>       
            <td  height="80"colspan=2 rowspan="3"></td>
        </tr>

            <td valign=top>
                <div style="height:28px; background:url(<?=$board_skin_path?>/img/co_title_bg.gif);">
                <div style="float:left;">
                <strong><?=level_icon($list[$i][mb_id])?><?=$list[$i][name]?></strong>
                <span style="color:#888888; font-size:11px;"><?=$list[$i][datetime]?></span>
                </div>
                <div style="float:left; padding-left:10px;">
<?=exp_bar($list[$i][mb_id],$mb[mb_point],1);?><?=$list[$i][mb_point]?></div>
                <div style="float:right;">

이렇게하면되나요?

그냥 아예 파일을 첨부할려고했는데 게시글이 수정이안되네요..ㅠ.ㅠ
extend.level.php파일의 내용입니다;;

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

function get_member_level($mb_id,$mb_point) {
    global $g4;

$is_admin = is_admin($mb_id);
$point = $mb_point;
$level = ceil($point / 1000); //반올림을 하여 레벨을 구함.
if($mb_id)if($level <= 1) $level = 1; // 위 반올림에서 렙1미만 회원에게 레벨1을 줌, (비회원은 0)
if ($level > 97) $level = 97; // 최대 레벨 설정
if($is_admin == 'super') $level = 99; //관리자는 최고 레벨
$no = sprintf("%03d", $level);
return ;
}

//포인트 상태바
function exp_bar($mb_id,$mb_point,$option) {
global $g4;

$is_admin = is_admin($mb_id);
$point = $mb_point;
$level = ceil($point / 1000); //반올림을 하여 레벨을 구함.
if($mb_id)if($level <= 1){$level = 1;} // 반올림에서 렙1미만 회원에게 레벨1을 줌, (비회원은 0)
if ($level > 97){$level = 97;} //최대 레벨 설정
if($is_admin == 'super'){$level = 99;} //관리자는 최고 레벨
$no = sprintf("%03d", $level);
$max = $level * 1000;
if(!$level){$max=1000; $a_max=1000; $a_min=0;}else{$a_max = (int)($max / $level);$a_min = (int)($point - (1000 * ($level-1)));} //레벨이 없으면 최대값, 있으면 레벨에 맞는 최대값을 구함

if($is_admin == 'super'){$max=1000; $a_max=1000; $a_min=0;} //관리자는 기본세팅

    $bar = (int)($a_min / $a_max * 100);
if($bar > 100) $bar = 0;
        $graph = $bar."%"; //등급, 경험치바 표시
if($level == 0){$level = "--";} // 레벨값을 이용해 레벨대신 표시
//if($level == 60){$level = "admin";} // 레벨값을 이용해 레벨대신 표시

if($option == 1){
echo "<table border='0' cellspacing='0' cellpadding='0'><tr><td><table width='62' border='0' cellspacing='0' cellpadding='0' background='$g4[path]/img/exp_bar.gif'><tr height='1'><td colspan='3'></td></tr><tr height='5'><td width='1'></td><td width='60'><img src='$g4[path]/img/exp_in.gif' width='$graph' height='5'></td><td width='1'></td></tr><tr height='1'><td colspan='3'></td></tr></table></td><td>&nbsp;<span style='color:#479b11; font-size:10px; font-family:돋음; vertical-align:1px;'><span style='font-size:11px;font-weight:bold;'></span>Exp: $graph</span><td></tr></table>";
}
}

?>
음??지금 방금 포함된 소스에 다 들어가있어요....모두 포함되어있습니다;;;

extend.level.php파일에서 먼저 읽어들인후에

  <div style="float:left; padding-left:10px;">
<?=exp_bar($list[$i][mb_id],$mb[mb_point],1);?><?=$list[$i][mb_point]?></div>
                <div style="float:right;"> 이걸로 뿌려주거든요.......

<?=$list[$i][mb_point]?><-이부분은 그냥 출력여부를 확인하기위해서 넣어두었습니다.

<?=exp_bar($list[$i][mb_id],$mb[mb_point],1);?><-이부분이 경험치바 출력함수입니다.

exp_bar의 값은 extend.level.php여기서 가져오구요...
if ($list[$i][mb_id]) { //레벨 아이콘 표시 시작
              $mb = get_member($list[$i][mb_id]);
}


이것을..

<div style="float:left; padding-left:10px;">
<?=exp_bar($list[$i][mb_id],$mb[mb_point],1);?><?=$list[$i][mb_point]?></div>
                <div style="float:right;">


여기 상단에 넣어주세요.
아;;;정말 감사합니다...이렇게하니까...되네요;;;저 정말 죄송하지만...

왜 값을 못가져왔는지......원인을 알려줄수 없을까요;;;;

원인이 뭐고 왜 이렇게해서 해결이됬는지 좀 알려주세요;;이부분은 좀 무리일려나요;;;
상단에


if ($list[$i][mb_id]) { //레벨 아이콘 표시 시작
              $mb = get_member($list[$i][mb_id]);
}

를 넣으시면

$list 루프가 돌지 않아서 저 값이 존재할 수가 없죠

exp_bar는 아이디와 포인트를 필요로 하는 함수인데

일반적으로 $list에 글쓴이 아이디는 저장을 하지만
글쓴이의 포인트는 저장하지 않죠

그래서  $mb = get_member($list[$i][mb_id]);  요 함수로 포인트를 가져오는겁니다

루프가 도는곳 안에 $list[$i][mb_id]가 존재하겠죠?

루프밖에있으면 아무 의미가없습니다
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

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