로그인

검색

조회 수 19721 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄


사이트를 운영하다보니 관리자에게만 가능한 몇가지들이 필요하더군요..

 

추천, 신고기능을 관리자만 제한을 해제하도록 수정하였습니다. 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');
            }
        }



리눅스

유용한 정보 및 자료

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
57 XE [XE] 회원 정보에 순위(랭킹) 출력 보석 2012.09.18 13672
56 XE XE 지식인 오류 해결 보석 2012.09.14 12229
55 XE XE 게시물 자동삭제 애드온 file 보석 2012.09.13 14773
54 XE XE 포인트 수정 최고관리자만 가능 2 보석 2012.09.09 14503
53 XE xe 업데이트 후 해야할일 금일 부터정리 코어수정사항 7 보석 2012.09.06 16185
52 XE 레벨아이콘과 그룹아이콘 동시에 출력하기 보석 2012.09.05 31254
51 XE 원하는 위치에 아이콘샵 아이콘 출력하기 보석 2012.09.05 22780
50 XE XE 남은시간 표현하기 보석 2012.08.16 20061
49 XE XE 댓글 달때마다 글쓴이에게 포인트 주기 보석 2012.08.16 21521
48 XE XE 자기글에 댓글 작성시 포인트 증가 보석 2012.08.16 19515
47 XE XE 투표에 참가하면 포인트 지급하기 보석 2012.08.16 24072
46 XE XE iframe 사용하기 1 보석 2012.08.16 21573
45 XE XE 글쓴이의 최근글 출력 보석 2012.08.16 22439
44 XE xe 출석부 연속일수 표현 하기 보석 2012.08.15 23728
43 XE XE 확장변수 숫자(화폐) 콤마 표시하기 (sketchbook 스킨) 보석 2012.08.15 8148
42 XE XE속도개선 nginx minify 보석 2012.07.26 20677
41 XE XE 글작성후 30초 이내 작성 금지 보석 2012.06.15 23071
40 XE XE Minify으로 사이트 속도 개선하기 file 보석 2012.05.24 11198
» XE XE 추천, 신고 제한 해제 (관리자만 v1.5.2.2) 보석 2012.05.24 19721
38 XE XE 외부페이지 로그인연동 보석 2012.05.22 13198
Board Pagination Prev 1 2 3 4 5 6 Next
/ 6