묻고답하기

안녕하세요!!

https://www.xpressengine.com/index.php?mid=download&package_id=19923002

댓글 제한 애드온을 사용하고싶은데

1일동안 게시글 제한이 아니라 1시간 동안 제한 할수 있게 수정하고싶습니다.

어디를 수정해야되는지 고수님들의 조언 부탁드립니다.

 

아래는 소스입니다.

<?php
    if(!defined("__ZBXE__") && !defined("__XE__")) exit();

    /**
     * @file sejin7940_write_limit.addon.php
     * @author sejin7940 ( http://sejin7940.co.kr)
     * @source author 난다날아 (sinsy200@gmail.com)
     * @brief 하루에 작성할 수 있는 글/댓글을 제한합니다.
     *
     **/

    // 로그인 정보 가져오기
    $logged_info = Context::get('logged_info');

    // 관리자면 통과!!
    if ($logged_info->is_admin == 'Y')    return;

    // 오늘 작성글 개수를 가져온다.
    // 비회원은 ip를 기준으로...

    if(!$addon_info->term) $addon_info->term=1;
    $args->limit_start = date("Ymd",time() - ($addon_info->term-1) * 86400);

    if (!$logged_info)    $args->ipaddress =     $_SERVER['REMOTE_ADDR'];
    else                $args->member_srl = $logged_info->member_srl;

    if($addon_info->mid_list) {
        $oModuleModel = &getModel('module');
        $limit_module_srl_array = $oModuleModel->getModuleSrlByMid($addon_info->mid_list);
        $limit_module_srls=implode(',',$limit_module_srl_array);
    }
    if($addon_info->mid_together=="Y") {  // 선택한 게시판 통합 적용
        if(count($addon_info->mid_list)) $args->limit_module_srl = $limit_module_srls;  // 선택한 게시판
        else $args->limit_module_srl="";  // 전체
    }
    elseif($addon_info->mid_list) {  // 선택한 게시판 별도 각각 적용
        if(strstr(','.$limit_module_srls.',',','.$this->module_info->module_srl.',')) {
            $args->limit_module_srl = $this->module_info->module_srl;
        }
        else return;
    }
    else $args->limit_module_srl="";  // 전체


//echo $addon_info->mid_list[0]."<br>";   // 모듈목록
//echo $this->module_info->mid;   // 현재위치의 module_srl 값
    Context::loadLang(_XE_PATH_.'addons/sejin7940_write_limit/lang');
   
    // 글 작성시
    if( ( $called_position == 'before_module_init' || $called_position=='before_module_proc') && $this->act == 'procBoardInsertDocument' && !Context::get('document_srl')) {  // sejin7940 수정 (수정시 작동 안 하도록 하기 위해서)
        // 제한이 걸려있지 않으면 통과!
        if (!$addon_info->document_limit)    return;
       


        $output = executeQuery('addons.sejin7940_write_limit.document_count', $args);

        if (!$output->toBool()) {
            $error = $output->getMessage();
            // xml_rpc return
            header("Content-Type: text/xml; charset=UTF-8");
            header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
            header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
            header("Cache-Control: no-store, no-cache, must-revalidate");
            header("Cache-Control: post-check=0, pre-check=0", false);
            header("Pragma: no-cache");
            print("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<response>\r\n<error>-1</error>\r\n<message>$error</message>\r\n</response>");

            Context::close();
            exit();
        }

        // 설정된 개수 이상의 작성이면 중단!

        if ($output->data->count >= $addon_info->document_limit  ) {
            // xml_rpc return
            header("Content-Type: text/xml; charset=UTF-8");
            header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
            header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
            header("Cache-Control: no-store, no-cache, must-revalidate");
            header("Cache-Control: post-check=0, pre-check=0", false);
            header("Pragma: no-cache");
            printf("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<response>\r\n<error>-1</error>\r\n<message>".Context::getLang('msg_limit_document')."</message>\r\n</response>", $addon_info->document_limit);

            Context::close();
            exit();
        }

    // 글 작성 화면
    }else if($called_position == 'after_module_proc' && $this->act == 'dispBoardWrite' && !Context::get('document_srl')) {  // sejin7940 수정 (수정시 작동 안 하도록 하기 위해서)
        // 제한이 걸려있지 않으면 통과!
        if (!$addon_info->document_limit)    return;

        // 게시판에서 메시지가 나가면 중단
        if ($this->getTemplateFile() == 'message.html') return;
       
        $db_output = executeQuery('addons.sejin7940_write_limit.document_count', $args);

        if (!$db_output->toBool()) {
            $this->errer = "SQL Error";
            return;
        }

        // 설정된 개수 이상의 작성이면 중단!
        if ($db_output->data->count >= $addon_info->document_limit) {
            $output = new Ob ject(-1, sprintf(Context::getLang('msg_limit_document'), $addon_info->document_limit));
            return;
        }
    // 댓글 작성 때
    }else if( ($called_position == 'before_module_init' || $called_position=='before_module_proc') && $this->act == 'procBoardInsertComment') {

        // 제한이 걸려있지 않으면 통과!
        if (!$addon_info->comment_limit)    return;
       
        // 오늘 작성 댓글 개수를 가져온다.
        $output = executeQuery('addons.sejin7940_write_limit.comment_count', $args);
        if (!$output->toBool()) {
            $error = $output->getMessage();
            // xml_rpc return
            header("Content-Type: text/xml; charset=UTF-8");
            header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
            header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
            header("Cache-Control: no-store, no-cache, must-revalidate");
            header("Cache-Control: post-check=0, pre-check=0", false);
            header("Pragma: no-cache");
            print("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<response>\r\n<error>-1</error>\r\n<message>$error</message>\r\n</response>");

            Context::close();
            exit();
        }

        // 설정된 개수 이상의 작성이면 중단!
        if ($output->data->count >= $addon_info->comment_limit) {
            // xml_rpc return
            header("Content-Type: text/xml; charset=UTF-8");
            header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
            header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
            header("Cache-Control: no-store, no-cache, must-revalidate");
            header("Cache-Control: post-check=0, pre-check=0", false);
            header("Pragma: no-cache");
            printf("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<response>\r\n<error>-1</error>\r\n<message>".Context::getLang('msg_limit_comment')."</message>\r\n</response>", $addon_info->comment_limit);

            Context::close();
            exit();
        }

    }
?>
 

글쓴이 제목 최종 글
XE 공지 글 쓰기,삭제 운영방식 변경 공지 [16] 2019.03.05 by 남기남
myemail00001 로그인 화면에 출력되는 content?를 없애고 싶습니다. 그리고 이메일로 계정찾기 하면 이메일이 안옵니다.. [1] 2018.05.11 by 디자인클립
이여은 메인메뉴 클릭시 페이지 이동  
안준근 홈페이지 회원가입시 HTTP500 에러문제 [2] 2018.05.11 by 안준근
rail_man 통큰아이 서버에 XE를 설치코자 하는데.... [3] 2018.05.11 by DOCHIS
김치찌게 자동으로 www 붙이게 .htaccess 파일을 수정했는데 2% 부족한거 같습니다. [5] 2018.05.11 by 마야
큰돌♡ XE2의 db 클래스에서 지원하는 데이터 타입요....  
DOCHIS XE에서 캐시처리 과정에 대한 질문  
유미나 모바일 댓글 등록이 안되고 이렇게 뜨는데 이유가 뭘까요ㅠㅠ file  
인룸 모바일이에서 스크롤이 이상해요 file  
myemail00001 default 게시판 스킨에서 로그인 로그아웃 버튼을 넣고 싶습니다. [2] 2018.05.09 by myemail00001
하시아 사이트가 갑자기 느려졌습니다  
카이스미 ankgreen.com 접속하면 사이트가 깨져나옵니다. [1] 2018.05.09 by 비누남어
headkim 관리자 메뉴가 링크가 깨졌어요  
우하하하화이팅 xedition 레이아웃 슬라이드가 전체화면으로 늘어나는데요.. [2] 2018.05.08 by 싸이몬
빡현111 스케치북게시판 확장변수 출력부분 css조절에 대한 질문입니다(이미지첨부) file  
MIC 3차메뉴만 추출하여 표시하려 합니다. [2] file 2018.05.08 by MIC
myemail00001 {$content} 질문입니다.  
myemail00001 로그인이 안됩니다. OOPS! 관리자만 접속이 가능합니다.가 뜹니다. [2] 2018.05.07 by myemail00001
착한동구 최신글 스킨이요 [1] 2018.05.07 by sejin7940
아스마 GIF 파일이 너무 늦게 올라가집니다 [3] 2018.05.07 by 아스마
세걸 xe 3.0버전 서버환경 [1] 2018.05.07 by SimpleCode
ROCK 간곡히 도움 요청 드립니다. file  
브로커 제로보드4 수정한 글 복구 [2] 2018.05.06 by 브로커
gamy**** 원인이 무엇인지 모르겠네요. 고수 도움부탁 file  
빡현111 게시판을 만드려면 파이썬을 공부해야 하나요? [3] 2018.05.05 by 기진곰
이봉교 하나의 도메인으로 여러사이트 구축하는 방법좀.. 예 있음 [2] 2018.05.05 by uppylook
갤럭시탭 게시물 자동 삭제애드온 문의 [2] file 2018.05.04 by 갤럭시탭
무돌이 통합검색 결과페이지에서 위젯 출력문제 file  
forest535 getUrl 로 링크걸기 [3] 2018.05.04 by forest535
Dan 도메인 설정후 다른 페이지 접속시 주소창에 ip 노출..