기능

메달시스템 모듈 다음달 예상메달 본인에게 보여주기

by 꿀팁관리소장 posted Dec 18, 2020
Extra Form
추천지수 6

먼저 라이믹스 사이트에 전월 활동지수를 기준으로 메달을 지급할 수 있는 모듈이 공개된 소식을 전해드렸습니다.

 

https://rxtip.kr/rx_story/2714

 

 

매월 새로운 매달을 받기 위해 나름 활동의 동기를 부여해 줄 수 있는 모듈입니다. 

이번 달 활동 지수는 다음달 받게 되는 메달을 결정하기 때문에 내가 지금 얼마나 열심히해서 다음달에 어떤 메달을 받을지 궁금한 회원들이 있을 겁니다. 이것을 본인에게만 공개를 해 줬을때 득과 실이 있겠지만 개인적으로는 득이 조금 더 클 것 같아 구현했습니다.

 

 

next_medal.png

 

이렇게 다음 달 백금메달 받을 정도의 순위에 있다고 알려줄 수 있으니 더 좋은 메달인 다이아몬드를 받고 싶다면 더 노력해야 한다는 것을 바로 알 수 있는 것이죠.

 

 

 

회원정보를 보여주는 member  모듈에 사용하는 스킨 member_info.html 파일이 저 화면을 출력하는 담당을 합니다. 이 파일에 다음달 예상 메달 부분을 추가해 줍니다.

 

 

파일을 열어서 상단에 이번달 현재 지금 조회하는 순간 까지 활동지수 랭킹순위를 불러오는 코드를 넣어 줍니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<!--@if($memberInfo['member_srl'] == $logged_info->member_srl || $logged_info->is_admin == 'Y')-->
{@
$config=getModel('experience')->getConfig();
$Month = date('Ym');
$args = new stdClass();
$args->regdate = $Month;
$args->exception_member = $config->exception_member;
$args->list_count = $config->medal_bronze;
$MonthOutput = executeQuery('experience.getMonthRank', $args);
 
$rank_list=array();
$rankCount=0;
}
<!--@foreach($MonthOutput ->data as $key=>$val)-->
{@
    array_push($rank_list, (string)$val->member_srl);
    $rankCount++;
}
<!--@end-->
{@
$total_list = $rank_list;
$diamond = $rank_list;
$platinum = $rank_list;
$gold = $rank_list;
$silver = $rank_list;
$bronze = $rank_list;
$diamond_num = $config->medal_diamond;
$plat_num = $config->medal_platinum;
$gold_num = $config->medal_gold;
$silver_num = $config->medal_silver;
$bronze_num = $config->medal_bronze;
$diamond = array_splice($diamond, 0,$diamond_num);
$platinum = array_splice($platinum, $diamond_num,$plat_num - $diamond_num);
$gold = array_splice($gold, $plat_num,$gold_num - $plat_num);
$silver = array_splice($silver, $gold_num,$silver_num - $gold_num);
$bronze = array_splice($bronze, $silver_num,$bronze_num - $silver_num);
$total_list = array_splice($total_list, 0,$bronze_num);
}
<!--@end-->

 

 

 

그리고 회원정보를 출력해주는 적당 한 곳에 메달 정보를 출력하는 코드를 넣어줍니다.

 

1
2
3
4
5
6
7
8
9
<tr cond="$memberInfo['member_srl'] == $logged_info->member_srl || $logged_info->is_admin == 'Y'">
<th>다음달 예상 메달</th>
<td><!--@if($diamond && in_array((string)$memberInfo['member_srl'] ,$diamond))--><img src="/modules/experience/tpl/modules/experience/medal/default/diamond.png" style="vertical-align: middle;" title="다이아몬드 메달"> : 다이아몬드 메달<!--@end-->
<!--@if($platinum && in_array((string)$memberInfo['member_srl'] ,$platinum))--><img src="/modules/experience/tpl/modules/experience/medal/default/platinum.png" style="vertical-align: middle;" title="백금메달"> : 백금메달<!--@end-->
<!--@if($gold && in_array((string)$memberInfo['member_srl'] ,$gold))--><img src="/modules/experience/tpl/modules/experience/medal/default/gold.png" style="vertical-align: middle;" title="금메달"> : 금메달<!--@end-->
<!--@if($silver && in_array((string)$memberInfo['member_srl'] ,$silver))--><img src="/modules/experience/tpl/modules/experience/medal/default/silver.png" style="vertical-align: middle;" title="은메달"> : 은메달<!--@end-->
<!--@if($bronze && in_array((string)$memberInfo['member_srl'] ,$bronze))--><img src="/modules/experience/tpl/modules/experience/medal/default/bronze.png" style="vertical-align: middle;" title="동메달"> : 동메달<!--@end-->
<!--@if($total_list && !in_array((string)$memberInfo['member_srl'], $total_list))-->메달을 받지 못하실 수 있습니다.<!--@end--></td>
</tr>

 

 

요렇게 해주면 모듈에 설정해 놓은 메달 기준에 맞게 다음달 예상 메달을 보여주게 됩니다.

 


Articles

1 2 3 4
서버에 요청 중입니다. 잠시만 기다려 주십시오...

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5