묻고답하기
[ 게시판 하루 글 작성수 제한 소스 수정 ] 좀 봐주실래요 ^^
2012.09.30 13:10
안녕하세요~~
각 게시판마다 하루 글 작성수 제한을 다르게 하려 합니다
한 게시판은 세진님 에드온으로 하면 되구요
다른 한 게시판만 글 작성수를 3개로 하여야 하는데
다음과 같은 송동우님 소스 수정 어드바이스가 있더군요
------------------------------------------------------------------------
board 1.3 / xe_official 게시판 스킨에서 테스트 했습니다.
xe - modules - board - skins - xe_official - write_form.html 열고
최상단에
{@
$write_count = 0;
$allowed_write = 3;
$today = date(Ymd);
$oDB = &DB::getInstance();
$query = $oDB->_query('select * from xe_documents where member_srl='.$logged_info->member_srl.' and module_srl=52');
$result = $oDB->_fetch($query);
}
<!--@ foreach($result as $key => $val)-->
{@ $regdate = substr($val->regdate,0,8)}
<!--@ if(trim($regdate) == trim($today))-->
{@ $write_count++}
<!--@ end-->
<!--@ end-->
<!--@ if($write_count < $allowed_write)-->
삽입하고
붉은색 숫자 3은 쓸 수 있는 갯수
붉은색 숫자 52는 게시판 번호
최하단에
<!--@ else-->
no more write allowed.......{$allowed_write} a day
<!--@ end-->
이것 삽입
붉은색 글은 원하는 대로 수정
참고: 이건 모듈번호 52번의 게시판만 제한을 거는 겁니다.
모든 게시판 마다 원하는 대로 갯수를 제한하려면 수정/추가 해야 할 겁니다.
-------------------------------------------------------------------------------------------------------------
그런데 스켓치북에서는 write_form.html 에 송동우님 시키는데로 해봤더니 43번줄 에러 멧시지를 보여 주며 안되더군요
스켓치북에서 할 수 있는 방법 좀 알려 주실 분~~!
XE는 최신 버전입니다~~
감사합니다
댓글 3
-
송동우
2012.09.30 16:03
-
4rfv5tgb6yhn
2012.09.30 16:23
송동우님께서 보아 주셨군요 ^^
추석 즐겁게 보내고 계시죠
{@
$write_count = 0;
$allowed_write = 3;
$today = date(Ymd);
$oDB = &DB::getInstance();
$query = $oDB->_query('select * from xe_documents where member_srl='.$logged_info->member_srl.' and module_srl=52');
$result = $oDB->_fetch($query);
}
<!--@foreach($result as $key => $val)-->
{@$regdate = substr($val->regdate,0,8)}
<!--@if(trim($regdate) == trim($today))-->
{@$write_count++}
<!--@end-->
<!--@end-->
<!--@if($write_count < $allowed_write)-->
삽입하고
붉은색 숫자 3은 쓸 수 있는 갯수
붉은색 숫자 52는 게시판 번호
최하단에
<!--@else-->
no more write allowed.......{$allowed_write} a day
<!--@end-->이렇게 고치고 글을 3개 작성하니
no more write allowed.......3 a day
라는 메시지를 보여 주며 작성 할 수 없더군요
잘 작동 되는것 맞죠 ?
감사합니다~~ 송동우님
늘 한가위만 같으세요~~
추신 : 그런데 모듈 번호만 써주선 그 모듈만 3개 작성 제한이 걸리는게 아니고 전체 게시판이 그렇더군요
모듈 조건을 걸어야 한다는 말씀 자체를 이해를 못하겠네요
좀 자세히 알려 주시면 안될까요?
-
송동우
2012.09.30 20:43
xe - modules - board - skins - xe_official - write_form.html 열고
최상단에
{@
$allowed_write = ($module_info->module_srl==62?1:($module_info->module_srl==376?2:($module_info->module_srl==10675?3:9999)));
$today = date(Ymd)."000000";
$oDB = &DB::getInstance();
$query = $oDB->_query('select count(*) as total from xe_documents where member_srl='.$logged_info->member_srl.' and module_srl='.$module_info->module_srl.' and regdate > '.$today);
$result = $oDB->_fetch($query);
}
이것 삽입<form action="./" method="post" onsubmit="jQuery(this).find('input').each(function(){if(this.title==this.value)this.value='';});return procFilter(this, window.insert)" id="fo_write" class="boardWrite">
이 부분을
<p cond="$result->total >= $allowed_write"> no more {$allowed_write} a day</p>
<form action="./" method="post" onsubmit="jQuery(this).find('input').each(function(){if(this.title==this.value)this.value='';});return procFilter(this, window.insert)" id="fo_write" class="boardWrite" cond="$result->total < $allowed_write || $logged_info->is_admin=='Y'">
이것으로 수정붉은 색 숫자는 게시판 모듈번호 파란 색 숫자는 제한 갯수 녹색 글씨는 그 외 제한없는 게시판의 제한 갯수 (그냥 9999개로 했음)
스킨에서 수정하는 만큼 적용하는 게시판 스킨이 모두 같아야 하며, 다른 게시판 스킨을 사용하는 게시판은 해당사항 없습니다........
1.5.x 버전에서는
@ 이것 뒤에 스페이스가 있으면 오류납니다.(foreach, if, end 같은 것들)
질문의 코드는 1.4.x 에서는 이상이 없습니다만
1.5.x 에서 사용하려면 @ 뒤에 스페이스를 없애야 합니다.
모듈별로 제한 갯수를 다르게 하려면
$mid 별로 조건을 걸어
$allowed_write 제한 갯수를 다르게 입력하면 됩니다......