로그인

검색

조회 수 19542 추천 수 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
번호 분류 제목 글쓴이 날짜 조회 수
84 XE XE 일정 추천수 이상이면 특정 게시판으로 게시글 이동 보석 2012.01.13 19896
83 XE xe 이미지프로세스 묘듈 file 보석 2014.05.01 9108
82 XE XE 이메일 수정 금지 하기. 보석 2014.05.07 8232
81 XE XE 위젯 이미지 클릭시 확장변후 링크로 이동 보석 2013.01.18 16044
80 XE XE 외부페이지 로그인연동 보석 2012.05.22 12715
79 XE xe 업데이트 후 해야할일 금일 부터정리 코어수정사항 7 보석 2012.09.06 15909
78 XE XE 애드온 - 닉네임동기화 및 일정 추천수시 게시글 이동 1 file 보석 2013.09.01 20228
77 XE XE 알림센터 수정버전 file 보석 2014.04.15 7030
76 XE XE 스팸회원 가입을 차단 애드온 secret 보석 2014.05.11 2
75 XE XE 스케줄 게시판 스킨 file 보석 2011.11.23 12086
74 XE XE 쇼핑몰 저작권표시 보석 2014.05.30 7170
73 XE XE 설문조사시 참여자 포인트 지급 2 보석 2013.03.19 25360
72 XE XE 사용중지된 이용자들이 많을때 쿼리문 보석 2012.02.13 13456
71 XE XE 비회원도 추천가능하게(비회원 추천) 보석 2013.10.08 20874
70 XE XE 분류 출력기(5단 트리) file 보석 2011.11.23 13161
69 XE XE 보드DX 자동글쓰기 및 댓글 쓰기 방지 2 보석 2013.08.26 20838
68 XE XE 무한 새로로침 방어 애드온 file 보석 2014.04.15 8995
67 XE XE 모든게시판 엮인글 차단 쿼리문 보석 2013.08.23 25826
66 XE XE 만우절 애드온 ㅎㅎ file 보석 2014.05.11 7291
65 XE XE 레이아웃에서 checkbox의 설정 사용법 보석 2013.02.28 7321
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 Next
/ 11