웹마스터 팁
'신고 수' 노출 함수 및 신고시 게시글 이동팁
2012.07.03 03:02
간단한 것인데 팁과 묻고 답하기에도 답이 없어서
이렇게 팁으로 올려둡니다.
필요하신 분이 계실지도..
조회수와 추천수는,
{$oDocument->get('readed_count')}
{$oDocument->get('voted_count')}
이렇게 표시가 됩니다만,
신고수는
{$oDocument->get('declared_count')}
이렇게 표시가 되지 않습니다.
{@
$output = executeQuery('document.getDeclaredDocument', $oDocument);
$declared_count = $output->data->declared_count;
if(!$declared_count) $declared_count=0;
}
{$declared_count}
이렇게 구하시면 되겠네요.
DB를 보니, declared_count컬럼은 readed_count, voted_count와 같이
xe_documents에 있는 것이 아니라 xe_document_declared로 따로 빠져 있는데요.
0값이 나오지 않기에 if(!$declared_count) $declared_count=0;
이것도 하나 넣었습니다.
-----------------------------------------------------------
개인적으로 신고수가 5개이상이면 휴지통으로 보낼까 하는데, 나름 분석결과,
크게 손대지 않고, declared_count를 파악해서 해당 document_srl에 해당하는,
xe_documents 내의 module_srl만 0으로 돌리면 되려나요?
계속~
-----------------------------------------------------------
< 추가 >
단순하게 module_srl만 0으로 돌리면 될 줄 알았는데 DB를 보다보니 좀 더 신경써줘야 하는데요.
0으로 돌리면 그냥 목록에서만 사라지는.. ㅎㅎ
휴지통에 담겨진 정보가 1.4버젼에서는 xe_document_trash 테이블을 이용한것 같은데
1.5에서는 xe_trash 테이블에 정보가 보이는군요.
팁을 보다보니, 송회장님의 질답리플도 보이네요. @,@;
http://www.xpressengine.com/qna/20687344
휴지통으로 옮기는 것이 좀 더 복잡한듯 하고,
게시글 목록부분에서,
xe_documents 와 xe_comments의 module_srl만 특정게시판으로 돌리는 쿼리를 돌리면,
게시글 이동하는 것이겠고, 이게 더 쉽겠네요. @,@;
다시 계속~
-----------------------------------------------------------
< 추가2 >
신고시에 게시글이 이동되는 소스를 만들어서 적용했는데,
나름 간단하고 잘 되는군요.
http://www.xpressengine.com/qna/20687344
역시나 요기에서 질답란 송회장님의 팁을 참고로 했습니다. 감사합니다.
기본 코어와 모듈을 손대지 않고, 게시판스킨에서만 조정하였습니다.
게시판소스의 _style_list.html
아랫부분에,
<!--@foreach($document_list as $no => $document)-->
바로 아랫줄에 아래의 소스만 넣으면 됩니다.
{@
$temp_module_srl=15182411; <!--// 이동게시판의 module_srl -->
$declared_limit=5; <!--// 기준신고횟수-->
$args->document_srl = $document->document_srl;
$output = executeQuery('document.getDeclaredDocument', $args);
$declared_count=$output->data->declared_count;
}
<!--@if($temp_module_srl!=$document->get('module_srl') && $declared_limit<=$output->data->declared_count)-->
{@
$oDB = &DB::getInstance();
$query = $oDB->_query('update xp_documents set module_srl = '.$temp_module_srl.' where document_srl = '.$document->document_srl);
$query = $oDB->_query('update xp_comments set module_srl = '.$temp_module_srl.' where document_srl = '.$document->document_srl);
}
<!--@end-->
이동할 autotemp게시판만 하나 새로 만드시고,
해당게시판의 module_srl만 확인하셔서,
$temp_module_srl=15182411;
이 부분에서 수정해주시면 되겠네요.
신고 아이콘을 밖으로 빼고 하는 것은 검색하시면 나올겁니다.
감사합니다.