웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
추천, 신고 제한 해제 (관리자만 v1.5.2.2)
2012.04.09 16:32
사이트를 운영하다보니 관리자에게만 가능한 몇가지들이 필요하더군요..
추천, 신고기능을 관리자만 제한을 해제하도록 수정하였습니다. 1.5.2.2 에서 작업하였습니다.
아래 내용을 modules/document/document.controller.php 의 updateVotedCount 와 그 바로 아래의 declaredDocument 함수를 교체해 주시면
됩니다.. 사실 기존것을 else로 묵어버리고 관리자만 새로 만들어 넣은것입니다..
/**
* @brief Increase the number of vote-up of the document
**/
function updateVotedCount($document_srl, $point = 1) {
if($point > 0) $failed_voted = 'failed_voted';
else $failed_voted = 'failed_blamed';
// Create a member model object
$oMemberModel = &getModel('member');
$member_srl = $oMemberModel->getLoggedMemberSrl();
$logged_info = Context::get('logged_info');
// Get the original document
$oDocumentModel = &getModel('document');
$oDocument = $oDocumentModel->getDocument($document_srl, false, false);
if ($logged_info->is_admin == 'Y') {
$args->member_srl = $member_srl;
$args->document_srl = $document_srl;
// Update the voted count
if($point < 0)
{
$args->blamed_count = $oDocument->get('blamed_count') + $point;
$output = executeQuery('document.updateBlamedCount', $args);
}
else
{
$args->voted_count = $oDocument->get('voted_count') + $point;
$output = executeQuery('document.updateVotedCount', $args);
}
if(!$output->toBool()) return $output;
// Leave logs
$args->point = $point;
$output = executeQuery('document.insertDocumentVotedLog', $args);
if(!$output->toBool()) return $output;
}
else {
// Return fail if session already has information about votes
if($_SESSION['voted_document'][$document_srl]) return new Object(-1, $failed_voted);
// Pass if the author's IP address is as same as visitor's.
if($oDocument->get('ipaddress') == $_SERVER['REMOTE_ADDR']) {
$_SESSION['voted_document'][$document_srl] = true;
return new Object(-1, $failed_voted);
}
// Check if document's author is a member.
if($oDocument->get('member_srl')) {
// Pass after registering a session if author's information is same as the currently logged-in user's.
if($member_srl && $member_srl == $oDocument->get('member_srl')) {
$_SESSION['voted_document'][$document_srl] = true;
return new Object(-1, $failed_voted);
}
}
// Use member_srl for logged-in members and IP address for non-members.
if($member_srl) {
$args->member_srl = $member_srl;
} else {
$args->ipaddress = $_SERVER['REMOTE_ADDR'];
}
$args->document_srl = $document_srl;
$output = executeQuery('document.getDocumentVotedLogInfo', $args);
// Pass after registering a session if log information has vote-up logs
if($output->data->count) {
$_SESSION['voted_document'][$document_srl] = true;
return new Object(-1, $failed_voted);
}
// Update the voted count
if($point < 0)
{
$args->blamed_count = $oDocument->get('blamed_count') + $point;
$output = executeQuery('document.updateBlamedCount', $args);
}
else
{
$args->voted_count = $oDocument->get('voted_count') + $point;
$output = executeQuery('document.updateVotedCount', $args);
}
if(!$output->toBool()) return $output;
// Leave logs
$args->point = $point;
$output = executeQuery('document.insertDocumentVotedLog', $args);
if(!$output->toBool()) return $output;
// Leave in the session information
$_SESSION['voted_document'][$document_srl] = true;
$obj->member_srl = $oDocument->get('member_srl');
$obj->module_srl = $oDocument->get('module_srl');
$obj->document_srl = $oDocument->get('document_srl');
$obj->update_target = ($point < 0) ? 'blamed_count' : 'voted_count';
$obj->point = $point;
$obj->before_point = ($point < 0) ? $oDocument->get('blamed_count') : $oDocument->get('voted_count');
$obj->after_point = ($point < 0) ? $args->blamed_count : $args->voted_count;
$output = ModuleHandler::triggerCall('document.updateVotedCount', 'after', $obj);
if(!$output->toBool()) return $output;
}
// Return result
if($point > 0)
{
return new Object(0, 'success_voted');
}
else
{
return new Object(0, 'success_blamed');
}
}
/**
* @brief Report posts
**/
function declaredDocument($document_srl) {
// Create a member model object
$oMemberModel = &getModel('member');
$member_srl = $oMemberModel->getLoggedMemberSrl();
$logged_info = Context::get('logged_info');
// Get the original document
$oDocumentModel = &getModel('document');
$oDocument = $oDocumentModel->getDocument($document_srl, false, false);
if ($logged_info->is_admin == 'Y') {
$args->member_srl = $member_srl;
$args->document_srl = $document_srl;
$output = executeQuery('document.getDeclaredDocument', $args);
if(!$output->toBool()) return $output;
$declared_count = $output->data->declared_count;
// Add the declared document
if($declared_count > 0) $output = executeQuery('document.updateDeclaredDocument', $args);
else $output = executeQuery('document.insertDeclaredDocument', $args);
if(!$output->toBool()) return $output;
// Leave logs
$output = executeQuery('document.insertDocumentDeclaredLog', $args);
$this->setMessage('success_declared');
}
else {
// Fail if session information already has a reported document
if($_SESSION['declared_document'][$document_srl]) return new Object(-1, 'failed_declared');
// Check if previously reported
$args->document_srl = $document_srl;
$output = executeQuery('document.getDeclaredDocument', $args);
if(!$output->toBool()) return $output;
$declared_count = $output->data->declared_count;
// Pass if the author's IP address is as same as visitor's.
/*if($oDocument->get('ipaddress') == $_SERVER['REMOTE_ADDR']) {
$_SESSION['declared_document'][$document_srl] = true;
return new Object(-1, 'failed_declared');
}*/
// Check if document's author is a member.
if($oDocument->get('member_srl')) {
// Pass after registering a session if author's information is same as the currently logged-in user's.
if($member_srl && $member_srl == $oDocument->get('member_srl')) {
$_SESSION['declared_document'][$document_srl] = true;
return new Object(-1, 'failed_declared');
}
}
// Use member_srl for logged-in members and IP address for non-members.
if($member_srl) {
$args->member_srl = $member_srl;
} else {
$args->ipaddress = $_SERVER['REMOTE_ADDR'];
}
$args->document_srl = $document_srl;
$output = executeQuery('document.getDocumentDeclaredLogInfo', $args);
// Pass after registering a sesson if reported/declared documents are in the logs.
if($output->data->count) {
$_SESSION['declared_document'][$document_srl] = true;
return new Object(-1, 'failed_declared');
}
// Add the declared document
if($declared_count > 0) $output = executeQuery('document.updateDeclaredDocument', $args);
else $output = executeQuery('document.insertDeclaredDocument', $args);
if(!$output->toBool()) return $output;
// Leave logs
$output = executeQuery('document.insertDocumentDeclaredLog', $args);
// Leave in the session information
$_SESSION['declared_document'][$document_srl] = true;
$this->setMessage('success_declared');
}
}
댓글 4
-
포토올/wow
2012.04.13 10:01
-
mugenk
2012.04.13 23:28
다른 많은 부분도 수정해서 쓰고 있기에.. 가지고 있는 파일을 올리기가 그랬습니다;
단순히 위 함수만 통째로 교체만 하면 되는 타입이라..; ^^;
-
포토올/wow
2012.04.15 09:03
넵...감사합니다...그런 남모를 속사정이 있었군요~^^*
성공했습니다.~^^*
-
ChoiJS
2012.08.10 10:55
1.5.3 적용 무리없이 잘 됩니다. 감사합니다. ^^
| 제목 | 글쓴이 | 날짜 |
|---|---|---|
| nginx rewrite 팁 | 병든natura | 2012.02.21 |
| 우분투 10.04 LTS, nginx+php-fastcgi+mysql 설치하기 [1] | fsfsdas | 2011.02.20 |
| Apache 2 prefork 와 worker 차이 [3] | 데브위트™ | 2012.06.26 |
|
확장변수 숫자(화폐) 콤마 표시하기 (sketchbook 스킨)
| 라싸 | 2012.08.12 |
| 일반 페이지(ARTICLE) 등에서 이미지 리사이징 제거. [1] | 무얼까 | 2012.08.12 |
| 추천, 신고 제한 해제 (관리자만 v1.5.2.2) [4] | mugenk | 2012.04.09 |
| '신고 수' 노출 함수 및 신고시 게시글 이동팁 [11] | 인터니즈™ | 2012.07.03 |
| 로봇에 의하여 무한 회원가입이 발생할 때 제가 처리하는 방법 [3] | 별님왕자 | 2012.02.27 |
| 스마트폰이 없는뒤~!! 모바일페이지를 봐야 할경우 [15] | 토깽이2 | 2010.07.02 |
| 제로보드XE 1.4 -> 1.5 초간단 업그레이드 [10] | 행복돌이 | 2012.05.15 |
|
페이지 타입 바꾸는 방법 (문서, 위젯, 외부페이지)
[5]
| 빛의바다 | 2012.07.31 |
| 소셜로그인 이메일 입력시 SSL 사용 | 패시브 | 2012.07.27 |
|
게시판 메뉴에 새글 알림 표시 띄우기
[13]
| 보거스내친구 | 2009.06.21 |
|
JwPlayer.swf 스킨 변경하기
[12]
| 귀여운유니 | 2012.02.20 |
| 중국어(zh-CN) 포함한 다국어시 페이지모듈 버그 해결법 [1] | sejin7940 | 2012.07.26 |
| virtualhost 사용에 관한 잡담 [3] | 인터니즈™ | 2012.06.15 |
|
로그인 정보 폼에 읽지 않은 쪽지 개수 보이기.
[21]
| 무얼까 | 2011.07.23 |
| 작성 글 보기에서 특정 모듈의 글 안나타나게 하기 | SCAC | 2012.07.21 |
| 1.5.1 최근 글 위젯에서 특수문자가 나가는 현상 [7] | Crom | 2012.02.12 |
| 관리자에서 그룹검색을 이용한 회원목록 제대로 안 보일때.. [2] | sejin7940 | 2012.06.01 |
좋은 정보 감사합니다.
같은 값이면 완성된 파일을 첨부해서 올려주시면 더 좋을텐데요~~.^^*
감사합니다.