회원 레벨별 포인트 % 추가지급 > 그누4 플러그인

그누4 플러그인

그누보드에는 여러가지 기능 추가가 쉽도록 제작 되었습니다.
플러그인의 저작권은 해당 플러그인 제작자님께 있으며, 그누보드의 저작권과 다를 수 있습니다.
플러그인 다운로드시 좋아요와 감사의 코멘트를 남기시면 제작자에게 큰 힘이됩니다. ^^y

회원 레벨별 포인트 % 추가지급 정보

회원 레벨별 포인트 % 추가지급

본문

회원 에게 포인트 지급시 레벨별로 %를 지정하여 그만큼 추가로 더 주는 기능입니다.

플러그인에 올릴까 팁에 올릴까 하다 플러그인에 올립니다.

30분 작업한거라 조잡할수도 있습니다.

PS. 그누보드 DTD 버젼으로 작업한 것이므로 테이블은 맞춰서 사용하시면 됩니다.

===== 사용법

1. 테이블 생성 - phpMyAdmin 으로 접근하여아래 코드를 실행 합니다

ALTER TABLE `g4_config` ADD `cf_level_point_use` INT( 1) NOT NULL ,
 ADD `cf_level_point2` INT( 3) NOT NULL ,
 ADD `cf_level_point3` INT( 3) NOT NULL ,
 ADD `cf_level_point4` INT( 3) NOT NULL ,
 ADD `cf_level_point5` INT( 3) NOT NULL ,
 ADD `cf_level_point6` INT( 3) NOT NULL ,
 ADD `cf_level_point7` INT( 3) NOT NULL ,
 ADD `cf_level_point8` INT( 3) NOT NULL ,
 ADD `cf_level_point9` INT( 3) NOT NULL


ALTER TABLE `g4_point` ADD `pr_per_content` VARCHAR( 255) NOT NULL

=> config 테이블과 point 테이블에 칼럼을 추가 합니다.



2.  /adm/config_form.php 파일의 적절한 위치에 아래 코드를 넣습니다

<?php echo subtitle("레벨별 포인트 설정")?>
<table class="normal2">
<tr>
<th scope="col" width="20%">레벨별 포인트 사용</th>
<td colspan="3" width="80%"><input type='checkbox' name='cf_level_point_use' value='1' <?php echo $config['cf_level_point_use']?"checked='checked'":"";?> /> 사용 (체크하지 않으면 레벨별 포인트를 사용하지 않습니다.)</td>
</tr>
<tr>
<th scope="col" width="20%">2레벨</th>
<td  width="30%"><input type='text' name='cf_level_point2' size='2' class='text' value='<?php echo get_text($config["cf_level_point2"])?>' title='2레벨포인트' style='text-align:right;font-weight:bold;' />%</td>
<th scope="col">3레벨</th>
<td width="30%"><input type='text' name='cf_level_point3' size='2' class='text' value='<?php echo get_text($config["cf_level_point3"])?>' title='3레벨포인트' style='text-align:right;font-weight:bold;' />%</td>
</tr>
<tr>
<th scope="col" width="20%">4레벨</th>
<td width="30%"><input type='text' name='cf_level_point4' size='2' class='text' value='<?php echo get_text($config["cf_level_point4"])?>' title='4레벨포인트' style='text-align:right;font-weight:bold;' />%</td>
<th scope="col">5레벨</th>
<td width="30%"><input type='text' name='cf_level_point5' size='2' class='text' value='<?php echo get_text($config["cf_level_point5"])?>' title='5레벨포인트' style='text-align:right;font-weight:bold;' />%</td>
</tr>
<tr>
<th scope="col" width="20%">6레벨</th>
<td width="30%"><input type='text' name='cf_level_point6' size='2' class='text' value='<?php echo get_text($config["cf_level_point6"])?>' title='6레벨포인트' style='text-align:right;font-weight:bold;' />%</td>
<th scope="col">7레벨</th>
<td width="30%"><input type='text' name='cf_level_point7' size='2' class='text' value='<?php echo get_text($config["cf_level_point7"])?>' title='7레벨포인트' style='text-align:right;font-weight:bold;' />%</td>
</tr>
<tr>
<th scope="col" width="20%">8레벨</th>
<td width="30%"><input type='text' name='cf_level_point8' size='2' class='text' value='<?php echo get_text($config["cf_level_point8"])?>' title='8레벨포인트' style='text-align:right;font-weight:bold;' />%</td>
<th scope="col">9레벨</th>
<td width="30%"><input type='text' name='cf_level_point9' size='2' class='text' value='<?php echo get_text($config["cf_level_point9"])?>' title='9레벨포인트' style='text-align:right;font-weight:bold;' />%</td>
</tr>
</table>

