묻고답하기
sejin7940_write_limit 댓글수 제한 애드온 수정
2018.03.03 15:05
안녕하세요!!
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 남기남 |
Pental |
회원가입 메뉴 삭제
[1]
![]() | 2018.02.28 by 휘즈 |
Pental |
게시판 수정
[2]
![]() | 2018.02.28 by Pental |
공건우 | 워드프로세서 대신 쓰는 것좀 알려주새요 | |
타루링 | 게시판을 많이 만들어도 문제가 되나요? [1] | 2018.02.27 by sejin7940 |
중고신인 | footer에 copyright 를 넣을려면... [4] | 2018.02.27 by 중고신인 |
하시아 | 게시글 제한 설정에 관한 해결 방법좀 알려주세요 | |
으브븝브 | 스케치북 SNS 카카오톡 [2] | 2018.02.27 by T1000 |
원자인 |
게시판 목록 추가 및 수정
![]() | |
무한잉크 | 스케치북 게시판 [1] | 2018.02.26 by 마야 |
testquestion |
GNB에서 3차 메뉴까지 보이게 하는 방법이 있을까요?
[1]
![]() | 2018.02.26 by HowtoXE |
딸기공주fbe87 |
1.8.27
[1]
![]() | 2018.02.26 by HowtoXE |
rabong |
xe 보드가 갑자기 안되네요
[1]
![]() | 2018.02.26 by sejin7940 |
무한잉크 | 스케치북 게시판 [1] | 2018.02.26 by sejin7940 |
화니짱 | 도와주세용~~~ 왕초보라서 답답해요 [1] | 2018.02.26 by 너에게제공 |
인룸 | 쉬운설치가 안되요.. | |
lun**** | 한 부분에서만 css, js파일 로드하기 [4] | 2018.02.23 by lun**** |
rail_man |
다운로드 메세지 노출 안되게하는 방법 문의합니다.
[3]
![]() | 2018.02.23 by rail_man |
송실장 | 게시물/회원 살리고 초기화 방법....알려주실 수 있나요.. [1] | 2018.02.23 by 송실장 |
lis**** |
회원정보 보기에서 특정탭 기능 제거
[2]
![]() | 2018.02.23 by 메이퀸 |
인룸 | 쉬운설치 |
86400 은 24시간입니다 그렇다면 한시간은 3600이므로 해당 수치로 바꾸면 원하는대로 작동할 것 입니다.