웹마스터 팁
비회원도 추천가능하게 하기 (1.5기준설명)
2011.11.18 10:50
XE에서 추천,비추천은 로그인을 해야 가능한 구조입니다.
하지만 비회원으로 운영되는 사이트는 추천/비추천이 비회원도 가능해야한다고 생각됩니다.
아래 수정방법은 XE 1.5기준입니다만, 그이하 버전 1.4.x 도 라인만 다르고 소스는 비슷하니 찾아서 수정하시면 됩니다.
총4개의 파일을 여시고, 해당부분만 주석처리 하시면 됩니다.
1. /modules/document/document.model.php 을 여시고 461번째쯤 if($logged_info->member_srl) { 부분을 찾아서 그앞에 // 주석처리합니다. // if($logged_info->member_srl) { 이런식으로 되겠군요..
그리고 491번째쯤에 } 닫아준걸 // } 이렇게 주석처리합니다. 위에서 열었던걸 주석처리했기때문에 닫았던 것도 주석처리해주는 겁니다.
// if($logged_info->member_srl) {
$oDocumentModel = &getModel('document');
$columnList = array('+
'document_srl', 'module_srl', 'member_srl', 'ipaddress');
$oDocument = $oDocumentModel->getDocument($document_srl, false, false, $columnList);
$module_srl = $oDocument->get('module_srl');
$member_srl = $oDocument->get('member_srl');
if(!$module_srl) return new Object(-1, 'msg_invalid_request');
$oModuleModel = &getModel('module');
$document_config = $oModuleModel->getModulePartConfig('document',$module_srl);
if($document_config->use_vote_up!='N' && $member_srl!=$logged_info->member_srl){
// Add a Referral Button
$url = sprintf("doCallModuleAction('document','procDocumentVoteUp','%s')", $document_srl);
$oDocumentController->addDocumentPopupMenu($url,'cmd_vote','','javascript');
}
if($document_config->use_vote_down!='N' && $member_srl!=$logged_info->member_srl){
// Add button to negative
$url= sprintf("doCallModuleAction('document','procDocumentVoteDown','%s')", $document_srl);
$oDocumentController->addDocumentPopupMenu($url,'cmd_vote_down','','javascript');
}
// Adding Report
$url = sprintf("doCallModuleAction('document','procDocumentDeclare','%s')", $document_srl);
$oDocumentController->addDocumentPopupMenu($url,'cmd_declare','','javascript');
// Add Bookmark button
$url = sprintf("doCallModuleAction('member','procMemberScrapDocument','%s')", $document_srl);
$oDocumentController->addDocumentPopupMenu($url,'cmd_scrap','','javascript');
// }
전체적인 소스를 보면 대략 위와 같습니다.
2. /modules/document/document.controller.php 를 여시고 19번째줄쯤에 if(!Context::get('is_logged')) return new Object(-1, 'msg_invalid_request'); 부분을 찾아서 같은 방법으로 // 앞쪽에 주석처리 합니다. // if(!Context::get('is_logged')) return new Object(-1, 'msg_invalid_request'); 이렇게 되겠군요.
또 51번째줄도 if(!Context::get('is_logged')) return new Object(-1, 'msg_invalid_request'); 부분을 찾아서 주석처리해줍니다. // if(!Context::get('is_logged')) return new Object(-1, 'msg_invalid_request');
이제 본문글 추천/비추천은 가능하게 됐구요. 다음은 코멘트도 추천/비추천을 가능하게 소스수정을 해줍니다.
3. /modules/comment/comment.model.php 를 여시고, 35째쯤 줄에 if($logged_info->member_srl) { 부분을 주석처리 합니다 // if($logged_info->member_srl) { 이렇게 됩니다.
마찬가지로 59번째 } 부분// } 이런식으로 주석처리해줍니다.
4. /modules/comment/comment.controller.php 를 여시고, 20번째줄쯤에 if(!Context::get('is_logged')) return new Object(-1, 'msg_invalid_request'); 를 찾아서 주석처리해줍니다. // if(!Context::get('is_logged')) return new Object(-1, 'msg_invalid_request'); 이렇게 됩니다.
그리고 42번째줄에 if(!Context::get('is_logged')) return new Object(-1, 'msg_invalid_request'); 를 찾으셔서 같은 방법으로 앞에 주석처리를 합니다. // if(!Context::get('is_logged')) return new Object(-1, 'msg_invalid_request');
이제 다됐습니다.
본인이 쓴글에는 추천/비추천이 안되며 클릭을 했을때는 추천을 하실수 없습니다. 라고 나올것이며, 수정이 잘못됐다면 '잘못된 요청입니다'라고 나올겁니다. 이럴때는 천천이 다시 수정해보세요.
- [2017/08/11] 묻고답하기 글,댓글 추천 log에 member_srl이 있다가 없다가하네요. (버그일까요?) *1
- [2016/07/11] 묻고답하기 비밀번호 입력하라는 페이지 띄우는 소스가 어디에 있는지 궁금합니다. *2
- [2016/05/16] 묻고답하기 위지윅에디터 비회원 활성화 안되는 문제 *3
- [2015/08/25] 묻고답하기 XE 게시판 비밀글 자동 셋팅에 관해 여쭤봅니다. *11
- [2015/05/31] 묻고답하기 추천시에 '몇번째로 추천하였습니다.' 확인창 뜨게하는법. *4
댓글 3
-
노튼
2011.11.18 20:18
-
빽짱구
2011.11.18 22:31
같은 IP에서 글을 남기고 그남긴글을 클릭할때는 추천이 되지않겠지만, 그렇지 않다면 당연히 구분할수있는게 없어서 중복추천이 되지 않을까요.
-
roks821
2011.11.18 23:38
저도 원하는 팁이었습니다.
위의 4곳을 수정하고 로그아웃을 하니 추천/비추천 이 안보이네요.
로그인하지 않은 상태에서도 추천/비추천이 보이고 클릭할 수 없나요?
비회원으로 중복 추천 되지는 않나요??