2006.4.4 수정
설명..
==========================
최종로그인을 한 뒤 3일 동안 로그인을 안했다면, 1일당 1000점씩 총 3000포인트를
회원의 현재 포인트에서 삭감합니다. 최종로그인을 했던 날과 현재 로그인을 하고 있는
당일은 제외하고 그 사이의 날들을 로그인 안 한 날들로 처리했습니다.
3일이 지났을때에만 기능이 작동합니다. $limit_day = 3 이 부분을 수정하면 몇일이 지난
경우부터 적용시킬지 정할 수가 있습니다.
현재는 1일당 1000으로 되어 있는데요. 아래 소스의 $dp = 1000; 부분을 적절히 수정하시면
1일당 삭감될 포인트값을 정의 하실 수 있습니다. 적절히 수정하시면 되겠습니다.
$dp = 100; 요렇게 바꾸시면 로그인 하루 안할때마다 포인트 100점씩 깍이겠지요.
로그인 안한 날이 너무 길어서, 삭감 처리 후 포인트 잔고가 마이너스가 되는 경우엔
포인트 초기화 지원금을 주도록 하였습니다. 현재 100포인트로 초기화 되도록 셋팅되어
있습니다. 이 부분은 $reset_point = 100; 를 적절히 수정하시면 됩니다.
현재 관리자가 아니고 랩이 7 아래일때만 적용되도록 해놓았습니다. 수정하시려면,
if (!$is_admin && $mb[mb_level] < 7 ) 이 부분을 수정하시면 됩니다.
포인트 처리사항은 포인트 내역에 기록됩니다.
※포인트가 활동에 중요한 역활을 하는 경우라면..
1.적절히 조정하지 않으면 너무 심한 압박이 될 수도 있으므로 주의해야 합니다.
2.로그인 활동이 거의 없는 회원들의 포인트가 고스란히 쌓여 있는 것에 제제를 가합니다.
-로그인 잘하는 회원보다 간혹 포인트가 더 많은 경우가 생기는 불균형.
↓작업시작
==========================
1.
extend/xxx.php라는 파일이 있다고 가정하고, 그 안에 아래 소스를 삽입하시면 되겠습니다.
아래 내용은 전체소스입니다. 필요한 부분만 취하셔도 되겠습니다.
<?
if (!defined("_GNUBOARD_")) exit; // 개별페이지 접근불가
<!--소스삽입시작-->
//로그인 안한 날들 계산하여 포인트 감소처리 - 회원전용
//사용위치는 login_check.php
//예) nologin_minus_point($mb[mb_id]);
function nologin_minus_point($mb_id) {
global $g4;
global $is_admin;
if ($mb_id) {
$mb = get_member($mb_id);
if (!$is_admin && $mb[mb_level] < 7 ) {
// 회원 최종로그인 후 몇일째인지? + 1 은 당일을 포함한다는 뜻
$sql = " select (TO_DAYS('$g4[time_ymdhis]') - TO_DAYS('$mb[mb_today_login]') + 1) as days ";
$row = sql_fetch($sql);
$mb_login_after = $row[days];
if ($mb_login_after > 1) {
// 회원 최종로그인 한 날과 당일을 제외하고 로그인 안한 날수
$not_login_days = $mb_login_after - 2;
$dp = 1000; //★1일당 감소할 포인트값(단위)
$reset_point = 100; //초기화 포인트값 (지원금)
$minus_point = $not_login_days * $dp * (-1); //1일당 -$dp씩 감소
// 잔고가 마이너스 될 경우 포인트 초기화 지원금
if (($mb[mb_point] + $minus_point) <= 0) {
$minus_point = ($mb[mb_point] * (-1)) + $reset_point; //초기화를 위한 지원금 적용
}
}
$limit_day = 3; //★몇일 로그인 안하면 적용할지 정함
if ($not_login_days >= $limit_day && $minus_point) { //
insert_point($mb[mb_id], $minus_point, "{$not_login_days}일 동안 로그인 안 해 포인트감소", '', '', ''); //포인트감소
$ment = "{$not_login_days}일 동안 로그인 활동이 없었으므로 {$minus_point}점의 포인트가 감소되었습니다.\\n\\n1) {$limit_day}일 이상일때만 적용하며, 1일당 {$dp}포인트씩 감소됩니다.\\n2) 전체포인트가 0보다 작아지면 {$reset_point}으로 자동초기화 됩니다.";
echo "<script language='JavaScript'>alert(\"{$ment}\");</script>";
}
}
}
return;
}
<!--소스삽입끝-->
?>
==========================
2.
bbs/login_check.php 화일을 여시고
제일 마지막 줄의 goto_url($link); 윗 줄즘에..
nologin_minus_point($mb[mb_id]); //★로그인 안한 날들 계산하여 포인트 삭감처리
goto_url($link);
위와 같이 삽입하시면 되겠습니다.
☆
원본 소스를 건드리고 싶지 않으시다면,
멤버스킨/login_check.skin.php 생성하여 넣으셔도 문제 없을 듯 합니다.
※로그인 채크시 한번만 적용될 것입니다.
==========================
↑작업끝
설명..
==========================
최종로그인을 한 뒤 3일 동안 로그인을 안했다면, 1일당 1000점씩 총 3000포인트를
회원의 현재 포인트에서 삭감합니다. 최종로그인을 했던 날과 현재 로그인을 하고 있는
당일은 제외하고 그 사이의 날들을 로그인 안 한 날들로 처리했습니다.
3일이 지났을때에만 기능이 작동합니다. $limit_day = 3 이 부분을 수정하면 몇일이 지난
경우부터 적용시킬지 정할 수가 있습니다.
현재는 1일당 1000으로 되어 있는데요. 아래 소스의 $dp = 1000; 부분을 적절히 수정하시면
1일당 삭감될 포인트값을 정의 하실 수 있습니다. 적절히 수정하시면 되겠습니다.
$dp = 100; 요렇게 바꾸시면 로그인 하루 안할때마다 포인트 100점씩 깍이겠지요.
로그인 안한 날이 너무 길어서, 삭감 처리 후 포인트 잔고가 마이너스가 되는 경우엔
포인트 초기화 지원금을 주도록 하였습니다. 현재 100포인트로 초기화 되도록 셋팅되어
있습니다. 이 부분은 $reset_point = 100; 를 적절히 수정하시면 됩니다.
현재 관리자가 아니고 랩이 7 아래일때만 적용되도록 해놓았습니다. 수정하시려면,
if (!$is_admin && $mb[mb_level] < 7 ) 이 부분을 수정하시면 됩니다.
포인트 처리사항은 포인트 내역에 기록됩니다.
※포인트가 활동에 중요한 역활을 하는 경우라면..
1.적절히 조정하지 않으면 너무 심한 압박이 될 수도 있으므로 주의해야 합니다.
2.로그인 활동이 거의 없는 회원들의 포인트가 고스란히 쌓여 있는 것에 제제를 가합니다.
-로그인 잘하는 회원보다 간혹 포인트가 더 많은 경우가 생기는 불균형.
↓작업시작
==========================
1.
extend/xxx.php라는 파일이 있다고 가정하고, 그 안에 아래 소스를 삽입하시면 되겠습니다.
아래 내용은 전체소스입니다. 필요한 부분만 취하셔도 되겠습니다.
<?
if (!defined("_GNUBOARD_")) exit; // 개별페이지 접근불가
<!--소스삽입시작-->
//로그인 안한 날들 계산하여 포인트 감소처리 - 회원전용
//사용위치는 login_check.php
//예) nologin_minus_point($mb[mb_id]);
function nologin_minus_point($mb_id) {
global $g4;
global $is_admin;
if ($mb_id) {
$mb = get_member($mb_id);
if (!$is_admin && $mb[mb_level] < 7 ) {
// 회원 최종로그인 후 몇일째인지? + 1 은 당일을 포함한다는 뜻
$sql = " select (TO_DAYS('$g4[time_ymdhis]') - TO_DAYS('$mb[mb_today_login]') + 1) as days ";
$row = sql_fetch($sql);
$mb_login_after = $row[days];
if ($mb_login_after > 1) {
// 회원 최종로그인 한 날과 당일을 제외하고 로그인 안한 날수
$not_login_days = $mb_login_after - 2;
$dp = 1000; //★1일당 감소할 포인트값(단위)
$reset_point = 100; //초기화 포인트값 (지원금)
$minus_point = $not_login_days * $dp * (-1); //1일당 -$dp씩 감소
// 잔고가 마이너스 될 경우 포인트 초기화 지원금
if (($mb[mb_point] + $minus_point) <= 0) {
$minus_point = ($mb[mb_point] * (-1)) + $reset_point; //초기화를 위한 지원금 적용
}
}
$limit_day = 3; //★몇일 로그인 안하면 적용할지 정함
if ($not_login_days >= $limit_day && $minus_point) { //
insert_point($mb[mb_id], $minus_point, "{$not_login_days}일 동안 로그인 안 해 포인트감소", '', '', ''); //포인트감소
$ment = "{$not_login_days}일 동안 로그인 활동이 없었으므로 {$minus_point}점의 포인트가 감소되었습니다.\\n\\n1) {$limit_day}일 이상일때만 적용하며, 1일당 {$dp}포인트씩 감소됩니다.\\n2) 전체포인트가 0보다 작아지면 {$reset_point}으로 자동초기화 됩니다.";
echo "<script language='JavaScript'>alert(\"{$ment}\");</script>";
}
}
}
return;
}
<!--소스삽입끝-->
?>
==========================
2.
bbs/login_check.php 화일을 여시고
제일 마지막 줄의 goto_url($link); 윗 줄즘에..
nologin_minus_point($mb[mb_id]); //★로그인 안한 날들 계산하여 포인트 삭감처리
goto_url($link);
위와 같이 삽입하시면 되겠습니다.
☆
원본 소스를 건드리고 싶지 않으시다면,
멤버스킨/login_check.skin.php 생성하여 넣으셔도 문제 없을 듯 합니다.
※로그인 채크시 한번만 적용될 것입니다.
==========================
↑작업끝
댓글 14개
게시글 목록
| 번호 | 제목 |
|---|---|
| 2356 | |
| 2355 | |
| 2350 | |
| 2332 | |
| 2322 | |
| 2299 | |
| 2296 | |
| 2295 | |
| 2290 | |
| 2261 | |
| 2238 | |
| 2226 | |
| 2216 | |
| 2198 | |
| 2176 | |
| 2167 | |
| 2149 | |
| 2136 | |
| 2133 | |
| 2125 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기