웹마스터 팁
추천과 추천포인트 관련 팁
2009.09.30 18:13
소스 코드를 수정하는 것이므로 수정하기 전에 반드시 백업하시길 권합니다.
1. 추천/비추천 시 새로고침 하지 않기
추천/비추천시 일일이 새로고침 하는 것도 리소스 낭비 같아 새로고침하지 않고 결과만 메시지창에 나타나도록 수정했습니다.
modules/document/document.controller.php 에서 약 699라인을 아래와 같이 수정합니다.
// 결과 리턴
if($point > 0)
return new Object(0, 'success_voted');
else
return new Object(0, 'success_blamed'+ '+ ');
}
=>
// 결과 리턴
if($point > 0)
return new Object(-1, sprintf('추천 되었습니다. 현재 추천수는 '.$args->voted_count.'입니다.'));
else
return new Object(-1, sprintf('비추천 되었습니다. 현재 비추천수는 '.$args->blamed_count.'입니다.'));
코멘트 추천/비추천에도 적용하려면
modules/comment/comment.controller.php 에서 약 503라인을 역시 위와 마찬가지로 수정하면 됩니다.
만약 글씨가 깨어진다면 위의 php문서를 UTF-8로 저장하시기 바랍니다.
2. 추천시 추천자도 포인트 깎기
추천 포인트를 설정할 경우 추천하는 회원의 포인트도 깎는 팁입니다.
modules/point/point.controller.php 에서 489라인 이하의 triggerUpdateVotedCount(&$obj) 함수를 아래로 교체합니다.
//추천시 추천자 포인트도 삭감하도록 수정
function triggerUpdateVotedCount(&$obj) {
$module_srl = $obj->module_srl;
$target_member_srl = $obj->member_srl;
if(!$module_srl || !$target_member_srl) return new Object();
// 추천자 정보 구함
$logged_info = Context::get('logged_info');
$vote_member_srl = $logged_info->member_srl;
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('point');
$module_config = $oModuleModel->getModulePartConfig('point', $module_srl);
$oPointModel = &getModel('point');
$target_cur_point = $oPointModel->getPoint($target_member_srl, true);
$vote_cur_point = $oPointModel->getPoint($vote_member_srl, true);
if( $obj->point > 0 ) {
$point = $module_config['voted'];
if(!isset($point)) $point = $config->voted;
} else {
$point = $module_config['blamed'];
if(!isset($point)) $point = $config->blamed;
}
if(!$point) return new Object();
// 포인트 증감
$target_cur_point += $point;
$this->setPoint($target_member_srl,$target_cur_point);
// 추천자 포인트 증감
$vote_cur_point -= $point;
$this->setPoint($vote_member_srl,$vote_cur_point);
return new Object();
}
비추천 포인트도 같이 사용할 경우 위의 코드대로면 비추천 시 비추천자의 포인트가 올라가게 되므로
비추천시 비추천자 포인트는 그대로 두고 싶으면 위의 코드에서 '// 추천자 포인트 증감' 이하를 아래와 같이 수정합니다.
// 추천자 포인트 증감 (추천시에만 추천자 포인트 삭감)
if( $obj->point > 0 ) {
$vote_cur_point -= $point;
$this->setPoint($vote_member_srl,$vote_cur_point);
}
return new Object();
}
비추천 시 비추천자 점수도 같이 깎고 싶다면 아래와 같이 수정합니다.
// 추천자 포인트 증감 (추천/비추천 모두 추천자 포인트 삭감)
if( $obj->point > 0 ) {
$vote_cur_point -= $point;
$this->setPoint($vote_member_srl,$vote_cur_point);
} else {
$vote_cur_point += $point;
$this->setPoint($vote_member_srl,$vote_cur_point);
}
return new Object();
}
3. 글 리스트에서 추천수를 누르면 추천되게 하기
사용하는 게시판 스킨의 _style.list.html을 수정합니다. 여기선 xe_official 게시판을 기준으로 설명 드립니다.
modules/board/skins/xe_official/_style.list.html 에서
<!--@elseif($val->type == 'voted_count')-->
<td class="recommend">{$document->get('voted_count')!=0?$document->get('voted_count'):' '}</td>
을 찾아 아래와 같이 수정합니다.
<!--@elseif($val->type == 'voted_count')-->
<td class="recommend"><a onclick="doCallModuleAction('document','procDocumentVoteUp','{$document->document_srl}');return false;" href="./javscript:void(0);" title="클릭하면 추천 됩니다">{$document->get('voted_count')!=0?$document->get('voted_count'):' '}</a></td>
1번 팁과 같이 사용하면 효과적입니다.
댓글 8
제목 | 글쓴이 | 날짜 |
---|---|---|
닉네임 중복체크 버그 해결방법 [7] | 소렌트. | 2014.06.29 |
마이피플봇을 이용한 마이피플 알리미 (푸시서비스) 이용하기 [4] | garnecia | 2014.06.01 |
에디터가 활성화 되지 않을시... [1] | 똑디 | 2013.11.06 |
에디터 컴포넌트에 현재 mid 값 넘겨주기. [1] | 애니즌 | 2014.07.03 |
jqm(jQuery Mobile) 사용 시 XE의 CSS 와 충돌할 때 | Canto | 2014.07.03 |
[javascript] 기초강좌 | 4장. 비교제어문(if문) | hiwebs | 2014.07.02 |
[javascript] 기초강좌 | 03 논리연산자, 비트, 삼항연산자, 기타연산자 | hiwebs | 2014.07.02 |
[10원팁] 서버에 계정추가후 새로설치하는데 CSS가 깨진다? [3] | 키스미베이베 | 2014.02.27 |
회원가입시 닉네임 특수문자 제한하기 [10] | 절망린 | 2009.06.06 |
[nginx] Rewrite 예외 설정 | okiz | 2014.06.30 |
관리자 비밀번호 분실시 phpmyadmin을 이용하여 재설정하는 방법 [6] | elancer | 2014.03.11 |
BlogAPI 활용하기 | 맞장 | 2014.06.29 |
min.js min.css 정리해서 보기 | Happyphp | 2014.06.26 |
부트스트랩 css 팁 [3] | 돼지코구뇽 | 2014.04.05 |
추천과 추천포인트 관련 팁 [8] | 고진감래 | 2009.09.30 |
관리자가 글 쓸때는 분류를 선택 안 해도 등록되도록 (공지글을 쓸때를 위해) 개선 [2] | sejin7940 | 2014.06.21 |
템플릿 파일에서 일반 PHP 코드 사용 [3] | 화니군 | 2007.08.28 |
XE에서 신디케이션 제거하기 [1] | mAKEkr | 2014.06.20 |
에디터에서 나눔고딕 웹폰트, 기본글꼴로 적용하기(구글API이용) [6] | 애니즌 | 2014.06.06 |
관리자페이지에서 콘텐츠->파일 에서 등록된 파일 전체 리스트에 이미지가 바로 나타나도록 [2] | sejin7940 | 2014.06.19 |