불량회원 겁주기??? > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

불량회원 겁주기??? 정보

불량회원 겁주기???

본문

안녕하십니까?
오랫만에 팁을 하나 올려봅니다.

밤새 잠도 안오고 게시판의 실시간 채팅이 뜸한 틈에 하나 만들어 봤습니다.
만들게 된 동기는 최근에 불미스러운 일들이 잦아져서 비슷한 일로 필요로 하실 분들이 있을지 모르겠단 생각에 만들게 되었습니다.
잠깐, 테스트를 해본것이라 버그가 있을지 모르겠습니다만 일단 공개를 합니다.

그누보드에는 기본적으로 회원에 대한 차단 기능이 있는데 이 기능은 최후의 수단이라 할수가 있겠습니다. 그래서 보다 유연하게 회원의 권한에 제한을 둘 기능을 추가한 것이라 보면 되겠습니다.

****************************************************************************

./adm/izen.update.php
<?
$sub_menu = "100600";
include_once("./_common.php");

check_demo();

if ($is_admin != "super")
    alert("최고관리자만 접근 가능합니다.", $g4[path]);

$g4[title] = "Izen Style 업그레이드";
include_once("./admin.head.php");

sql_query(" ALTER TABLE `$g4[member_table]` ADD `mb_limit` CHAR( 1 ) DEFAULT '1' NOT NULL AFTER `mb_memo_call` ", FALSE);
sql_query(" ALTER TABLE `$g4[member_table]` ADD `mb_limit_s` VARCHAR( 13 ) DEFAULT '' NOT NULL AFTER `mb_limit` ", FALSE);
sql_query(" ALTER TABLE `$g4[member_table]` ADD `mb_limit_e` VARCHAR( 13 ) DEFAULT '' NOT NULL AFTER `mb_limit_s` ", FALSE);

echo "UPGRADE 테이블 & 필드 추가완료.";

include_once("./admin.tail.php");
?>


./adm/admin.lib.php

113 라인에 추가

// 사이트 이용제한을 위해서... By IZEN
function get_member_limit_select($name, $start_id=1, $end_id=2, $selected='', $event=''){      global $g4;
    $str = "<select name='$name' $event>";
    for ($i=$start_id; $i<=$end_id; $i++){
      $str .= "<option value='$i'";
      if ($i == $selected)
        $str .= " selected";
        $str .= ">";
        if ($i == '1'){
          $str .= "해제";
        } else if ($i == '2'){
          $str .= "제한";
        }
      $str .= "</option>";
    }
    $str .= "</select>";
    return $str;
}



./adm/member_list.php

79 라인에 추가

$colspan = 18;


82 라인에 추가

<script language="javascript" type="text/javascript">
function win_calendar(fld, cur_date, delimiter, opt){
  if (!opt)
    opt = "left=350, top=150, width=240, height=230, scrollbars=0,status=0,resizable=0";
  win_open(g4_path+"/" + g4_bbs + "/calendar.php?fld="+fld+"&cur_date="+cur_date+"&delimiter="+delimiter, "winCalendar", opt);
}
</script>


139 라인에 추가

<colgroup width=40>
<colgroup width=120>
<colgroup width=120>


158 라인에 추가

<td><?=subject_sort_link('mb_limit')?>제한</a></td>
<td><?=subject_sort_link('mb_limit_s')?>시작일</a></td>
<td><?=subject_sort_link('mb_limit_e')?>해제일</a></td>


188 라인에 추가

$limit_s_date = substr($row[mb_limit_s],0,10);
$limit_e_date = substr($row[mb_limit_e],0,10);


215 라인에 추가

<td>".get_member_limit_select("mb_limit[$i]", 1, 2, $row[mb_limit])."</td>
<td title='$row[mb_limit_s]'><input id='mb_limit_s[$i]' name='mb_limit_s[$i]' size='10' maxlength='20' value=\"$limit_s_date\">&nbsp;<button height='10' onclick=\"win_calendar('mb_limit_s[$i]', document.getElementById('mb_limit_s[$i]').value, '-');\"> 선택 </button></td>
<td title='$row[mb_limit_e]'><input id='mb_limit_e[$i]' name='mb_limit_e[$i]' size='10' maxlength='20' value=\"$limit_e_date\">&nbsp;<button height='10' onclick=\"win_calendar('mb_limit_e[$i]', document.getElementById('mb_limit_e[$i]').value, '-');\"> 선택 </button></td>



