메달 시스템 질문
CMS/프레임워크 | 사용안함 |
---|---|
개발 언어 | 사용안함 |
안녕하세요.
오늘 메달 시스템을 적용했습니다.
적용은 시켰지만 문제가 생겼는데 도저히 머리가 돌아가지 않습니다.
문제점은 오늘부터 적용했기에 메달 데이터는 오늘부터 시작됩니다.
문제는 저희 사이트는 가입을하면 포인트를 기본으로 300포인트 지급해드립니다.
현재 1등분께서는 방금 가입하셔서 300포인트를 지급받고 경험치도 300이되며 바로 1등이 되셨습니다
2,3,4등은 예전부터 활동하셨고 포인트도 훨씬 많이 가지고 있으며 경험치도 많이 가지고 있는데
왜 오늘 가입 하신분들보다 밑에로 나오는지 모르겠습니다
예상메달에 알려주는 경험치가 메달 경험치를 따로 가지고 있는건가요?
해결할려면 지금 가입해도 포인트는 300이지만 메달 경험치에 영향이 안가게 하고 싶은데 이걸 해결방법이 있을까요?
궁금해서 질문글을 올리는데 이해되실지 모르겠네요... 저도 솔직히 지금 이해가 안가는상태라서...
댓글 23
음.. 이 질문글이랑 케이스가 비슷하신 것 같습니다. 경험치 지급이 포인트 액션에 의존해서 지급되어서 그렇다고 합니다.
그러니까 가입 액션을 경험치 모듈 지급 액션에서 제외처리하시면 될 듯 합니다.
추가로 저희랑 동일한 스킨 사용하시는 것 같아서 한 가지만 알려드리고자 합니다.
레이아웃에 포함된 dist/tailwind.css 파일의 아래 부분이 메달 아이콘과 닉네임을 서로 개행되도록 하고 있어 수정이 필요합니다. (예상 메달 위젯에서도 글씨와 메달 아이콘이 개행되어 표시된 것을 확인할 수 있습니다.)
display:block;vertical-align:middle}tailwind.css의 위 부분에서 display:block; 부분을 제거하셔야 스킨에 포함된 서명, 출석부 등에서 메달과 닉네임이 서로 줄바꿈(개행)되어 표시되지 않습니다. 질문글과는 관련 없지만 메달 모듈 적용시 참고하시면 도움되실 듯하여 올려봅니다!
메달에 부여하는 경험치에 대해 이해가 필요하십니다.
1.이전달 월간 누적 경험치로 메달 순위를 메깁니다.
2.예전 부터 많은 경험치를 가지고 있어도 의미가 없습니다.
3.현재 월에 발생한 경험치의 누적치가 제가 만들어드린 위젯 데이터에 보이는 경험치 입니다.
4.기존에 가입한 회원이라해도 이번달 활동이 없으면 월간 경험치가 적으므로 순위가 밀립니다.
5.오늘 가입한 회원이 취득한 경험치 300 으로 인해 상위에 랭크가 되었습니다.
- 경험치가 지급되는 기본 활동은 가입,로그인,(댓글)글 작성, 추천받음 입니다.
- 여기서 가입시 지급하는 포인트가 다른 것보다 월등히 높다면(현재 300포인트) 가입하신 분은 즉시 상위에 랭크가 됩니다.
6.기본으로 코드가 짜여진 act 중 제외하고 싶다면 경험치 모듈의 코드에서 해당 액션을 지우셔야 합니다.
- 코드를 고치기 싫으시면 가입시 지급하는 포인트를 포인트 설정에서 비우셔야 합니다.
추가적으로 로그인 액션의 경우 로그인이 아닌 자동출석으로 인한 포인트가 로그인 액션에서 잡히기 때문에 실제 컨텐츠를 작성하는 노력보다 많은 경험치가 주어질 수 있어서 로그인액션도 지우시는게 좋습니다.
$_point_act = array(
//'procMemberLogin',
//'procMemberInsert',
'procBoardInsertDocument',
'procBoardDeleteDocument',
'procBoardInsertComment',
'procBoardDeleteComment',
'procDocumentVoteUp',
'procDocumentManageCheckedDocument',
'procSocialxeConfirmMail',
'procSocialxeInputAddInfo',
'procSocialxeCallback'
);
정말 자세한 말씀 감사합니다. experience.controller.php에 존재하는 밑에 보이는 액션 부분중에서 //'procMemberLogin', , procMemberInsert 이부분만 지우면되는건가요? 아니면 아래 모든 코드를 지워야 되는지 궁금합니다
// 주석으로 하시면 지운것과 동일합니다.
지금 가입시 포인트가 문제이기에 질문에 연결되는 액션은
'procMemberInsert 입니다.
하지만 로그인,가입 모두 지우시는걸 추천드립니다.
가입관련은 소셜로그인도 있기에..
아래 소셜관련도..
$_point_act = array(
//'procMemberLogin',
//'procMemberInsert',
'procBoardInsertDocument',
'procBoardDeleteDocument',
'procBoardInsertComment',
'procBoardDeleteComment',
'procDocumentVoteUp',
'procDocumentManageCheckedDocument',
//'procSocialxeConfirmMail',
//'procSocialxeInputAddInfo',
//'procSocialxeCallback'
);
'procDocumentManageCheckedDocument', 여기 마지막 빨간색 쉼표를 제거해야 합니다.
주석으로 하지 않으시고 그냥 다 지우셔도 좋습니다.
$_point_act = array(
'procBoardInsertDocument',
'procBoardDeleteDocument',
'procBoardInsertComment',
'procBoardDeleteComment',
'procDocumentVoteUp',
'procDocumentManageCheckedDocument'
);
+추가로 지우고서 테스트해보니 작동을 하는거 같습니다. 현재 찍혀있는 300 경험치는 경험치 모듈로 지워도 똑같은데 이부분은 db에 접근해서 수정해야될까요?
감사합니다!
12월 초에 이런 메달 드립니다! 라고 했을때 부터 열심히들 하시더라구요 ㅎㅎ
저한테는 보이는게 없어서 이게 합산이 되야 뜨는건지 원래 없는건지 궁금하네요
그거 코드에 오류가 있어서 그렇습니다.
모듈 tpl/config.html 파일에서 cond="!$config->sync_point && !$no_point_module"
포인트 동기화 말고 그 아패 메달지급 버튼 코드에서
cond="!$config->sync_point && !$no_point_module" 을 지우세요.
<section class="section" cond="!$config->sync_point && !$no_point_module">
<h1>메달 초기화</h1>
<div class="message error">
<p>메달의 순위를 변경하거나 여러가지 요인으로 재 설정해야할 경우 이 버튼을 누르세요.</p>
</div>
<p><input class="x_btn x_btn-warning" type="button" value="메달 동기화 실행" onclick="syncMedal()" /></p>
</section>
지우고나니 이렇게 버튼이 생성됬습니다. 이 버튼은 언제 누르는건가요?
메달 싹다 초기화 할때 누르는 버튼인건가요?
지급인지 초기화 버튼인지 헷갈리네요 ㅠ_ㅠ
메달 받지 못할 당시 php코드에 오류가 있었고 지금은 고쳐진 상태라면 버튼 누르면 순위가 바뀌고 메달도 지급됩니다. db는 이미 지난달에 들어간거라 변경 없구요.
다만 메달 지급대상 회원들에게 한번 더 알림이 갑니다.