메달 시스템 질문

안녕하세요.

 

오늘 메달 시스템을 적용했습니다.

 

적용은 시켰지만 문제가 생겼는데 도저히 머리가 돌아가지 않습니다.

 

문제점은 오늘부터 적용했기에 메달 데이터는 오늘부터 시작됩니다.

 

문제는 저희 사이트는 가입을하면 포인트를 기본으로 300포인트 지급해드립니다.

 

현재 1등분께서는 방금 가입하셔서 300포인트를 지급받고 경험치도 300이되며 바로 1등이 되셨습니다

 

2,3,4등은 예전부터 활동하셨고 포인트도 훨씬 많이 가지고 있으며 경험치도 많이 가지고 있는데

 

왜 오늘 가입 하신분들보다 밑에로 나오는지 모르겠습니다

 

예상메달에 알려주는 경험치가 메달 경험치를 따로 가지고 있는건가요?

 

해결할려면 지금 가입해도 포인트는 300이지만 메달 경험치에 영향이 안가게 하고 싶은데 이걸 해결방법이 있을까요?

 

궁금해서 질문글을 올리는데 이해되실지 모르겠네요... 저도 솔직히 지금 이해가 안가는상태라서...

 

20210119_131717.png

  • ?
    https://xetown.com/questions/1501938

    음.. 이 질문글이랑 케이스가 비슷하신 것 같습니다. 경험치 지급이 포인트 액션에 의존해서 지급되어서 그렇다고 합니다.
    그러니까 가입 액션을 경험치 모듈 지급 액션에서 제외처리하시면 될 듯 합니다.
  • ? profile
    참고하겠습니다. 감사합니다 :)
  • profile ?

    추가로 저희랑 동일한 스킨 사용하시는 것 같아서 한 가지만 알려드리고자 합니다.

     

    레이아웃에 포함된 dist/tailwind.css 파일의 아래 부분이 메달 아이콘과 닉네임을 서로 개행되도록 하고 있어 수정이 필요합니다. (예상 메달 위젯에서도 글씨와 메달 아이콘이 개행되어 표시된 것을 확인할 수 있습니다.)

     

    audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}

     

    tailwind.css의 위 부분에서 display:block; 부분을 제거하셔야 스킨에 포함된 서명, 출석부 등에서 메달과 닉네임이 서로 줄바꿈(개행)되어 표시되지 않습니다. 질문글과는 관련 없지만 메달 모듈 적용시 참고하시면 도움되실 듯하여 올려봅니다!
     

  • ? profile
    아! 감사합니다. 혹시 하나코군님 사이트를 쪽지를 통해서 볼수있을까요? 어디부분에 적용되는지 자세히 알고 싶습니다 ㅎㅎ
  • profile ?
    쪽지로 알려드렸습니다!
  • profile

    메달에 부여하는 경험치에 대해 이해가 필요하십니다.

    1.이전달 월간 누적 경험치로 메달 순위를 메깁니다.
    2.예전 부터 많은 경험치를 가지고 있어도 의미가 없습니다.
    3.현재 월에 발생한 경험치의 누적치가 제가 만들어드린 위젯 데이터에 보이는 경험치 입니다.
    4.기존에 가입한 회원이라해도 이번달 활동이 없으면 월간 경험치가 적으므로 순위가 밀립니다.
    5.오늘 가입한 회원이 취득한 경험치 300 으로 인해 상위에 랭크가 되었습니다.
    - 경험치가 지급되는 기본 활동은 가입,로그인,(댓글)글 작성, 추천받음 입니다.
    - 여기서 가입시 지급하는 포인트가 다른 것보다 월등히 높다면(현재 300포인트) 가입하신 분은 즉시 상위에 랭크가 됩니다.
    6.기본으로 코드가 짜여진 act 중 제외하고 싶다면 경험치 모듈의 코드에서 해당 액션을 지우셔야 합니다.
    - 코드를 고치기 싫으시면 가입시 지급하는 포인트를 포인트 설정에서 비우셔야 합니다.

     

     

    추가적으로 로그인 액션의 경우 로그인이 아닌 자동출석으로 인한 포인트가 로그인 액션에서 잡히기 때문에 실제 컨텐츠를 작성하는 노력보다 많은 경험치가 주어질 수 있어서 로그인액션도 지우시는게 좋습니다.

     

    $_point_act = array(
    //'procMemberLogin',
    //'procMemberInsert',
    'procBoardInsertDocument',
    'procBoardDeleteDocument',
    'procBoardInsertComment',
    'procBoardDeleteComment',
    'procDocumentVoteUp',
    'procDocumentManageCheckedDocument',
    'procSocialxeConfirmMail',
    'procSocialxeInputAddInfo',
    'procSocialxeCallback'
    );

  • profile profile

    정말 자세한 말씀 감사합니다. experience.controller.php에 존재하는 밑에 보이는 액션 부분중에서 //'procMemberLogin', , procMemberInsert 이부분만 지우면되는건가요? 아니면 아래 모든 코드를 지워야 되는지 궁금합니다

  • profile profile

    // 주석으로 하시면 지운것과 동일합니다.
    지금 가입시 포인트가 문제이기에 질문에 연결되는 액션은
    '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'
    );

  • profile profile
    아 //주석이라는게 지운것처럼 효과를 주는군요? 덕분에 오늘 하나 배우는거 같습니다.
    +추가로 지우고서 테스트해보니 작동을 하는거 같습니다. 현재 찍혀있는 300 경험치는 경험치 모듈로 지워도 똑같은데 이부분은 db에 접근해서 수정해야될까요?
  • profile profile
    이미 지급되서 합산이 된 것입니다. db에서 접속해보시면 month 데이터에 해당 회원번호로 300 이 입력되어 있을 겁니다. 그거 0으로 바꾸시면 됩니다.
  • profile profile
    감사합니다 :)
  • profile profile
    저 다음달 예상 순위는 회원에게 공개하지 마세요~~ 별로 도움 안됩니다.
  • profile profile
    넵 라이믹스 팁에서 말씀하신것처럼 그렇게 될까봐 공개 안하고 운영할려고 합니다 :)
    감사합니다!
  • profile profile
    저희 *메*브 에서는 메달시스템 12월에 예고 공지 띄우고 1월에 첫 메달 지급 했는데 효과가 아주 좋습니다. 사이트 한번 전반적으로 구경해보세요. 사이트 전역에서 메달 가지신 분 아닌분 차별화 되니 열심히해서 메달 따려는 동기가 많이들 생기셨어요. 특히 신규 회원이 진입장벽이 없어서 열심히들 하시고 기존 회원들도 글 쓸때 동기기 있으니 열심히 쓰시네요 ㅋㅋ

    12월 초에 이런 메달 드립니다! 라고 했을때 부터 열심히들 하시더라구요 ㅎㅎ
  • profile profile
    그 예전에 메달 시스템에 메달 지급? 버튼이 있다고 들었는데 이게 존재하는건가요?
    저한테는 보이는게 없어서 이게 합산이 되야 뜨는건지 원래 없는건지 궁금하네요
  • profile profile

    그거 코드에 오류가 있어서 그렇습니다.
    모듈 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>

  • profile profile

    지우고나니 이렇게 버튼이 생성됬습니다. 이 버튼은 언제 누르는건가요?

    메달 싹다 초기화 할때 누르는 버튼인건가요?

    지급인지 초기화 버튼인지 헷갈리네요 ㅠ_ㅠ

    20210119_140509.png

  • profile profile
    네. 수동으로 지급하시는 방식은 1일날 한번씩 누르시면 됩니다. 특별한 사정으로중간에 다시 계산 할때 눌러도 됩니다. 하지만 알림센터로 알림이 가니 매월 1번만 하는게 좋습니다.
  • profile profile
    감사합니다!!
  • profile ?
    웹지기님, 혹시 1일날 한번 누르고 중간에 다시 한번 더 눌러도 메달획득 결과는 동일한거죠? 아니면 변동이 생기나요?
  • profile ?
    회원 1분이 원래 메달을 받으실 조건을 충족했는데 노 메달인 경우가 1건 있거든요. 이 때 동기화 버튼을 한번 더 누르면 교정이 될까요?
  • ? profile

    메달 받지 못할 당시 php코드에 오류가 있었고 지금은 고쳐진 상태라면 버튼 누르면 순위가 바뀌고 메달도 지급됩니다. db는 이미 지난달에 들어간거라 변경 없구요.

    다만 메달 지급대상 회원들에게 한번 더 알림이 갑니다.

  • profile ?
    그렇군요... 상세한 설명 감사드립니다 ^^