웹마스터 팁

http://www.xpressengine.com/index.php?document_srl=20642643&search_keyword=%EC%8B%A0%EA%B3%A0+%EC%88%98&mid=qna


간단한 것인데 팁과 묻고 답하기에도 답이 없어서

이렇게 팁으로 올려둡니다.


필요하신 분이 계실지도..


조회수와 추천수는,

{$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;

이 부분에서 수정해주시면 되겠네요.


신고 아이콘을 밖으로 빼고 하는 것은 검색하시면 나올겁니다.

감사합니다.