특정레벨이상만 이름클릭해서 레이어(이름,이메일,정보보기 등) 볼 수 있게 하기. > 그누3 팁자료실

그누3 팁자료실

특정레벨이상만 이름클릭해서 레이어(이름,이메일,정보보기 등) 볼 수 있게 하기. 정보

그누호환 특정레벨이상만 이름클릭해서 레이어(이름,이메일,정보보기 등) 볼 수 있게 하기.

본문

안녕하세요 그누보드 수정에 재미를 붙이고 있는 넘<?>입니다.
시작한지 얼마 안되서 저도 팁을 올릴 수 있게 됨에 정말 뿌듯합니다.^^

아무리 검색해봐도 구체적인 모범 답안을 찾기가 어려울 뿐더러 레이어를 아무도 못보는 팁이나 레이어 자체에서 삭제 추가하는 방법밖에 없기에 머리 싸매고 연구해봤습니다.^^;;;;;;

이 팁은 그누보드게시판에서 비회원은 글쓴이의 정보(?)를 보지 못하게 하되 회원은 볼수 있게 하기 위한 팁입니다.
또한 레벨을 정해서 그 레벨 이상의 회원만 볼 수 있게 설정도 가능합니다.^^;;;;;;;;;;;;;;;;;;;;;;;

수정 -정확히 말하면 수정하는것은 두개뿐입니다.gblist.skin.php와 gbview.skin.php만 수정하시고 나머지는 추가되는것만 있습니다.-해야 하는 파일은 5개입니다.
1. 그누보드 디렉토리/lib/gnuboard.lib.php
2. 그누보드디렉토리/bbs/gblist.php
3. 그누보드디렉토리/bbs/gbview.php
4. 그누보드디렉토리/bbs/skin/board/게시판스킨디렉토리/gblist.skin.php
5. 그누보드디렉토리/bbs/skin/board/게시판스킨디렉토리/gbview.skin.php

이렇게 다섯가지 파일을 수정할 준비를 합니다.

먼저 gnuboard.lib.php를 수정합니다.

472부터 520줄(약간의 오차는 있을 수 있습니다.제가 약간 수정을 한 까닭에..^^)까지를 복사해서 그대로 하단에 붙여넣기 합니다.

-----------------------------------------------
// 쪽지 레이어
function gblayer($mb_id, $name='', $email='', $homepage='', $open=0)
{
    global $cfg;
    static $layerno = 0;

    $layerno++;

    $email = preg_replace("/@/", "&#064;", $email);
    $homepage = set_http($homepage);
    $profile = 1;

    // 3.34
    // $cfg[mb_icon_only] 값에 따라 회원아이콘, 이름을 다르게 출력함
    $is_icon = false;
    $str = "<span onmousedown=\"gblayeraction(event, 'gblayer{$layerno}', 'visible')\" style='cursor:hand;'>";
  ~중략~
    } else {
        $str .= $name;
    }
    $str .= "</span>";

    // 3.29
    $name = preg_replace("/\"/", "&#034;", $name);
    $name = preg_replace("/\'/", "", $name);
    $str .= "<script language='JavaScript'>gblayer('gblayer{$layerno}', '{$mb_id}', '{$name}', '{$email}', '{$homepage}', '{$profile}', './bbs');</script>";
    return $str;
}

-------------이 내용을 그대로 붙여넣기 하신후에

딱 두가지만 수정합니다.
첫번째는 붙여넣기 한 곳의 젤 첫번째 줄
function gblayer($mb_id, $name='', $email='', $homepage='', $open=0) 여기를 다음과 같이 수정합니다.
function gblayer1($mb_id, $name='', $email='', $homepage='', $open=0)

두번째는
$str = "<span onmousedown=\"gblayeraction(event, 'gblayer{$layerno}', 'visible')\" style='cursor:hand;'>"; 이부분을 주석처리합니다.
//$str = "<span onmousedown=\"gblayeraction(event, 'gblayer{$layerno}', 'visible')\" style='cursor:hand;'>";  <-이런 형태로 주석처리 하시면 됩니다.

그 후에 gblist.php를 수정합니다.

152번 줄(마찬가지 오차가 있을 수 있습니다)에 보시면
$list[$i][name] = gblayer($row[mb_id], cut_str($row[wr_name],12,''), $row[wr_email], $row[wr_homepage]); <-이 내용이 있는데요 그대로 복사하셔서 바로 아래 붙여넣기 합니다.
붙여넣기 한 줄에 약간 수정을 합니다.
------------------------------------------
$list[$i][name] = gblayer($row[mb_id], cut_str($row[wr_name],12,''), $row[wr_email], $row[wr_homepage]);  <---원래 붙여넣기 된 줄
$list[$i][name1] = gblayer1($row[mb_id], cut_str($row[wr_name],12,''), $row[wr_email], $row[wr_homepage]);  <-----name과 gblayer바로 뒤에 숫자 1을 넣었습니다.

gbview.php파일에서는 117번째 줄(마찬가지 오차가 있을 수 있습니다)을 복사하여 바로 아래 붙여넣기 한 후에 다음과 같이 수정합니다.

$name = gblayer($write[mb_id], cut_str($write[wr_name],20), $write[wr_email], $write[wr_homepage]);  <-원래 줄
$name1 = gblayer1($write[mb_id], cut_str($write[wr_name],20), $write[wr_email], $write[wr_homepage]); <- 수정한 줄

자 이제 거의 다 되었습니다.

 gblist.skin.php 파일에서 이름이 들어가는 부분에
<?=$list[$i][name]?> <-  이 변수가 들어가는데요 여기에 수정을 합니다.

수정후 모습
=-------------------------------------
<? if ($member[mb_level] > 1) { ?>
<?=$list[$i][name]?>
<? } else { ?>
<?=$list[$i][name1]?>
<? }?>

gbview.skin.php 도 마찬가지입니다.

<?=$name?> <- 이 변수가 들어가는 부분에
<? if ($member[mb_level] > 1) { ?>
<?=$name?>
<? } else { ?>
<?=$name1?>
<? }?>

자 여기까지입니다. 이렇게 했을 경우에 리스트와 내용보기에서 비회원은 이름이 클릭되지 않게 됩니다.
하지만 회원으로 로그인을 하게 되면 이름이 클릭되면서 글쓴이 정보가 실린 레이어가 뜨게 됩니다.^^
만약에 특정 레벨 이하의 회원도 못보게 하고 싶으시다면 gblist.skin.php와gbview.skin.php 이 두개 파일에서
<? if ($member[mb_level] > 1) { ?> 이부분에 숫자1을 원하시는 레벨보다 1낮게 입력해놓으시면 됩니다.
예를 들어 5레벨부터 볼 수 있게 하고싶다면 숫자는 4가 되겠죠..^^;;

최강 그누보드
추천
0

댓글 전체

전체 1,026
그누3 팁자료실 내용 검색

회원로그인

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