먼저 라이믹스 사이트에 전월 활동지수를 기준으로 메달을 지급할 수 있는 모듈이 공개된 소식을 전해드렸습니다.
https://rxtip.kr/rx_story/2714
매월 새로운 매달을 받기 위해 나름 활동의 동기를 부여해 줄 수 있는 모듈입니다.
이번 달 활동 지수는 다음달 받게 되는 메달을 결정하기 때문에 내가 지금 얼마나 열심히해서 다음달에 어떤 메달을 받을지 궁금한 회원들이 있을 겁니다. 이것을 본인에게만 공개를 해 줬을때 득과 실이 있겠지만 개인적으로는 득이 조금 더 클 것 같아 구현했습니다.
이렇게 다음 달 백금메달 받을 정도의 순위에 있다고 알려줄 수 있으니 더 좋은 메달인 다이아몬드를 받고 싶다면 더 노력해야 한다는 것을 바로 알 수 있는 것이죠.
회원정보를 보여주는 member 모듈에 사용하는 스킨 member_info.html 파일이 저 화면을 출력하는 담당을 합니다. 이 파일에 다음달 예상 메달 부분을 추가해 줍니다.
파일을 열어서 상단에 이번달 현재 지금 조회하는 순간 까지 활동지수 랭킹순위를 불러오는 코드를 넣어 줍니다.
<!--@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-->
그리고 회원정보를 출력해주는 적당 한 곳에 메달 정보를 출력하는 코드를 넣어줍니다.
<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>
요렇게 해주면 모듈에 설정해 놓은 메달 기준에 맞게 다음달 예상 메달을 보여주게 됩니다.
감사합니다~