묻고답하기
새로고침 없는 추천,비추천 카운터에 대해 질문 드립니다
2015.05.19 02:57
유저분들의 답변에 힘입어 한발짝씩 나아가고 있긴한데 아직까지 너무 어렵습니다..
답변을 토대로 추천,비추천 수의 합산값 노출에서 수정을 해보았는데요
세진님의 새로고침없는 추천,비추천 애드온에서
https://www.xpressengine.com/index.php?mid=download&package_id=22753500
addvote.html에서
<div class="wgtRv addon_addvote"><span class="btnRv btnRo"><button type="button" class="btn_voted" ><span class="tx">{$lang->voted_count}</span> <span class="num" id="document_voted_count">{$var->voted_count}</span></button></span> <span class="btnRv btnRx"><button type="button" class="btn_blamed" ><span class="tx"><!--@if($lang->blamed_count)-->{$lang->blamed_count}<!--@else-->비추천 수<!--@end--></span> <span class="num" id="document_blamed_count">{$var->blamed_count}</span></button></span> <span class="btnRv btnRt"><button type="button" class="btn_declared" ><span class="tx"><!--@if($lang->declared_count)-->{$lang->declared_count}<!--@else-->신고 수<!--@end--></span> <span class="num" id="document_declared_count">{$var->declared_count}</span></button></span></div>
파란색 {$var->voted_count}를
$var->voted_count + $var->blamed_count 으로 수정
빨간 밑줄친 비추천 카운터 부분을 삭제했습니다.
그렇게 하여 추천수 버튼에 합산값이 뜨고, 비추천 버튼에 카운터가 안되게 되었습니다.
-
다만 문제점이 제가 사용하고 있는 세진님의 새로고침 없는 추천,비추천 애드온으로서 실시간으로 비추천을 눌렀을시,
새로고침 없이 추천버튼의 합산값이 아닌 비추천 카운터가 올라갑니다.
새로고침 없이 추천,비추천을 한 후, 인위적으로 한번 더 새로고침을 한 후에는 추천 버튼에 합산값이 뜸으로서.
처음에 비추천,추천을 줄때는 추천,비추천이 따로 카운터 되는 문제점인데요,
결국 여기서 인위적으로 새로고침을 한번 더 눌렀을 때 비로소 추천버튼에 합산값이 뜹니다.
전 새로고침 없이 비추천을 눌렀을시 비추천버튼에 카운터 되지않고 바로 추천버튼에 합산값이 뜨도록 하고싶어서
여러분께 여쭙고 싶습니다. 다 온거 같은데 너무 어렵네요 XE고수 분들 의견이라고 주시면 감사하겠습니다. ㅠㅠ
추천 직후 문구바꾸는건
addvote.js 파일의 completeDocumentVote 함수에서 처리합니다
원래 애드온은 실제 추천된 최종값 ( 여러명이 동시에 추천할때 값이 확 올라갈 수 있으니) 을 출력시키는데
지금 알려드리는 방법은, 실제 값이 아닌 그 페이지를 열었을때 적혀있는 추천수+비추천수에서 +1 또는 -1 처리하는 눈속임 방법입니다 ( return 되는 값이 추천때는 추천값만, 비추천떄는 비추천값만 넘어오기에 방법이 없네요)
addvote.js 파일에서
function completeDocumentVote 함수에서
if(!isNaN(parseInt(voted_count))) {
alert(voted_count+'번째로 '+xe.lang.success_voted);
jQuery('#document_voted_count').html(voted_count);
}
if(!isNaN(parseInt(blamed_count))) {
alert((-1)*blamed_count+'번째로 '+xe.lang.success_blamed);
jQuery('#document_blamed_count').html(blamed_count);
}
부분 대신에
if(!isNaN(parseInt(voted_count))) {
var voted_sum = parseInt(jQuery('#document_voted_count').html())+1;
jQuery('#document_voted_count').html(voted_sum);
}
if(!isNaN(parseInt(blamed_count))) {
var voted_sum = parseInt(jQuery('#document_voted_count').html())-1;
jQuery('#document_voted_count').html(voted_sum);
}
를 넣으시면 될거예요
추천시에도 아마 합산된 값이 안 나오시