플록님의 메뉴관련 질문입니다. 정보
플록님의 메뉴관련 질문입니다.본문
위 주소에서 메뉴 스킨을 다운받아 설치했습니다.
정말 편리하고 잘 됩니다.
그런데 의문점은
(1) 그룹id가 gr_1, gr_2, gr_3, gr_4 가 있을 때, 메뉴의 순서를 어떻게 정하나요?
(2) 그리고 gr2와 gr_4만 메뉴를 만들고 싶은 경우는 어떻게 하나요?
댓글 전체
정보공개도 안하시고 질문하셨지만, 제 닉을 적시하고 질문을 올리셨으니 그냥 지나칠 수 없군요^^
이슬이 이병과 데이트후 작성한 글인점 참고하시기 바랍니다.
라이브러리 파일을 보면 아래 내용이 있을겁니다.
//-----------------
$sql_common = " from " . $g4['group_table'] . " g inner join " . $g4['board_table'] . " b using (gr_id) where ";
//그룹값 있으면 해당그룹, 없으면 전체그룹
if (!empty($gr_id))
$sql_common .= " g.gr_id = '$gr_id' ";
else
$sql_common .= " g.gr_use_access = '0' ";
//조건외 제외시키고자 하는 그룹 및 게시판을 수동으로 추가
$excgr = "('', '', '')";
$excbo = "('', '', '')";
$sql_common .= " and g.gr_id not in " . $excgr . " and b.bo_table not in " . $excbo . " and b.bo_use_search = '1' and (bo_list_level <= $member[mb_level]) ";
$sql_order = " order by gr_1 asc, bo_order_search asc ";
$sql= " select g.gr_id, g.gr_subject, g.gr_use_access, b.bo_use_category, b.bo_category_list, b.bo_new, b.bo_use_search, b.bo_table, substring_index( bo_subject, ';', 1) bo_subject
$sql_common
$sql_order ";
//-----------------
위 내용중에서 그룹 메뉴의 순서는 각 그룹의 여분필드 gr_1 에 순차적으로 정수를 입력하고 내림차순으로 할것인지 오름차순으로 할것인지를 정해줍니다.
$sql_order = " order by gr_1 asc, bo_order_search asc ";
$sql_order = " order by gr_1 asc, bo_order_search desc ";
원하는 대로 여분필드를 활용해서 가능하리라 봅니다.
//-----------------
그리고 gr2와 gr_4만 메뉴에 보이려면,,
//제외시키고자 하는 그룹을 아래처럼 일일이 지정하는 방식으로 추가하는 방법과,
$excgr = "('gr_1', 'gr_3', 'gr_5')";
아니면,
$sql_common .= " g.gr_use_access = '0' "; //접근허용 그룹
을
$sql_common .= " g.gr_10 = 'on' "; //여분필드 10번에 on 을 기입한 그룹만 보여주는 식으로 개인에 맞게 설정해 줍니다.
이슬이 이병과 데이트후 작성한 글인점 참고하시기 바랍니다.
라이브러리 파일을 보면 아래 내용이 있을겁니다.
//-----------------
$sql_common = " from " . $g4['group_table'] . " g inner join " . $g4['board_table'] . " b using (gr_id) where ";
//그룹값 있으면 해당그룹, 없으면 전체그룹
if (!empty($gr_id))
$sql_common .= " g.gr_id = '$gr_id' ";
else
$sql_common .= " g.gr_use_access = '0' ";
//조건외 제외시키고자 하는 그룹 및 게시판을 수동으로 추가
$excgr = "('', '', '')";
$excbo = "('', '', '')";
$sql_common .= " and g.gr_id not in " . $excgr . " and b.bo_table not in " . $excbo . " and b.bo_use_search = '1' and (bo_list_level <= $member[mb_level]) ";
$sql_order = " order by gr_1 asc, bo_order_search asc ";
$sql= " select g.gr_id, g.gr_subject, g.gr_use_access, b.bo_use_category, b.bo_category_list, b.bo_new, b.bo_use_search, b.bo_table, substring_index( bo_subject, ';', 1) bo_subject
$sql_common
$sql_order ";
//-----------------
위 내용중에서 그룹 메뉴의 순서는 각 그룹의 여분필드 gr_1 에 순차적으로 정수를 입력하고 내림차순으로 할것인지 오름차순으로 할것인지를 정해줍니다.
$sql_order = " order by gr_1 asc, bo_order_search asc ";
$sql_order = " order by gr_1 asc, bo_order_search desc ";
원하는 대로 여분필드를 활용해서 가능하리라 봅니다.
//-----------------
그리고 gr2와 gr_4만 메뉴에 보이려면,,
//제외시키고자 하는 그룹을 아래처럼 일일이 지정하는 방식으로 추가하는 방법과,
$excgr = "('gr_1', 'gr_3', 'gr_5')";
아니면,
$sql_common .= " g.gr_use_access = '0' "; //접근허용 그룹
을
$sql_common .= " g.gr_10 = 'on' "; //여분필드 10번에 on 을 기입한 그룹만 보여주는 식으로 개인에 맞게 설정해 줍니다.
플록님 상세한 답변 감사합니다.
그리고 정보공개 했습니다.
그리고 정보공개 했습니다.
플록님 해결되었습니다.
플록님 설명 중 아래부분에서 헤매고 있었습니다.
[ 위 내용중에서 그룹 메뉴의 순서는 각 그룹의 여분필드 gr_1 에 순차적으로 정수를 입력하고 내림차순으로 할것인지 오름차순으로 할것인지를 정해줍니다 ]
여분 필드값 2 에 1,2,3... 값을 넣어주니까 됩니다.
아래는 제가사용한 플록님 소스입니다.
<?
if (!defined('_GNUBOARD_')) exit;
// 그룹 나열 순서: gr_1 오름 차순
// 제외 그룹 gr_1== 0
// 그룹 자체 링크 gr_2
// 스킨 폴더 g4/skin/menu/스킨이름/menu.skin.php
// 게시판 bo_order_search 오름 차순
// 제외 게시판은 bo_order_search 100 이상
function menu($skin_dir="") {
global $config;
global $g4;
global $member;//부가메뉴
global $gr_id;
global $bo_table;//포커스를 위한 설정
global $gur;//포커스를 위한 개인설정
if ($skin_dir)
$menu_skin_path = "$g4[path]/skin/menu/$skin_dir";
else
$menu_skin_path = "$g4[path]/skin/menu/basic";
/*/id값 활용을 위한 테스트 라인
$sqlgr= "select gr_id from $g4[group_table] order by gr_id ASC ";
$resultgr = sql_query($sqlgr);
for ($j=0; $rowgr = sql_fetch_array($resultgr); $j++) {
$grId[] = $rowgr['gr_id'];
}
/*/
$list = array();
/*************************************************** 원본/
$sql= "select G.gr_id, G.gr_2, G.gr_subject, B.bo_table, substring_index( bo_subject, ';', 1) bo_subject from $g4[group_table] G inner join $g4[board_table] B using (gr_id) where G.gr_1 > 0 and B.bo_order_search < 100 order by gr_1 ASC, bo_order_search ";//board 정렬순서 추가
/***************************************************/
/*수동 제외방법 추가 및 레벨제어*/
// 그룹 정렬 - gr_1 오름 차순
// 제외 그룹 - 접근사용 yes, 게시판이 없는 그룹, 제외 게시판만 있는 그룹
// 게시판 정렬 - 전체 검색 오름 차순
// 제외 게시판 - 전체 검색 사용 no, 목록열람 레벨
// 위 에서 명시한 그룹외에 제외시키고자 하는 그룹을 수동으로 추가
$exc = "('그룹아이디1', '그룹아이디2', '그룹아이디3')";
$sql= "select G.gr_id, G.gr_subject, G.gr_use_access, B.bo_use_search, B.bo_table, substring_index( bo_subject, ';', 1) bo_subject from $g4[group_table] G inner join $g4[board_table] B using (gr_id) where G.gr_use_access = '0' and G.gr_id not in {$exc} and B.bo_use_search = '1' and (bo_list_level <= $member[mb_level]) order by gr_1 ASC, bo_order_search ASC ";
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++) {
if( $row['gr_2'])
$list[$row['gr_id']]['gr_subject'] = '<a href="'.$row['gr_2'].'">'.$row['gr_subject'].'</a>';
else
$list[$row['gr_id']]['gr_id'] = $row['gr_id'];//id값 활용을 위한 테스트 라인
$list[$row['gr_id']]['gr_subject'] = $row['gr_subject'];
$list[$row['gr_id']]['bbs'][] = array( 'bo_table'=> $row['bo_table'], 'bo_subject'=>$row['bo_subject']);
}
ob_start();
include "$menu_skin_path/menu.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
?>
플록님 설명 중 아래부분에서 헤매고 있었습니다.
[ 위 내용중에서 그룹 메뉴의 순서는 각 그룹의 여분필드 gr_1 에 순차적으로 정수를 입력하고 내림차순으로 할것인지 오름차순으로 할것인지를 정해줍니다 ]
여분 필드값 2 에 1,2,3... 값을 넣어주니까 됩니다.
아래는 제가사용한 플록님 소스입니다.
<?
if (!defined('_GNUBOARD_')) exit;
// 그룹 나열 순서: gr_1 오름 차순
// 제외 그룹 gr_1== 0
// 그룹 자체 링크 gr_2
// 스킨 폴더 g4/skin/menu/스킨이름/menu.skin.php
// 게시판 bo_order_search 오름 차순
// 제외 게시판은 bo_order_search 100 이상
function menu($skin_dir="") {
global $config;
global $g4;
global $member;//부가메뉴
global $gr_id;
global $bo_table;//포커스를 위한 설정
global $gur;//포커스를 위한 개인설정
if ($skin_dir)
$menu_skin_path = "$g4[path]/skin/menu/$skin_dir";
else
$menu_skin_path = "$g4[path]/skin/menu/basic";
/*/id값 활용을 위한 테스트 라인
$sqlgr= "select gr_id from $g4[group_table] order by gr_id ASC ";
$resultgr = sql_query($sqlgr);
for ($j=0; $rowgr = sql_fetch_array($resultgr); $j++) {
$grId[] = $rowgr['gr_id'];
}
/*/
$list = array();
/*************************************************** 원본/
$sql= "select G.gr_id, G.gr_2, G.gr_subject, B.bo_table, substring_index( bo_subject, ';', 1) bo_subject from $g4[group_table] G inner join $g4[board_table] B using (gr_id) where G.gr_1 > 0 and B.bo_order_search < 100 order by gr_1 ASC, bo_order_search ";//board 정렬순서 추가
/***************************************************/
/*수동 제외방법 추가 및 레벨제어*/
// 그룹 정렬 - gr_1 오름 차순
// 제외 그룹 - 접근사용 yes, 게시판이 없는 그룹, 제외 게시판만 있는 그룹
// 게시판 정렬 - 전체 검색 오름 차순
// 제외 게시판 - 전체 검색 사용 no, 목록열람 레벨
// 위 에서 명시한 그룹외에 제외시키고자 하는 그룹을 수동으로 추가
$exc = "('그룹아이디1', '그룹아이디2', '그룹아이디3')";
$sql= "select G.gr_id, G.gr_subject, G.gr_use_access, B.bo_use_search, B.bo_table, substring_index( bo_subject, ';', 1) bo_subject from $g4[group_table] G inner join $g4[board_table] B using (gr_id) where G.gr_use_access = '0' and G.gr_id not in {$exc} and B.bo_use_search = '1' and (bo_list_level <= $member[mb_level]) order by gr_1 ASC, bo_order_search ASC ";
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++) {
if( $row['gr_2'])
$list[$row['gr_id']]['gr_subject'] = '<a href="'.$row['gr_2'].'">'.$row['gr_subject'].'</a>';
else
$list[$row['gr_id']]['gr_id'] = $row['gr_id'];//id값 활용을 위한 테스트 라인
$list[$row['gr_id']]['gr_subject'] = $row['gr_subject'];
$list[$row['gr_id']]['bbs'][] = array( 'bo_table'=> $row['bo_table'], 'bo_subject'=>$row['bo_subject']);
}
ob_start();
include "$menu_skin_path/menu.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
?>