포인트값으로 레벨 (업/다운) 자동 변경하기 (수정2) 정보
포인트값으로 레벨 (업/다운) 자동 변경하기 (수정2)본문
=========================================================
■■ (1) 포인트값으로 레벨 (업/다운) 자동 변경하기 ■■■
=========================================================
등록일 : 2005.01.07
수정1 : 2005.01.08
수정2 : 2005.02.02 (설명보강, 기능적 내용엔 변경사항 없음)
※ 설명 :
로그인 할때 관리자가 정해 놓은 포인트에 따라, 레벨이 자동으로 변경됩니다.
현재 1~6사이의 레벨만 포인트에 따라 자동으로 레벨이 변경되게 되어 있습니다.
7이상의 레벨은 기존대로 관리자가 직접 변경해야 됩니다.
(이와 관련해서 다르게 수정하시려면 아래쪽 저의 코멘트 글을 참조하세요.)
↓작업시작
=========================================================
1.
extend 방에 xxx.php라는 임의의 화일을 만드셔서 아래 전체소스를 복사해 넣으셔도 되고,
기존에 있는 화일를 이용 하시려면, 아래 "★소스 삽입 시작~ ★소스 삽입 끝" 부분만 옮기셔도 됩니다.
아래는 전체소스입니다. ( <? 와 ?> 사이의 내용이 전체소스 )
- 화일이름은 어떤 것이든 상관없습니다.
<?
if (!defined("_GNUBOARD_")) exit; // 개별페이지 접근불가
//== ★소스 삽입 시작 ==
//포인트기준 자동레벨업
function levelup_auto($mb_id,$mb_level,$mb_point) {
global $config;
global $g4;
if ($config[cf_use_point] && $mb_id && $mb_level < 7 && $mb_point) {
if($mb_point <= 10000)
{$new_level = 2;}
else if($mb_point <= 50000)
{$new_level = 3;}
else if($mb_point <= 100000)
{$new_level = 4;}
else if($mb_point <= 300000)
{$new_level = 5;}
else if($mb_point >= 300001)
{$new_level = 6;}
if ($new_level && $mb_level != $new_level) {
// 레벨변경
mysql_query(" update $g4[member_table] set mb_level='$new_level' where mb_id='$mb_id' ");
// 포인트변경 (필요없으면 주석처리 하세요)
if ($mb_level > $new_level) {
$dw_ment = "레벨감소로 인한 위로금 100포인트를 지급했습니다.";
insert_point($mb_id, 100, "레벨감소로 인한 포인트 위로금", '', '', '');
}
// 쪽지발송 (필요없으면 주석처리 하세요)
$content ="포인트 {$mb_point}점으로 레벨이 {$mb_level}에서 {$new_level}로 변경되었습니다. $dw_ment";
$tmp_row = mysql_fetch_array(mysql_query("select max(me_id) as max_me_id from $g4[memo_table]"));
$me_ids = $tmp_row[max_me_id] + 1;
mysql_query("insert into $g4[memo_table] (me_id,me_recv_mb_id,me_send_mb_id,me_send_datetime,me_read_datetime,me_memo) values ('$me_ids','$mb_id','$mb_id','$g4[time_ymdhis]','','$content')");
mysql_query("update $g4[member_table] set mb_memo_call='$mb_id' where mb_id='$mb_id'");
}
}
}
//== ★소스 삽입 끝 ==
?>
※ 정해 놓은 포인트에 따라 레벨을 자동으로 변경시켜주는 함수입니다.
레벨변경과 함께 쪽지로 변경 사항을 본인에게 알려줍니다.
=========================================================
=========================================================
2.
bbs/login_check.php 의 제일 아래쪽 goto_url($link); 위에
levelup_auto($mb[mb_id],$mb[mb_level],$mb[mb_point]); //★포인트기준자동레벨업
삽입하시면 됩니다. 아래 예제를 참조하세요.
예제1)
levelup_auto($mb[mb_id],$mb[mb_level],$mb[mb_point]); //★포인트기준자동레벨업
goto_url($link);
※
로그인 채크할때, 작동하게 되며 로그인 채크가 끝난 뒤 적용 됩니다.
=========================================================
↑작업 끝
=========================================================
■■■ (2) 레벨 업 또는 다운 알림표시 ■■■
=========================================================
등록일 : 2005.01.08
수정1 : 2005.02.02 (설명보강, 기능적 내용엔 변경사항 없음)
※ 설명 :
포인트값으로 레벨 (업/다운) 자동 변경하기와 함께 사용하는 겁니다.
이 작업은 안하셔도 "포인트값으로 레벨 (업/다운) 자동 변경하기"의 기능에
아무런 지장이 없습니다. 선택사항입니다.
다음 로그인 할때 레벨 업 또는 다운될 꺼라는 걸 미리 알려주는 겁니다. 알려만 주는 겁니다.
따라서, 다시 로그인 해서 레벨이 변경되기 전에 스스로 먼가 조치를 취할 기회를 갖을 수 있겠습니다.
다시 로그인 할때 비로소 변경 된 레벨이 적용됩니다.. (첨부이미지 참조요)
↓작업시작
=========================================================
1.
extend 방에 xxx2.php라는 임의의 화일을 만드셔서 아래 전체소스를 복사해 넣으셔도 되고,
기존에 있는 화일를 이용 하시려면, 아래 "★소스 삽입 시작~ ★소스 삽입 끝" 부분만 옮기셔도 됩니다.
아래는 전체소스입니다. ( <? 와 ?> 사이의 내용이 전체소스 )
- 화일이름은 어떤 것이든 상관없습니다.
<?
if (!defined("_GNUBOARD_")) exit; // 개별페이지 접근불가
//== ★소스 삽입 시작 ==
//포인트기준 자동레벨업- 레벨 업 또는 다운 알림표시
//변수값으로 리턴되므로 echo로 출력하면 됩니다.
function levelup_auto_preview($mb_level,$mb_point) {
global $config;
global $g4;
if ($config[cf_use_point] && $mb_level < 7 && $mb_point) {
//포인트에 맞는 레벨찾기
if($mb_point <= 10000)
{$new_level = 2;}
else if($mb_point <= 50000)
{$new_level = 3;}
else if($mb_point <= 100000)
{$new_level = 4;}
else if($mb_point <= 300000)
{$new_level = 5;}
else if($mb_point >= 300001)
{$new_level = 6;}
//현재 포인트의 레벨미리보기
if ($mb_level < $new_level)
{return "<img src='$g4[path]/img/my_img/ico_up.gif' border=0 align=absmiddle><sup>{$new_level}</sup>";}
else if ($mb_level > $new_level)
{return "<img src='$g4[path]/img/my_img/ico_down.gif' border=0 align=absmiddle><sup>{$new_level}</sup>";}
}
}
//== ★소스 삽입 끝 ==
?>
=========================================================
=========================================================
2.
스킨폴더/outlogin.skin.2.php 의 적당한 위치에..
echo levelup_auto_preview($member[mb_level],$member[mb_point]); 또는
<?=levelup_auto_preview($member[mb_level],$member[mb_point])?> 이런 식으로
삽입해 주시면 됩니다. 아래 예제를 참조하세요.
예제1)
<b><?=$nick?></b></a><?=levelup_auto_preview($member[mb_level],$member[mb_point])?>
예제2)
<?=$member[mb_level]?><?echo levelup_auto_preview($member[mb_level],$member[mb_point]);?>
(sample1 첨부이미지 : 현재 6레벨인데 다음 로그인시 레벨 5로 다운(↓) 될꺼라는 표시죠)
(sample2 첨부이미지 : 현재 3레벨인데 다음 로그인시 레벨 5로 상승(↑) 될꺼라는 표시죠)
- 화살표 이미지화일로 첨부했습니다.
=========================================================
↑작업 끝
■■ (1) 포인트값으로 레벨 (업/다운) 자동 변경하기 ■■■
=========================================================
등록일 : 2005.01.07
수정1 : 2005.01.08
수정2 : 2005.02.02 (설명보강, 기능적 내용엔 변경사항 없음)
※ 설명 :
로그인 할때 관리자가 정해 놓은 포인트에 따라, 레벨이 자동으로 변경됩니다.
현재 1~6사이의 레벨만 포인트에 따라 자동으로 레벨이 변경되게 되어 있습니다.
7이상의 레벨은 기존대로 관리자가 직접 변경해야 됩니다.
(이와 관련해서 다르게 수정하시려면 아래쪽 저의 코멘트 글을 참조하세요.)
↓작업시작
=========================================================
1.
extend 방에 xxx.php라는 임의의 화일을 만드셔서 아래 전체소스를 복사해 넣으셔도 되고,
기존에 있는 화일를 이용 하시려면, 아래 "★소스 삽입 시작~ ★소스 삽입 끝" 부분만 옮기셔도 됩니다.
아래는 전체소스입니다. ( <? 와 ?> 사이의 내용이 전체소스 )
- 화일이름은 어떤 것이든 상관없습니다.
<?
if (!defined("_GNUBOARD_")) exit; // 개별페이지 접근불가
//== ★소스 삽입 시작 ==
//포인트기준 자동레벨업
function levelup_auto($mb_id,$mb_level,$mb_point) {
global $config;
global $g4;
if ($config[cf_use_point] && $mb_id && $mb_level < 7 && $mb_point) {
if($mb_point <= 10000)
{$new_level = 2;}
else if($mb_point <= 50000)
{$new_level = 3;}
else if($mb_point <= 100000)
{$new_level = 4;}
else if($mb_point <= 300000)
{$new_level = 5;}
else if($mb_point >= 300001)
{$new_level = 6;}
if ($new_level && $mb_level != $new_level) {
// 레벨변경
mysql_query(" update $g4[member_table] set mb_level='$new_level' where mb_id='$mb_id' ");
// 포인트변경 (필요없으면 주석처리 하세요)
if ($mb_level > $new_level) {
$dw_ment = "레벨감소로 인한 위로금 100포인트를 지급했습니다.";
insert_point($mb_id, 100, "레벨감소로 인한 포인트 위로금", '', '', '');
}
// 쪽지발송 (필요없으면 주석처리 하세요)
$content ="포인트 {$mb_point}점으로 레벨이 {$mb_level}에서 {$new_level}로 변경되었습니다. $dw_ment";
$tmp_row = mysql_fetch_array(mysql_query("select max(me_id) as max_me_id from $g4[memo_table]"));
$me_ids = $tmp_row[max_me_id] + 1;
mysql_query("insert into $g4[memo_table] (me_id,me_recv_mb_id,me_send_mb_id,me_send_datetime,me_read_datetime,me_memo) values ('$me_ids','$mb_id','$mb_id','$g4[time_ymdhis]','','$content')");
mysql_query("update $g4[member_table] set mb_memo_call='$mb_id' where mb_id='$mb_id'");
}
}
}
//== ★소스 삽입 끝 ==
?>
※ 정해 놓은 포인트에 따라 레벨을 자동으로 변경시켜주는 함수입니다.
레벨변경과 함께 쪽지로 변경 사항을 본인에게 알려줍니다.
=========================================================
=========================================================
2.
bbs/login_check.php 의 제일 아래쪽 goto_url($link); 위에
levelup_auto($mb[mb_id],$mb[mb_level],$mb[mb_point]); //★포인트기준자동레벨업
삽입하시면 됩니다. 아래 예제를 참조하세요.
예제1)
levelup_auto($mb[mb_id],$mb[mb_level],$mb[mb_point]); //★포인트기준자동레벨업
goto_url($link);
※
로그인 채크할때, 작동하게 되며 로그인 채크가 끝난 뒤 적용 됩니다.
=========================================================
↑작업 끝
=========================================================
■■■ (2) 레벨 업 또는 다운 알림표시 ■■■
=========================================================
등록일 : 2005.01.08
수정1 : 2005.02.02 (설명보강, 기능적 내용엔 변경사항 없음)
※ 설명 :
포인트값으로 레벨 (업/다운) 자동 변경하기와 함께 사용하는 겁니다.
이 작업은 안하셔도 "포인트값으로 레벨 (업/다운) 자동 변경하기"의 기능에
아무런 지장이 없습니다. 선택사항입니다.
다음 로그인 할때 레벨 업 또는 다운될 꺼라는 걸 미리 알려주는 겁니다. 알려만 주는 겁니다.
따라서, 다시 로그인 해서 레벨이 변경되기 전에 스스로 먼가 조치를 취할 기회를 갖을 수 있겠습니다.
다시 로그인 할때 비로소 변경 된 레벨이 적용됩니다.. (첨부이미지 참조요)
↓작업시작
=========================================================
1.
extend 방에 xxx2.php라는 임의의 화일을 만드셔서 아래 전체소스를 복사해 넣으셔도 되고,
기존에 있는 화일를 이용 하시려면, 아래 "★소스 삽입 시작~ ★소스 삽입 끝" 부분만 옮기셔도 됩니다.
아래는 전체소스입니다. ( <? 와 ?> 사이의 내용이 전체소스 )
- 화일이름은 어떤 것이든 상관없습니다.
<?
if (!defined("_GNUBOARD_")) exit; // 개별페이지 접근불가
//== ★소스 삽입 시작 ==
//포인트기준 자동레벨업- 레벨 업 또는 다운 알림표시
//변수값으로 리턴되므로 echo로 출력하면 됩니다.
function levelup_auto_preview($mb_level,$mb_point) {
global $config;
global $g4;
if ($config[cf_use_point] && $mb_level < 7 && $mb_point) {
//포인트에 맞는 레벨찾기
if($mb_point <= 10000)
{$new_level = 2;}
else if($mb_point <= 50000)
{$new_level = 3;}
else if($mb_point <= 100000)
{$new_level = 4;}
else if($mb_point <= 300000)
{$new_level = 5;}
else if($mb_point >= 300001)
{$new_level = 6;}
//현재 포인트의 레벨미리보기
if ($mb_level < $new_level)
{return "<img src='$g4[path]/img/my_img/ico_up.gif' border=0 align=absmiddle><sup>{$new_level}</sup>";}
else if ($mb_level > $new_level)
{return "<img src='$g4[path]/img/my_img/ico_down.gif' border=0 align=absmiddle><sup>{$new_level}</sup>";}
}
}
//== ★소스 삽입 끝 ==
?>
=========================================================
=========================================================
2.
스킨폴더/outlogin.skin.2.php 의 적당한 위치에..
echo levelup_auto_preview($member[mb_level],$member[mb_point]); 또는
<?=levelup_auto_preview($member[mb_level],$member[mb_point])?> 이런 식으로
삽입해 주시면 됩니다. 아래 예제를 참조하세요.
예제1)
<b><?=$nick?></b></a><?=levelup_auto_preview($member[mb_level],$member[mb_point])?>
예제2)
<?=$member[mb_level]?><?echo levelup_auto_preview($member[mb_level],$member[mb_point]);?>
(sample1 첨부이미지 : 현재 6레벨인데 다음 로그인시 레벨 5로 다운(↓) 될꺼라는 표시죠)
(sample2 첨부이미지 : 현재 3레벨인데 다음 로그인시 레벨 5로 상승(↑) 될꺼라는 표시죠)
- 화살표 이미지화일로 첨부했습니다.
=========================================================
↑작업 끝
추천
5
5
댓글 42개
좋은 팁 감사합니다...^^
outlogin.skin.2.php 에 levelup_auto()를 어떻게 넣는 가요.....
그냥 levelup_auto() 라고 입력하면 안되던데....
영 초보라.................죄송합니다......
그냥 levelup_auto() 라고 입력하면 안되던데....
영 초보라.................죄송합니다......
본문 내용이 수정되었으니 다시 살펴봐 주세요.
감사합니다... 그런데 레벨을 더 올리고 싶은데 어떻게 하죠 ?
7을9로 고치고 해봐도 안돼던데요...?
방법좀 부탁드립니다. ^^;;
7을9로 고치고 해봐도 안돼던데요...?
방법좀 부탁드립니다. ^^;;
★ 자동 레벨 업,다운이 적용되는 레벨범위 수정에 관하여..
만약 1~8사이의 레벨만 자동으로 변경되게 한다면요..
1.
if 문 안에 있는 $mb_level < 7 이 부분을 $mb_level < 9 이렇게 고치시구요
- 9 아래 레벨까지만 자동으로 한다는 의미겠구요.
2.
else if($mb_point >= 300001)
{$new_level = 6;}
위 부분을 제거하시고 그 자리에 아래처럼 추가 해 주셔야 겠죠.
else if($mb_point <= 500000)
{$new_level = 6;}
else if($mb_point <= 800000)
{$new_level = 7;}
else if($mb_point >= 800001)
{$new_level = 8;}
그럼 될꺼에요..
만약 1~8사이의 레벨만 자동으로 변경되게 한다면요..
1.
if 문 안에 있는 $mb_level < 7 이 부분을 $mb_level < 9 이렇게 고치시구요
- 9 아래 레벨까지만 자동으로 한다는 의미겠구요.
2.
else if($mb_point >= 300001)
{$new_level = 6;}
위 부분을 제거하시고 그 자리에 아래처럼 추가 해 주셔야 겠죠.
else if($mb_point <= 500000)
{$new_level = 6;}
else if($mb_point <= 800000)
{$new_level = 7;}
else if($mb_point >= 800001)
{$new_level = 8;}
그럼 될꺼에요..
Fatal error: Call to undefined function: levelup_auto() in /home2/도메인/www/gnu/bbs/login_check.php on line 76
로그인 하면 에러 메세지가 뜹니다.
또 스킨폴더/outlogin.skin.2.php 의 적당한 위치에
echo levelup_auto_preview($member[mb_level],$member[mb_point]);
처럼 삽입해 주시면 됩니다.
.................................... 라고 하셨는데 정말 초보라 어디부분에다가 넣어야 하는지 전혀 감이 안잡힙니다.
로그인 하면 에러 메세지가 뜹니다.
또 스킨폴더/outlogin.skin.2.php 의 적당한 위치에
echo levelup_auto_preview($member[mb_level],$member[mb_point]);
처럼 삽입해 주시면 됩니다.
.................................... 라고 하셨는데 정말 초보라 어디부분에다가 넣어야 하는지 전혀 감이 안잡힙니다.
본문 내용을 제 나름대로; 이해하기 쉽도록(?) 다시 작성해서 올렸습니다. 한번 다시 살펴보시고, 따라해 보세요. 건투를 빕니다. 꾸벅
아 감사합니다. 포기하고 있었는데 이제서야 작동하는군요.
최고관리자이름 으로부터 쪽지가 도착하였습니다. 로 바꾸려면
('$me_ids','$mb_id','$config[cf_admin]','$g4[time_ymdhis]','','$content')");
mysql_query("update $g4[member_table] set mb_memo_call='$config[cf_admin]' where mb_id='$mb_id'");
일케 하시면되요^^ 0.1원짜리팁
('$me_ids','$mb_id','$config[cf_admin]','$g4[time_ymdhis]','','$content')");
mysql_query("update $g4[member_table] set mb_memo_call='$config[cf_admin]' where mb_id='$mb_id'");
일케 하시면되요^^ 0.1원짜리팁
와우~좋은팁!
스크랩!
좋은팁 감사합니다
자동레벨업하는게 에러만 뜨고 값은 출력이 안되는데.. 아이고야..
extend.php 에[ 작업시작 1번 소스]를 넣으면 ..
----------------------------------------------------------------------------------------------------
Warning: Cannot modify header information - headers already sent by (output started at /루트/bbs/extend/extend.php:82) in /hosting/cosmos51com/bbs/head.sub.php on line 32
Warning: Cannot modify header information - headers already sent by (output started at /루트/bbs/extend/extend.php:82) in /hosting/cosmos51com/bbs/head.sub.php on line 34
Warning: Cannot modify header information - headers already sent by (output started at /루트/bbs/extend/extend.php:82) in /hosting/cosmos51com/bbs/head.sub.php on line 35
Warning: Cannot modify header information - headers already sent by (output started at /루트/bbs/extend/extend.php:82) in /hosting/cosmos51com/bbs/head.sub.php on line 36
Warning: Cannot modify header information - headers already sent by (output started at /루트/bbs/extend/extend.php:82) in /hosting/cosmos51com/bbs/head.sub.php on line 37
Warning: Cannot modify header information - headers already sent by (output started at /루트/bbs/extend/extend.php:82) in /hosting/cosmos51com/bbs/head.sub.php on line 38
----------------------------------------------------------------------------------------------------
이런 식의 에러가 매 페이지마다 생기구요...
levelup_auto_preview($member[mb_level],$member[mb_point]); 부분은 아무런 값도 출력디지 안거든요..
누구 이유를 아시는 분...
extend.php 에[ 작업시작 1번 소스]를 넣으면 ..
----------------------------------------------------------------------------------------------------
Warning: Cannot modify header information - headers already sent by (output started at /루트/bbs/extend/extend.php:82) in /hosting/cosmos51com/bbs/head.sub.php on line 32
Warning: Cannot modify header information - headers already sent by (output started at /루트/bbs/extend/extend.php:82) in /hosting/cosmos51com/bbs/head.sub.php on line 34
Warning: Cannot modify header information - headers already sent by (output started at /루트/bbs/extend/extend.php:82) in /hosting/cosmos51com/bbs/head.sub.php on line 35
Warning: Cannot modify header information - headers already sent by (output started at /루트/bbs/extend/extend.php:82) in /hosting/cosmos51com/bbs/head.sub.php on line 36
Warning: Cannot modify header information - headers already sent by (output started at /루트/bbs/extend/extend.php:82) in /hosting/cosmos51com/bbs/head.sub.php on line 37
Warning: Cannot modify header information - headers already sent by (output started at /루트/bbs/extend/extend.php:82) in /hosting/cosmos51com/bbs/head.sub.php on line 38
----------------------------------------------------------------------------------------------------
이런 식의 에러가 매 페이지마다 생기구요...
levelup_auto_preview($member[mb_level],$member[mb_point]); 부분은 아무런 값도 출력디지 안거든요..
누구 이유를 아시는 분...
한번 테스트 해봐야겠네요. ㅎ
감사합니다.
감사합니다.. header오류 나시는분은 소스마지막에 공백이 있는지 없는지 검사해보시길..
ㅇ ㅏ ~* 우 ㅔ ㄷ ㅣ 님 ㄳㄳ
테스트 합니다 감사합니다
ㅇㅇ
감사합니다. 잘 되네요. 다만 아이콘 업 다운이 표시가 되지 않는군요.
예를 들어서 1000 점이면 3으로 업될때 현재 990 점 일경우 다음번 로그인시 업될것 같으면
나타나야 하는데 현재레벨 2만 표시되고 위에처럼 아이콘들이 나타나지 않아서......
아쉽긴 하지만... 그래도 잘됩니다. 업다운 잘되고 쪽지도 잘 오고요 ^^
예를 들어서 1000 점이면 3으로 업될때 현재 990 점 일경우 다음번 로그인시 업될것 같으면
나타나야 하는데 현재레벨 2만 표시되고 위에처럼 아이콘들이 나타나지 않아서......
아쉽긴 하지만... 그래도 잘됩니다. 업다운 잘되고 쪽지도 잘 오고요 ^^
스크랩해갈께요~
감사합니다...
이거적용하자
굿입니다~
포인트
자동레벨
아주 좋네요^^ 잘 쓰겠습니다.
유요한 정보 감사합니다 ^^
좋은글 감사합니다
asdfasdfasd
감사합니다.
수정햇음
일단 적용해 볼께요
감사합니다.
감사합니다.
멋지다~
굿소스
저도 에러가 각 페이지 마다 뜨네요. 소스의 마지막 공백도 없는데 왜 그런가료?
이거 저도 에러뜹니다...
그리고 치명적인 코드의 충돌이 있는 듯 합니다...
이거 때문에 원인 모를 회원가입에러가 생기고
자동등록글방지 이미지도 엑박으로 뜨고...
홈페이지 다 말아먹을 뻔 했습니다...
3일밤낮으로 고생한 끝에 결국 원인이 이거 때문인것으로 깨달았습니다...
사용하지 않길 권고합니다... ;;;
그리고 치명적인 코드의 충돌이 있는 듯 합니다...
이거 때문에 원인 모를 회원가입에러가 생기고
자동등록글방지 이미지도 엑박으로 뜨고...
홈페이지 다 말아먹을 뻔 했습니다...
3일밤낮으로 고생한 끝에 결국 원인이 이거 때문인것으로 깨달았습니다...
사용하지 않길 권고합니다... ;;;
감사합니다
감사합니다. ^^ 오류없이 잘 작동되네요. 하지만 자동레벨에 오류가 있는지 일부 유저분들은 자동레벨업이 안된다네요.
적용완료.
오..포인트 레벨업!!