간단한 G4 세로형 자동메뉴 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

간단한 G4 세로형 자동메뉴 정보

간단한 G4 세로형 자동메뉴

본문

G3 일때 CCC 님께서 만들어 주신것을..

어느분(은둔자 ^^;;)께서 G4용으로 변환하여 주셨습니다.

---------------------------------------------------------------------------------------------------------------------------------------
<?
//
// 그룹명 / 그룹별 게시판명 2단계 분류 레이어 표시
//
include_once("./_common.php");

$community_menu[top] = 100;  // 게시판 메뉴 레이어 상단 시작 위치
$community_menu[width] = 120;// 게시판 메뉴 레이어 폭
$community_menu[grheight] = 30; // 그룹메뉴행의 높이값
$community_menu[trheight] = 20; // 메뉴 레이어 한행의 높이값
$menu = ""; // 메뉴 레이어 임시저장 변수 (처음엔 아무값도 없어야 합니다.)
?>

<table width=98% align=center cellpadding=0 cellspacing=0 border=0>
<tr><td height=1 bgcolor='#DDDDDD'></td></tr>
<?

// 그룹 접근 권한에 따라 그룹메뉴가 보이게 하는 설정
$sql = " SELECT a.gr_id, a.gr_subject, a.gr_use_access, b.mb_id FROM $g4[group_table] AS a LEFT JOIN $g4[group_member_table] AS b ON a.gr_id = b.gr_id WHERE  (b.mb_id = '$member[mb_id]' AND a.gr_use_access = '1' ) OR a.gr_use_access = '0'  ORDER BY a.gr_id ";

$result = sql_query($sql);
for ($i=100; $row = mysql_fetch_array($result); $i++)
{

    $community_link = "<a href='$g4[sub_path]/gr_$row[gr_id].php'>"; //그룹아이디.php 파일에 링크 걸기

    // 2단계 그룹별 게시판 표시
    $menubody = "";
    $onmouseover = "";
    $onmouseout  = "";

    // 설정 1
$sql2 = " select bo_table, bo_subject from $g4[board_table] where gr_id = '$row[gr_id]' order by bo_table ";
$result2 = sql_query($sql2);


    for ($j=0; $row2=mysql_fetch_array($result2); $j++) {
$menubody .= "<tr height='$community_menu[trheight]'><td>&nbsp;·&nbsp; <a href='$g4[bbs_path]/board.php?bo_table=$row2[bo_table]'>$row2[bo_subject]</a></td></tr>";
    }
    mysql_free_result($result2);

    if ($menubody) {
        $onmouseover = " menulayer{$i}.style.display=''; ";
        $onmouseout  = " menulayer{$i}.style.display='none'; ";
    }

    if ($i > 100) {
        echo "<tr><td></td></tr>\n";
    }

    echo "<tr onmouseover=\"$onmouseover\" onmouseout=\"$onmouseout\"><td height='$community_menu[grheight]' align=right>$community_link$row[gr_subject]</a>&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>\n"; //그룹메뉴의 테이블 그룹명의 좌우정렬
    //echo "<tr onmouseover=\"$onmouseover\" onmouseout=\"$onmouseout\"><td height='$community_menu[trheight]'>$community_link<img src=$g4[sub_path]/menu_$row[gr_id].gif border=0></a></td></tr>\n"; //그룹메뉴 글자대신 이미지로 대체하기

    // 화면의 중앙으로 가도 메뉴가 정상으로 출력됨
    $top = $community_menu[top] + ($community_menu[trheight] * ($i-100));
    if ($menubody) {
        echo "<tr><td height=1 align=right>";
        echo "<div id='menulayer{$i}' style='top:{$top}px; width:{$community_menu[width]}px; display:none; position:absolute; FILTER: alpha(opacity=95);'>"; //게시판 메뉴 테이블의 투명도 설정
        echo "<table cellpadding=2 cellspacing=0 bgcolor=#A00A00 width=100% onmouseover=\"menulayer{$i}.style.display='';\" onmouseout=\"menulayer{$i}.style.display='none';\"><tr><td>";
        echo "<table border=0 width=100% bgcolor=#FFFFFF>$menubody</table>";
        echo "</td></tr></table>";
        echo "</div>";
        echo "</td></tr>\n";
    }
}
mysql_free_result($result);
?>
<tr><td height=1 bgcolor='#DDDDDD'></td></tr>
</table>

<?=$menu?>
추천
0
  • 복사

댓글 12개

적용해보았습니다.
$top 위치가 조금씩 다르게 먹히는 문제외에 불여우와 익스에서 모두 잘됩니다.
아래쪽
if ($menubody) {
        echo "<tr><td height=1 align=right>"; 에서
align=right가 불여우에서 먹히지않아 style=margin-left:***px; 로 수정

*세로형의 경우 메인페이지 왼쪽 네비게이션 부분에 붙이면 좋을듯 합니다.
세로형 미리보기 http://gnusr.com/g4/gnusr/test/menu_test.php
소스 전체 http://gnusr.com/g4/bbs/tb.php/work/72
-그룹 및 보드의 여분필드를 이용해서 원하는대로 정렬하거나 제외시킨다.
(여분필드 값에따라 작은값을 가진 그룹 및 보드부터 정렬, 값이 없으면 제외시킴, 그룹에서 접근권한을 막지않아도 특정 여분필드에 값이 없다면 제외됨, 현재 보드는 보드이름순서로 정렬)

**그룹을 가로로 배열하고 보드레이어는 지금처럼 세로로 보여줄 수 있다면 메인 상단메뉴로 좋을것 같은데,,,,

좋은소스 감사합니다.
은둔자(?)님께서 해준다고 하셔서 기다리고 있습니다. 조만간 은둔자님께서 알려 주시는데로 공개하겠습니다.

세로 보다는 가로형 메뉴가 많이 쓰죠... G4 에서는 기본기능에 포함 되었으면 싶습니다.
그룹접근 권한이나 게시판 접근 권한에 설정에 따라 메뉴에 게시판명이나 그룹명이 보이거나 안보이게 설정할수 있는 방법이 있나요? 혹시 있다면 어떻게 하면 되나요?
예를 들어 권한중에 게시판목록보기에서 권한이 1이면 메뉴에 나오고 권한이 2이면 로그인 후에 나오게 할 수 있는 방법 없나요?
© SIRSOFT
현재 페이지 제일 처음으로