특정 카테고리는 관리자만 등록할수 있게할수 있나요? 정보
특정 카테고리는 관리자만 등록할수 있게할수 있나요?본문
A~Z까지의 카테고리가 있는데 일반 회원은 C를 제외한 카테고리에 글작성이 가능하구요..
관리자만 C카테고리에 글을 작성할수 있게 하려면 어떻게해야할까요?
예를들어서 일반회원이 로그인하면 카테고리 리스트에 C가 빠져서 출력이 되구요.
관리자일경우 전부 출력이 되면 될꺼 같은데요...^^
꼭~~ 알려주세용..^^
관리자만 C카테고리에 글을 작성할수 있게 하려면 어떻게해야할까요?
예를들어서 일반회원이 로그인하면 카테고리 리스트에 C가 빠져서 출력이 되구요.
관리자일경우 전부 출력이 되면 될꺼 같은데요...^^
꼭~~ 알려주세용..^^
댓글 전체

common.lib.php 에 다음과 같은 함수에 의하여
게시판 글쓰기 카테고리를 $category_option 변수로 넘겨주는 형태입니다.
//-------------common.lib.php
// 분류 옵션을 얻음
// 4.00 에서는 카테고리 테이블을 없애고 보드테이블에 있는 내용으로 대체
function get_category_option($bo_table='')
{
global $g4, $board;
/*
$sql = " select bo_category_list from $g4[board_table] where bo_table = '$bo_table' ";
$row = sql_fetch($sql);
$arr = explode("|", $row[bo_category_list]); // 구분자가 , 로 되어 있음
*/
$arr = explode("|", $board[bo_category_list]); // 구분자가 , 로 되어 있음
$str = "";
for ($i=0; $i<count($arr); $i++)
if (trim($arr[$i]))
//조건절을 이용하여 아래 내용을 바꿉니다.
$str .= "<option value='$arr[$i]'>$arr[$i]</option>\n";
//바꿀곳 끝
return $str;
}
//-------------write.php
$is_category = false; //초기화
if ($board[bo_use_category]) { //카테고리를 사용한다면
$ca_name = $write[ca_name]; //카테고리값을 가져와서
$category_option = get_category_option($bo_table); // select 박스의 옵션값 형태로 얻는다 common.lib.php 참고
$is_category = true; //카테고리 사용으로 처리
}
방법 : is_admin 이 true이면 관리자라는 뜻입니다. 조건절을 이용하여 get_category_option 함수를 수정합니다.
if($is_admin) {//관리자면 출력
$str .= "<option value='$arr[$i]'>$arr[$i]</option>\n";
}else {//관리자가 아니면
if($arr[$i] == "특정카테고리") {//막고자 하는 카테고리이겠죠 일단은 주석처리를 해서 테스트를 해봅시다.
$str .= "<!--<option value='$arr[$i]'>$arr[$i]</option>-->\n";
}else {//관리자도 아니고, 막고자 하는 카테고리가 아닌것만 출력
$str .= "<option value='$arr[$i]'>$arr[$i]</option>\n";
}
}
이렇게 하면 되는데.. 문제는 모든 게시판에 적용이 된다는 것이구요 특정게시판만 적용할꺼라면 조금더 조건을 추가해야겠죠 특정게시판의 판별은 $bo_table을 가지고 하면 됩니다.
도움이 되셨다면 추천 부탁드립니다.
게시판 글쓰기 카테고리를 $category_option 변수로 넘겨주는 형태입니다.
//-------------common.lib.php
// 분류 옵션을 얻음
// 4.00 에서는 카테고리 테이블을 없애고 보드테이블에 있는 내용으로 대체
function get_category_option($bo_table='')
{
global $g4, $board;
/*
$sql = " select bo_category_list from $g4[board_table] where bo_table = '$bo_table' ";
$row = sql_fetch($sql);
$arr = explode("|", $row[bo_category_list]); // 구분자가 , 로 되어 있음
*/
$arr = explode("|", $board[bo_category_list]); // 구분자가 , 로 되어 있음
$str = "";
for ($i=0; $i<count($arr); $i++)
if (trim($arr[$i]))
//조건절을 이용하여 아래 내용을 바꿉니다.
$str .= "<option value='$arr[$i]'>$arr[$i]</option>\n";
//바꿀곳 끝
return $str;
}
//-------------write.php
$is_category = false; //초기화
if ($board[bo_use_category]) { //카테고리를 사용한다면
$ca_name = $write[ca_name]; //카테고리값을 가져와서
$category_option = get_category_option($bo_table); // select 박스의 옵션값 형태로 얻는다 common.lib.php 참고
$is_category = true; //카테고리 사용으로 처리
}
방법 : is_admin 이 true이면 관리자라는 뜻입니다. 조건절을 이용하여 get_category_option 함수를 수정합니다.
if($is_admin) {//관리자면 출력
$str .= "<option value='$arr[$i]'>$arr[$i]</option>\n";
}else {//관리자가 아니면
if($arr[$i] == "특정카테고리") {//막고자 하는 카테고리이겠죠 일단은 주석처리를 해서 테스트를 해봅시다.
$str .= "<!--<option value='$arr[$i]'>$arr[$i]</option>-->\n";
}else {//관리자도 아니고, 막고자 하는 카테고리가 아닌것만 출력
$str .= "<option value='$arr[$i]'>$arr[$i]</option>\n";
}
}
이렇게 하면 되는데.. 문제는 모든 게시판에 적용이 된다는 것이구요 특정게시판만 적용할꺼라면 조금더 조건을 추가해야겠죠 특정게시판의 판별은 $bo_table을 가지고 하면 됩니다.
도움이 되셨다면 추천 부탁드립니다.
답변감사드립니다.
//바꿀곳 끝
이곳에
if($is_admin) {//관리자면 출력
$str .= "<option value='$arr[$i]'>$arr[$i]</option>\n";
}else {//관리자가 아니면
if($arr[$i] == "특정카테고리") {//막고자 하는 카테고리이겠죠 일단은 주석처리를 해서 테스트를 해봅시다.
$str .= "<!--<option value='$arr[$i]'>$arr[$i]</option>-->\n";
}else {//관리자도 아니고, 막고자 하는 카테고리가 아닌것만 출력
$str .= "<option value='$arr[$i]'>$arr[$i]</option>\n";
}
}
위 소스를 넣어라는 말씀이신지요...
그래도 않되더라구요..ㅠㅜ
무튼 답변 해주신거 대단히 감사드립니다.
소스 잘 만지작 만지작해서 해볼께요....잘 되어야 할텐데~
//바꿀곳 끝
이곳에
if($is_admin) {//관리자면 출력
$str .= "<option value='$arr[$i]'>$arr[$i]</option>\n";
}else {//관리자가 아니면
if($arr[$i] == "특정카테고리") {//막고자 하는 카테고리이겠죠 일단은 주석처리를 해서 테스트를 해봅시다.
$str .= "<!--<option value='$arr[$i]'>$arr[$i]</option>-->\n";
}else {//관리자도 아니고, 막고자 하는 카테고리가 아닌것만 출력
$str .= "<option value='$arr[$i]'>$arr[$i]</option>\n";
}
}
위 소스를 넣어라는 말씀이신지요...
그래도 않되더라구요..ㅠㅜ
무튼 답변 해주신거 대단히 감사드립니다.
소스 잘 만지작 만지작해서 해볼께요....잘 되어야 할텐데~
^^
$str .= "<option value='$arr[$i]'>$arr[$i]</option>\n";
이부분을 삭제하고
if($is_admin) {//관리자면 출력
$str .= "<option value='$arr[$i]'>$arr[$i]</option>\n";
}else {//관리자가 아니면
if($arr[$i] == "특정카테고리") {//막고자 하는 카테고리이겠죠 일단은 주석처리를 해서 테스트를 해봅시다.
$str .= "<!--<option value='$arr[$i]'>$arr[$i]</option>-->\n";
}else {//관리자도 아니고, 막고자 하는 카테고리가 아닌것만 출력
$str .= "<option value='$arr[$i]'>$arr[$i]</option>\n";
}
}
위소스를 넣어라는 말씀인거죠? 한참 헤맷습니다...
그런데 관리자, 일반인 모두 특정카테고리가 출력이 않되더라구요..
관리자일때문 나와야하는데 말이죠...ㅠㅜ
$str .= "<option value='$arr[$i]'>$arr[$i]</option>\n";
이부분을 삭제하고
if($is_admin) {//관리자면 출력
$str .= "<option value='$arr[$i]'>$arr[$i]</option>\n";
}else {//관리자가 아니면
if($arr[$i] == "특정카테고리") {//막고자 하는 카테고리이겠죠 일단은 주석처리를 해서 테스트를 해봅시다.
$str .= "<!--<option value='$arr[$i]'>$arr[$i]</option>-->\n";
}else {//관리자도 아니고, 막고자 하는 카테고리가 아닌것만 출력
$str .= "<option value='$arr[$i]'>$arr[$i]</option>\n";
}
}
위소스를 넣어라는 말씀인거죠? 한참 헤맷습니다...
그런데 관리자, 일반인 모두 특정카테고리가 출력이 않되더라구요..
관리자일때문 나와야하는데 말이죠...ㅠㅜ

global $g4, $board; //이 부분을
global $g4, $board, $is_admin; // 이렇게 해보시겠어요
//$is_admin 을 함수내에서 참조할 수 없어서 그럴듯해요...
global $g4, $board, $is_admin; // 이렇게 해보시겠어요
//$is_admin 을 함수내에서 참조할 수 없어서 그럴듯해요...
와~~ 잘되네요...두분 모두 감사 감사 드립니다. ^^