게시판 관리자 설정인데 if문 좀 봐주세요 커피쏠게요ㅠ

게시판 관리자 설정인데 if문 좀 봐주세요 커피쏠게요ㅠ

QA

게시판 관리자 설정인데 if문 좀 봐주세요 커피쏠게요ㅠ

본문

안녕하세요. 그누보드 4사용중입니다.

스킨을 일부 커스텀하여 사용하고 있는데 이부분에서 턱! 막히네요(PHP는 돌잡이수준입니다)

 

현재 게시판 마다 관리자아이디를 하나씩 부여해서
 

관리자1은 게시판1만 볼수있고 2는 못보고

관리자2는 게시판2만 볼수있고 1은 못보고
 

이런식으로 자기 게시판만 확인할 수 있도록 index파일의 최근글부분을 조금 커스텀해서 사용중입니다.

그런데 그누보드 특성상 게시판마다는 1명의 관리자 아이디만 지정이 가능하더라구요.ㅠㅠ

 

만약,

게시판3을 관리자 1과 관리자 2가 동시에 열람할 수 있도록 하고 싶은데

게시판3에는 관리자 1명만 등록이 가능하죠..

 

다른분들 글도 많이 찾아봤는데 extend 폴더에 파일만들어서 넣는거 안먹습니다.

어떤분이 자세하게 남겨주신 글도 찾아서 기존 common.php파일부터 list, view 다 수정하여 테스트했지만

이것도 결국은 안되네요 ( 콤마나 |를 사용해서 중복으로 관리자명을 넣을수 있게 하는 코드)

 



게시판 관리자만 게시판을 볼 수 있게 하는 부분인 코드를 가져와서 나름(?) 해석해보았습니다.

도무지 어디를 수정해서 사용해야 할지 모르겠네요. mysql에 접속해서 필드값에 직접 넣어보려고도 했으나

test1, test2 이렇게 관리자를 두개 넣으면 관리자 아이디 자체를 [test1, test2] 이렇게 인식하네요.

 

도와주세요 여러분..사랑합니다.. 커피쿠폰 쏠게요..

 


<!-- 메인화면 최신글 시작 -->
<table width="<?=$table_width?>" cellpadding=0 cellspacing=0><tr><td valign=top>
<?
//  최신글
$sql = " select bo_table, bo_subject from $g4[board_table] order by gr_id, bo_table ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
    $sql2 = " select bo_admin from $g4[board_table] where bo_table = '$row[bo_table]' ";
    $row2 = sql_fetch($sql2);
    if ($is_admin || ($row2[bo_admin] && $member['mb_id']==$row2[bo_admin]))
        
        // latest(스킨, 게시판아이디, 출력라인, 글자수);
            echo latest("basic", $row['bo_table'], 10, 70);
    echo "<p>\n";
}
?>
</td></tr></table>
<!-- 메인화면 최신글 끝 -->

이 질문에 댓글 쓰기 :

답변 2

관리자 나오는 부분도 아래 같이 처리하시면 됩니다


$sql = " select bo_table, bo_subject from $g4[board_table] order by gr_id, bo_table ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
    $sql2 = " select bo_admin from $g4[board_table] where bo_table = '$row[bo_table]' ";
    $row2 = sql_fetch($sql2);
    //보드관리자를 분리
    $bo_admin_array=array("");
    if($row2[bo_admin]){
    $bo_admin_array=explode(",", $row2[bo_admin]);//만약 구분자를 , 로 하셨으면
    }
    //in_array 를 이용 배열안에 $member['mb_id'] 가 있는지 확인합니다 
    if ($is_admin || ($row2[bo_admin] && in_array($member['mb_id'], $bo_admin_array) )
        // latest(스킨, 게시판아이디, 출력라인, 글자수);
            echo latest("basic", $row['bo_table'], 10, 70);
    echo "<p>\n";
}

 

다른 부분들은 

function is_bo_admin($bo_admin)
{
    global $member;
    if(!$member[mb_id]){return false;}
    if(!$bo_admin){ return false;}
    $bo_admin_array=explode(",", $bo_admin);//만약 구분자를 , 로 하셨으면
    return in_array($member['mb_id'], $bo_admin_array);
}
함수를 사용하셔서 처리하셔도 좋습니다.

상세하고 친절한 답변 정말 감사드립니다.
찾아 해메이다가 결국은 제가 mysql에 직접 admin2 필드를 생성해서 값을 집어넣은다음
그 값을 가져다가 일치할경우 노출되도록 설정했는데, 매번 그렇게 하기가 너무 복잡할것 같아서
남겨주신 해결방법을 활용해 다시한번 적용해보도록 할게요 :) 
그런데 아래 다른부분들은~ 부터 좋습니다. 부분은 어디로 들어가야 하는 소스인가요?

여러가지 답변을 찾아보고 array로 추가할 수 있는 방법을 다 시도해 보았는데
mysql에서 찾아보니 구분자를 넣엇음에도 불구하고 [ a, b ] 이면 a와 b가 어드민인데
a, b 가 하나인 통째로 인식되어 어드민 1명만 지정되더라구요..

저에게 쪽지로 카카오톡 아이디나 연락처 남겨주시면 커피쿠폰 보내드릴게용!!♡

function is_bo_admin($bo_admin)
{
    global $member;
    if(!$member[mb_id]){return false;}
    if(!$bo_admin){ return false;}
    $bo_admin_array=explode(",", $bo_admin);//만약 구분자를 , 로 하셨으면
    return in_array($member['mb_id'], $bo_admin_array);
}

 

/lib/common.lib.php 에 넣어 주시면 아무곳에서나 불러오실수 있으시고요 

 

위에부분 관리자 검색에 

 

$is_bo_admin=is_bo_admin($row2[bo_admin]) ; 
//in_array 를 이용 배열안에 $member['mb_id'] 가 있는지 확인합니다 
if ($is_admin || ($row2[bo_admin] && $is_bo_admin ){

 

처럼하셔도 됩니다 

답변을 작성하시기 전에 로그인 해주세요.
전체 116
QA 내용 검색

회원로그인

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