안녕하세요 !

 

이번에 라이믹스 업데이트 이후 비회원 추천을 가능하게 추가설정에서 설정하였는데

스킨단에서 막히는거 같더라구요.

 

$lang->need_login = '로그인 해주세요.';

<button class="bt_vote vote_area" type="button" onclick="insertWarn('{$lang->need_login}')"|cond="!$is_logged && !$_nonlogin_vote" onclick="insertWarn('{$lang->my_article_vote}')"|cond="$_my_atc2" onclick="doVote('{$oDocument->document_srl}','vote',{$oDocument->get(voted_count)},{-$oDocument->get(blamed_count)},this);return false;"|cond="$_not_my2"><!--@if($mi->vote_text)-->{$mi->vote_text}<!--@else--><i class="fas fa-heart"></i> {$lang->like}<!--@end--><span class="voted_count text_en">{$oDocument->get('voted_count')}</span></button>

 

비회원상태에서 추천을 누르면 로그인해주세요 이렇게 뜨더라구요

 

혹시 비회원으로 로그인하려면 어떻게 해야할지 고수선배님들의 도움을 받고싶네요 ㅠㅠ

  • Lv19

    $_nonlogin_vote 라는 변수를 사용하는 걸로 봐선 스킨에 비회원 추천 관련 설정이 있지 않을까 싶은데요?

  • Lv19 Lv3
    $_nonlogin_vote 해당 변수는 비회원일시 댓글보기를 제한하는 변수더라구요..
    비회원일때 추천하는건 따로 설정이 따로 없어보이던데..

    제가 잘못본건지

    {@
    if($mi->non_login_vote == 'Y') $_nonlogin_vote = 1;
    $_use_vote_cancel = $mi->cancel_vote == 'Y';
    if($_nonlogin_vote):
    $_load_v = $mi->use_vote != 'N';
    $_load_cv = $mi->use_cmt_vote;
    $_load_vc = $_use_vote_cancel;
    else:
    $_load_vc = $_use_vote_cancel && $is_logged;
    endif;
    }

    이게 추천관련인거같은데 여기서 설정을 바꿔야할가요?
  • Lv3 Lv19

    보여주신 부분으론 스킨에선 모듈의 설정을 그냥 가져오는 것 같아요.
    if($mi->non_login_vote == 'Y') $_nonlogin_vote = 1;

    추가 설정 부분에서 문서와 댓글 두 부분 모두 추천 설정이 제대로 됐는지 확인해보시고, 그래도 문제가 있다면 스킨 제작자 또는 스킨 사용 중이신 분들과 의논이 필요하겠네요.

  • Lv19 Lv36

    저 설정 변수명은 라이믹스 구 버전에서 사용하던 것입니다. 최신 버전은 문서/댓글, 비회원 추천/신고/취소 허용, 동일 IP 추천/신고 허용 여부 등 훨씬 세부적으로 설정할 수 있기 때문에 변수 구조가 더 복잡해요.

    비회원 추천을 허용하는 것이 확실하다면 그냥 맨 위에 조건문 지우고 $_nonlogin_vote = 1; 로 강제 활성화해 버려도 괜찮을 것 같습니다. 변수명으로 봤을 때 비회원 댓글보기보다는 추천 허용과 관련된 변수일 가능성이 훨씬 높습니다.

  • Lv36 Lv19

    살펴보니 '추가 설정'이어서 getModulePartConfig 함수로 따로 불러와야 하는군요.

    ($mi->non_login_vote는 말씀대로 구버전용 변수인가 보네요. 게다가 $module_info에 스킨 설정 변수명들이 뒤섞여 있으니 분간이 어려워요ㅋㅋㅋ)

    어쨌든 다른 게시판에 영향을 줄 수도 있으니 

     

    {@
    if($mi->non_login_vote == 'Y') $_nonlogin_vote = 1;
    $_use_vote_cancel = $mi->cancel_vote == 'Y';
    ~~~

     

    대신에

    {@
    $document_config = ModuleModel::getModulePartConfig('document', $oDocument->get('module_srl'));
    if(isset($document_config->allow_vote_non_member) && $document_config->allow_vote_non_member === 'Y') $_nonlogin_vote = 1;
    if(isset($document_config->allow_vote_cancel) && $document_config->allow_vote_cancel === 'Y') $_use_vote_cancel = 1;
    ~~~

    로 하면 왠지 될 것 같습니다.

     

    + 해당 스킨을 사용하지 않아서 잘은 모르겠지만, 경우에 따라 $mi->non_login_vote나 $mi->cancel_vote가 스킨에서 설정한 변수일 수도 있으니 조건문에서 삭제하지 않고 유지를 해야 할지도 모르겠습니다.

  • Lv19 Lv3

    답변감사합니다 윤삼님

     

    해당 영역이 기존이

     

    {@
    if($mi->non_login_vote == 'Y') $_nonlogin_vote = 1;
    $_use_vote_cancel = $mi->cancel_vote == 'Y';
    if($_nonlogin_vote):
    $_load_v = $mi->use_vote != 'N';
    $_load_cv = $mi->use_cmt_vote;
    $_load_vc = $_use_vote_cancel;
    else:
    $_load_vc = $_use_vote_cancel && $is_logged;
    endif;
    }

     

    이 상태인데

    {@
    $document_config = ModuleModel::getModulePartConfig('document', $oDocument->get('module_srl'));
    if(isset($document_config->allow_vote_non_member) && $document_config->allow_vote_non_member === 'Y') $_nonlogin_vote = 1;
    if(isset($document_config->allow_vote_cancel) && $document_config->allow_vote_cancel === 'Y') $_use_vote_cancel = 1;
    if($_nonlogin_vote):
    $_load_v = $mi->use_vote != 'N';
    $_load_cv = $mi->use_cmt_vote;
    $_load_vc = $_use_vote_cancel;
    else:
    $_load_vc = $_use_vote_cancel && $is_logged;
    endif;
    }

     

     

    이렇게 바꿔서 적용하니 오류가 나더군요 ㅠㅠ;;

     

     

     

  • Lv3 Lv19
    잘 안 되면 위의 기진곰님 조언처럼 해보세요.
    무조건으로 $_nonlogin_vote = 1; 이렇게 가서 되는 거면 제가 알려드린 코드에 문제가 있는 것이니 따르지 않으셔도 돼요.
    잘 모르는 스킨을 가지고 괜히 아는 척을 해가지고ㅜㅜ 역시 제작자분이나 다른 이용자분들이랑 소통하는 게 가장 확실할 것 같아요.
  • Lv36 Lv3
    강제로 활성화하려면

    $_nonlogin_vote = 1; // 강제로 활성화

    $_use_vote_cancel = $mi->cancel_vote == 'Y';
    if ($_nonlogin_vote):
    $_load_v = $mi->use_vote != 'N';
    $_load_cv = $mi->use_cmt_vote;
    $_load_vc = $_use_vote_cancel;
    else:
    $_load_vc = $_use_vote_cancel && $is_logged;
    endif;

    이게 이렇게 되어야 하나용?
  • Lv36 Lv3
    아닙니다 ~

    {@
    $_nonlogin_vote = 1;
    $_use_vote_cancel = $mi->cancel_vote == 'Y';
    if($_nonlogin_vote):
    $_load_v = $mi->use_vote != 'N';
    $_load_cv = $mi->use_cmt_vote;
    $_load_vc = $_use_vote_cancel;
    else:
    $_load_vc = $_use_vote_cancel && $is_logged;
    endif;
    }

    이렇게 설정해주니 비회원도 추천이 잘 되네요 ㅎㅎ
    감사합니다.
  • Lv36 Lv3
    추천 취소를 해야하는경우에는 이 문법에서 어떤걸 수정해야할지 모르겠네요 ㅠㅠ;;
  • Lv3 Lv36
    둘째 줄에서 선언하는 $_use_vote_cancel도 마찬가지로 1로 고정시켜 보세요.
  • Lv36 Lv3
    감사합니다 기진님 잘 되네요 ㅎㅎ!