3. /lib/common.lib.php 의 insert_point 함수에 아래 내용을 수정/ 추가합니다.

    // 포인트 건별 생성
    $sql = " insert into $g4[point_table]
                set mb_id = '$mb_id',
                    po_datetime = '$g4[time_ymdhis]',
                    po_content = '".addslashes($content)."',
                    po_point = '$point',
                    po_rel_table = '$rel_table',
                    po_rel_id = '$rel_id',
                    po_rel_action = '$rel_action' ";
    sql_query($sql);

=>


// 레벨별 포인트 % 처리
if($config[cf_level_point_use] == 1){
if($member[mb_level] >=2 && $member[mb_level] <= 9){
$mem_per_point = $config['cf_level_point'.$member[mb_level]]; // 회원 레벨별 필드 가져오기
if($mem_per_point) $per_point = floor(($point /100) * $mem_per_point); // 추가금액
$pr_per_content = "기본포인트 : ".$point." / 레벨별포인트 : ".$mem_per_point."% 추가 - ".$per_point;
$point += $per_point;
$pr_query = "pr_per_content = '$pr_per_content',";
}
}

    // 포인트 건별 생성
    $sql = " insert into $g4[point_table]
                set mb_id = '$mb_id',
                    po_datetime = '$g4[time_ymdhis]',
                    po_content = '".addslashes($content)."',
                    po_point = '$point',
    $pr_query
                    po_rel_table = '$rel_table',
                    po_rel_id = '$rel_id',
                    po_rel_action = '$rel_action' ";
    sql_query($sql);



위와같이 하시고 관리자 환경설정 - 기본 환경 설정 들어가셔서

레벨별 퍼센트를 지정해 주신후 게시글 등록 등으로 테스트 해보시면 됩니다.

필요하신 분들은 많이 사용해 주세요.~
추천
4

댓글 전체

좋아요.!


/adm/config_form_update.php 117번 라인에 추가 및 수정이요.

                cf_10                  = '$_POST[cf_10]',
                cf_level_point_use      = '$_POST[cf_level_point_use]',
                cf_level_point2        = '$_POST[cf_level_point2]',
                cf_level_point3        = '$_POST[cf_level_point3]',
                cf_level_point4        = '$_POST[cf_level_point4]',
                cf_level_point5        = '$_POST[cf_level_point5]',
                cf_level_point6        = '$_POST[cf_level_point6]',
                cf_level_point7        = '$_POST[cf_level_point7]',
                cf_level_point8        = '$_POST[cf_level_point8]',
                cf_level_point9        = '$_POST[cf_level_point9]' ";

이거 추가안하면 작동 안하는..!!
/lib/common.lib.php
파일의
insert_point 함수안에

global $member; <= 이게 없다면 추가해주시면 됩니다

해보고 안되시면 다시 말해주세요.~
적용은 잘되는데...포인트 상점에서 물건 사면 추가 포인트 % 만큼 더 깎이네요.

예를 들어 레벨 4 에 추가 포인트 20% 주었고,

포인트 상점에서 20,000 포인트짜리 물건을 사면 24,000 포인트가 결제되네요.

어떻게 방법이 없을까요.
해당 경우에는 $content 값으로 예외처리를 하시는것이 편합니다
if($content != "특정값"){ 예외부분을 포인트퍼센트 추가하는 옵션 위에 넣어주시면 됩니다.
전체 3,524 |RSS
그누4 플러그인 내용 검색

회원로그인

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