관리자화면 메뉴 제어하기에 대한 질문입니다. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

관리자화면 메뉴 제어하기에 대한 질문입니다. 정보

관리자화면 메뉴 제어하기에 대한 질문입니다.

본문

오류가 나는곳의 주소를 알려주시면 더 빠르고 정확하게 답변 받을 수 있습니다.

오류 주소 :

관리자 화면을 레벨별로 임의의 접근권한으로 지정해서 메뉴를 보여주는 것을 선택할 수 있게 하려고 합니다.
레벨별 접근은 가능한데요.
여기서 g4_gc라는 테이블에 gc_access1과 gc_access2라는 필드를 만들어서 각 필드에 0 또는 1이 입력되게 만들었습니다. g4_gc라는 테이블은 그룹의 기능과 비슷합니다.

만약 레벨이 5이상이면서 gc_access1에 1이 입력되었을 때 메뉴 보여주기는
admin.menu100.php에 array("300300", "접근테스트", "$g4[admin_path]/5_2_2_list.php",5,"",1)
이런식으로 추가를 해주면 레벨 5이상이면서 gc_access1에 1이 입력된 그룹의 사람들만 메뉴를 볼 수 있게 하려고 합니다.

문제는 레벨만 적용하면 동작을 합니다.
그런데, gc_access1에 해당 하는 부분에 0을 제외한 숫자가 기입되면 메뉴는 보이지 않기는 한데,
모든 사람이 다 보이지 않더라구요. 최고관리자도 선택한 메뉴가 보이지 않아요.

조금 내용이 길기는 하지만, 아래 부분 좀 봐 주세요....

아래와 같이 일단 admin.head.php에서 회원의 gc_access1과 gc_access2의 값을 불러왔습니다.
$sql = "select gc_access1 , gc_access2 from g4_gc order by gc_state , gc_name";

$result = mysql_query($sql);

$row = mysql_fetch_array($result);
$gc_access1 = $row["gc_access1"];
$gc_access2 = $row["gc_access2"];

그리고 아래와 같이 print_menu2부분을 수정을 했습니다.

function print_menu2($key, $no)
{
    global $menu , $auth_menu , $is_admin, $auth , $g4 , $member , $gc_access1 , $gc_access2;

    $str = "";
    for($i=1; $i<count($menu[$key]); $i++)
    {
//레벨을 정의 레벨이상만 보여준다
if ($member[mb_level]<$menu[$key][$i][4])
            continue;
if ($gc_access1 < $menu[$key][$i][5])
            continue;
if ($gc_access2 < $menu[$key][$i][6])
            continue;
        if ($menu[$key][$i][0] == "-")
            $str .= "<tr><td class=bg_line{$no}></td></tr>";
        else
        {
            $span1 = $span2 = "";
            if (isset($menu[$key][$i][3]))
            {
                $span1 = "<span style='{$menu[$key][$i][3]}'>";
                $span2 = "</span>";
            }
            $str .= "<tr><td class=bg_menu{$no}>";
            if ($no == 2)
                $str .= "&nbsp;&nbsp;<img src='{$g4[admin_path]}/img/icon.gif' align=absmiddle> ";
            $str .= "<a href='{$menu[$key][$i][2]}' style='color:#555500;'>{$span1}{$menu[$key][$i][1]}{$span2}</a></td></tr>";

            $auth_menu[$menu[$key][$i][0]] = $menu[$key][$i][4];
}
    }

    return $str;
}
  • 복사

댓글 전체

if ($gc_access1 < $menu[$key][$i][5])
if ($gc_access2 < $menu[$key][$i][6])
두개 조건문 ==로 해줘야 하는게 맞는거 아닌가요...??0,1 둘중 하나니깐...아니면..<=로..
아니면....ㅈㅅ요..ㅋ
© SIRSOFT
현재 페이지 제일 처음으로