플록님의 메뉴관련 질문입니다. > 그누4 질문답변

그누4 질문답변

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

플록님의 메뉴관련 질문입니다. 정보

플록님의 메뉴관련 질문입니다.

본문

 
위 주소에서 메뉴 스킨을 다운받아 설치했습니다.
정말 편리하고 잘 됩니다. 
 
그런데 의문점은
 
(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 을 기입한 그룹만 보여주는 식으로 개인에 맞게 설정해 줍니다.
플록님 해결되었습니다.

플록님 설명 중 아래부분에서 헤매고 있었습니다.

[ 위 내용중에서 그룹 메뉴의 순서는 각 그룹의 여분필드 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;
}
?>
© SIRSOFT
현재 페이지 제일 처음으로