./member_list_update.php

24 라인에 추가

mb_limit = '$mb_limit[$k]',
mb_limit_s = '$mb_limit_s[$k]',
mb_limit_e = '$mb_limit_e[$k]'



./bbs/write.php

9라인에 추가

if ($member[mb_limit] == '2'){
  alert("$member[mb_nick]님은 $member[mb_limit_s] 부터 $member[mb_limit_e]까지 사이트 이용이 제한되어 있습니다.", $g4['path']);
}



./bbs/view_comment_update.php

7 라인에 추가

if ($member[mb_limit] == '2'){
  alert("$member[mb_nick]님은 $member[mb_limit_s] 부터 $member[mb_limit_e]까지 글쓰기 권한이 제한되어 있습니다.", $g4['path']);
}

*************************************************************************

admin.lib.php 의 소스를 여러 항목으로 수정하시면 여러 페이지를 세밀하게 나눠서 제한을 걸수가 있을겁니다.

이상으로 도움이 되었기를 바랍니다.

^^
추천
3

댓글 23개

멋진 내용입니다.

잠시 게시판이 한가한 틈에 작성하셨다라...
질투심에 배가 쬐끔 아픕니다.
스크랩과 추천을 동시에 날리는 센스~*
^^ 좋은 팁입니다. 근데 저 날자가 지나면 관리자가 해제를 해야하는 아쉬운점이 있네요 ;; 업그레이드 업그레이드 흐흐흐
좋은 지적 감사합니다.

새벽에 잠깐 테스트를 하고 올리느라 미처 그 부분을 놓친것 같습니다.
차후 개선을 하도록 하겠습니다.

^^
경고창 띄울때 팁.ㅋㅋ
'test님은 2006-4-1부터2066-4-1까지 글쓰기 자격이 없습니다.기간중 돌아가시면 애도하는 차원에서 글쓰기 자격을 드립니다.'
ㅡㅡㅋ
그렇죠.

팁으로만 그칠게 아니라 응용이 중요하다 봅니다.
어차피 소스코드는 뻔한것이라 활용 방법이라든지 응용에 대해서 고민을 하면 보다 나은 소스가 나오리라 봅니다.

감사합니다. ^^
./bbs/write.php 9 라인에 추가
===============================================================================
$nDateTime = mktime(0,0,0,date("m"),date("d"),date("Y")); //오늘일자
$sDateTime = strtotime($member[mb_limit_s]); //시작일자
$eDateTime = strtotime($member[mb_limit_e]); //종료일자
//오늘일자가 기간내이면 제한값(2) 무조건 세팅
if ($nDateTime >= $sDateTime && $nDateTime <= $eDateTime) $member[mb_limit] = '2';

if ($member[mb_limit] == '2'){
  alert("$member[mb_nick]님은 $member[mb_limit_s] 부터 $member[mb_limit_e]까지 사이트 이용이 제한되어 있습니다.");
}
===============================================================================

./bbs/view_comment_update.php 7 라인에 추가
===============================================================================
$nDateTime = mktime(0,0,0,date("m"),date("d"),date("Y")); //오늘일자
$sDateTime = strtotime($member[mb_limit_s]); //시작일자
$eDateTime = strtotime($member[mb_limit_e]); //종료일자
//오늘일자가 기간내이면 제한값(2) 무조건 세팅
if ($nDateTime >= $sDateTime && $nDateTime <= $eDateTime) $member[mb_limit] = '2';
else $member[mb_limit] = '1';

if ($member[mb_limit] == '2'){
  alert("$member[mb_nick]님은 $member[mb_limit_s] 부터 $member[mb_limit_e]까지 사이트 이용이 제한되어 있습니다.");
}
전체 95 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT