라이믹스 2.0.8 기준으로 비회원도 게시판 본문을 추천/비추천 및 취소할 수 있게 되어 있습니다.
그런데 댓글은 아직 그게 불가능하게 되어 있습니다.
@bros님과 대화를 주고 받다가 이 참에 관련 내용을 정리해볼까 합니다.
라이믹스 2.0.8 및 xedition 게시판 스킨을 기준으로 합니다.
1. 먼저 게시판 설정
- 게시판 관리 > 게시판 정보 > 고급 설정에 있는 "비회원 추천 허용"을 '예'로 합니다.
2. xedition 스킨 수정
- _comment.html을 엽니다.
- 42~45행을 수정해야 합니다. 2.0.8 기준으로 여기 링크처럼 되어 있을 텐데요.
- 이걸 다음과 같이 수정해줍니다.
<a cond="$comment->getMyVote() === false || $comment->getMyVote() < 0" href="#" onclick="doCallModuleAction('comment','procCommentVoteUp','{$comment->comment_srl}');return false;"|cond="$is_logged || $module_info->non_login_vote=='Y'" class="voted"><i class="xi-thumbs-up"></i>{$lang->cmd_vote}{$comment->get('voted_count')}</a> <a cond="$comment->getMyVote() > 0" href="#" onclick="doCallModuleAction('comment','procCommentVoteUpCancel','{$comment->comment_srl}');return false;"|cond="$is_logged || $module_info->non_login_vote=='Y'" class="voted"><i class="xi-thumbs-up"></i>{$lang->cmd_vote}{$comment->get('voted_count')}</a> <a cond="$comment->getMyVote() === false || $comment->getMyVote() > 0" href="#" onclick="doCallModuleAction('comment','procCommentVoteDown','{$comment->comment_srl}');return false;"|cond="$is_logged || $module_info->non_login_vote=='Y'" class="voted"><i class="xi-thumbs-up"></i>{$lang->cmd_vote_down}{$comment->get('blamed_count')}</a> <a cond="$comment->getMyVote() < 0" href="#" onclick="doCallModuleAction('comment','procCommentVoteDownCancel','{$comment->comment_srl}');return false;"|cond="$is_logged || $module_info->non_login_vote=='Y'" class="voted"><i class="xi-thumbs-up"></i>{$lang->cmd_vote_down}{$comment->get('blamed_count')}</a>
... 사실 $is_logged || $module_info->non_login_vote=='Y' 조건을 각 a 태그 전체에 걸어주면 더 깔끔합니다. 권한이 없는 경우에는 추천/비추천 및 취소 링크를 아예 출력 안 하는 것도 좋으니까요. 즉, 이렇게요...
<[email protected]($is_logged || $module_info->non_login_vote=='Y')--> <a cond="$comment->getMyVote() === false || $comment->getMyVote() < 0" href="#" onclick="doCallModuleAction('comment','procCommentVoteUp','{$comment->comment_srl}');return false;" class="voted"><i class="xi-thumbs-up"></i>{$lang->cmd_vote}{$comment->get('voted_count')}</a> <a cond="$comment->getMyVote() > 0" href="#" onclick="doCallModuleAction('comment','procCommentVoteUpCancel','{$comment->comment_srl}');return false;" class="voted"><i class="xi-thumbs-up"></i>{$lang->cmd_vote}{$comment->get('voted_count')}</a> <a cond="$comment->getMyVote() === false || $comment->getMyVote() > 0" href="#" onclick="doCallModuleAction('comment','procCommentVoteDown','{$comment->comment_srl}');return false;" class="voted"><i class="xi-thumbs-up"></i>{$lang->cmd_vote_down}{$comment->get('blamed_count')}</a> <a cond="$comment->getMyVote() < 0" href="#" onclick="doCallModuleAction('comment','procCommentVoteDownCancel','{$comment->comment_srl}');return false;" class="voted"><i class="xi-thumbs-up"></i>{$lang->cmd_vote_down}{$comment->get('blamed_count')}</a> <[email protected]>
3. comment 모듈의 conf 폴더에 있는 module.xml 수정
- 윗 부분에 이어 모듈 액션의 권한 수정도 해줘야 하는데요. document 모듈에는 해당 액션(추천/비추천, 취소)에 퍼미션 설정이 없는데 comment 모듈의 액션에는 그게 남아 있더라구요.
- 원래대로라면 링크처럼 되어 있을 텐데요.
- 아래와 같이 수정해줍니다.
<action name="procCommentVoteUp" type="controller" /> <action name="procCommentVoteUpCancel" type="controller" /> <action name="procCommentVoteDown" type="controller" /> <action name="procCommentVoteDownCancel" type="controller" />
4. 확인
- 이제 비회원도 댓글에 추천과 비추천, 그리고 추천 취소와 비추천 취소를 모두 할 수 있게 되었습니다.
정회원이 아니라 추천을 못드립니다.
|cond="$is_logged || $module_info->non_login_vote=='Y'"
이런 문법 좀 할줄 알아야 스스로 찾아볼텐데 흙흙... 회원님들 피곤하게 해드리네요.
올해 안으로는 꼭 풍월을 읊는 아기 선무당이 되기를 생각해봅니다.