묻고답하기

<?php
    if(!defined("__ZBXE__")) 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를 기준으로...

 $args->today = date("Ymd");
 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="";  // 전체
 }
 else if($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'+ ' && $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 Object(-1, sprintf(Context::getLang('msg_limit_document'), $addon_info->document_limit));
   return;
  }
 // 댓글 작성 때
    }else if($called_position == 'before_module_init' && $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();
  }

    }
?>

 

위는 댓글제한 애드온 php파일입니다.

만약 댓글 제한 갯수가 20개라면 19번째 댓글을 등록할때 '댓글 작성 가능 횟수가 1회 남았습니다' 라는 알림창을 보여주고 싶은데...

아직 초보수준이라 수정이 쉽지 않네요 ㅠㅠ

고수분들의 도움 부탁드립니다~

글쓴이 제목 최종 글
XE 공지 글 쓰기,삭제 운영방식 변경 공지 [16] 2019.03.05 by 남기남
Jiyoung540 새글 아이콘,총게시물 관련 자바스크립트와 PHP 고수님의 도움이 절실합니다! [3] file 2008.12.18 by Jiyoung540
소우리 분양용 홈페이지 다시 질문 드릴게요~ [2] file 2008.12.18 by 소우리
글쓴이 도와주세요 [1] file 2008.12.18 by 애치티
나상현 XE 메뉴가 좀 이상합니다. [2] file 2008.12.18 by 나상현
Sonamu 권한에 따라 페이지를 다르게 설정할 수 있나요? [1] 2008.12.18 by 팔공산
tkfkdql 제로보드XE에 BGM적용시 오류 [1] 2008.12.18 by 팔공산
쿤. 링크 클릭시 글씨가 작아져요.. 대체 왜이런걸까요.. [4] 2008.12.18 by 이슬나라
바토 페이지에서 이미지 추가가 안됩니다. [2] file 2008.12.18 by 바토
데미안k 제로보드 기반으로.... 쇼핑몰이나 포털사이트가 가능한가요? [1] 2008.12.18 by 이슬나라
장뚱이 로그인 폼 삽입시 화면 우측이 아래쪽으로 확밀려요.ㅡㅡ;; [1] 2008.12.18 by 느까끼
CandyZone 비나무님 또한번부탁드릴게요. [3] 2008.12.18 by 느까끼
XE 감사합니다 회원관리와 권한관리가 이상합니다. [2] 2008.12.18 by mafiazone
ddddffdfd 왜 제로보드에서 \ 가 안되는 거죠? [2] 2008.12.18 by 백성찬
빅비즈 메뉴, 카테고리등 트리구조가 나타나지 않네요. [3] 2008.12.18 by 닉.네.임
최형준196 한글이미지 등록시 [4] 2008.12.18 by 느까끼
나라 위지윅에디터 일본어 설정시 한국어로 나오는 현상? [1] 2008.12.18 by 백성찬
모스캠텍 고수님들 질문이있습니다 ! [1] file 2008.12.18 by 느까끼
때린데 또때려 zbxe/file/attch/binaries/3153/ 안에 있는 이상한 글자로 파일 [2] 2008.12.18 by 백성찬
박성진838 관리자ID 문제.. [2] 2008.12.18 by 박성진838
썬더스톰 권한관리 어떻게 해야하죠? [1] 2008.12.18 by 느까끼
강승부 관리자 페이지 오류 [1] 2008.12.18 by 느까끼
장경미 폼양식그대로 메일로 보내는방법... [1] 2009.06.01 by 芋焼酎
구구다스 스킨이 이상해요  
궁금 웹진형 최근글 출력기본스킨(xe_official) 목록수 변경은 어디서하나여? [2] 2008.12.18 by 궁금
궁금 관리자에서 커뮤니케이션 기능이 안돼고 화면이 깨져서 나와여 도와주세여 [8] file 2008.12.18 by 궁금
kin 게시판에서요.. 이름 내용 제목등 빈칸이면 체크여부창뜨잔아요... 이메일도 하고싶은데..  
이슬나라 쪽지에 파일첨부 [1] 2008.12.18 by 느까끼
_DeTecTiVe_ 어드민에서 기능성 모듈 중 첨부파일의 게시판 선택 드랍다운메뉴 수정요청 [2] file 2008.12.18 by 비나무
개돌 메일 인증 받기 전에 로그인 하기 [3] 2008.12.18 by 느까끼
유지은 분양관련 질문좀 드릴께요. [1] 2008.12.18 by 백성찬