[제나플러스] 메인메뉴 가로로 출력하기
본문
가로출력을 하기 위해서는 그룹여분필드를 사용합니다..
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
/////////////////////////////////////////////////////////////////////
// FF,msie호환 그룹 및 게시판 자동메뉴 - 플록
// CSS로 구현 그룹 및 게시판의 수직,수평 배열의 융통성 확보
// 셀렉트박스 가리기(ie6이하) 추가 및 코드정리 2007년 3월 24일 토요일(연후아빠 헌정메뉴)
// 메뉴링크 페이지 하단 적절한 곳에 onmouseover="layer_view('','','','','')" 코드 추가(서브메뉴 숨김)
// 레이어 메뉴와 관련해서 그누보드 sideview.js 파일이 필요한 경우 연결합니다.
if (!function_exists("selectBoxHidden(layer_id)")) {
echo "<script type='text/javascript' src='$g4[path]/js/sideview.js'></script>";
}
?>
<script type="text/javascript">
var save_layer = null;
function layer_view(link_id, menu_id, opt, x, y) {
var link = document.getElementById(link_id);
var menu = document.getElementById(menu_id);
//for (i in link) { document.write(i + '<br/>'); } return;
if (save_layer != null) {
save_layer.style.display = "none";
selectBoxVisible();
}
if (link_id == '')
return;
if (opt == 'hide') {
menu.style.display = 'none';
selectBoxVisible();
}
else {
x = parseInt(x);
y = parseInt(y);
menu.style.left = get_left_pos(link) + x;
menu.style.top = get_top_pos(link) + link.offsetHeight + y;
menu.style.display = 'block';
}
save_layer = menu;
}
</script>
<style type="text/css">
/*************************************************
여기서부터 시각적인 부분에 대한 수정을 해봅니다.
아래 소스에서 float, width 처럼 파란색으로 보여지는 속성을 키워드로
CSS 도움말 파일(팁&강좌에 있음)에서 검색해보면서 해당속성에 대한 옵션을 익힙니다.
**************************************************/
.zgroup { /*메뉴 영역*/
float:left;/*left,right 가로배열 none 세로배열*/
height:<?=$config[cf_menu_grouphsize]?>;
/*padding:0 0 0 <?=$config[cf_menu_groupwsize]?>px;*/
padding:0px;
width:auto;
overflow:visible;/*내용이 넘칠경우 영역을 밀어내며 표시됨*/
border:0px solid red;
}
.zgroup_subject { /*그룹제목*/
width:auto;
position:relative; top:<?=$config[cf_menu_top]?>px; left:<?=$config[cf_menu_left]?>px;
text-align:center;
cursor:pointer;
display:block;
}
.zgroup ul { /*서브메뉴 최상위*/
margin:0px;
list-style-type:none;
}
.zboard { /*게시판 레이어 영역 z-index 상위 호출문서 에서 지정*/
width:auto;
border:1px solid;
border-color:#ECECEC;
background-color:#FFFFFF;
padding:0 0 1px 0;
display:none;
position:absolute;
}
.zboard_subject { /*게시판 제목*/
width:auto;
height:<?=$config[cf_menu_boardhsize]?>px;
padding:6px 0 2px 10px;
border-bottom:1px dotted;
border-bottom-color:#DDDDDD;
/*display:block;cursor:pointer; 포인터 영역 확대*/
}
</style>
<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td>
<table width='100%' cellpadding='0' cellspacing='0' border='0'><tr>
<?
$pd = $config[cf_menu_groupwsize]*0.4 ;
//접근가능그룹 여분필드 1 순서로 추출
//조건외 제외시키고자 하는 그룹 수동으로 추가
//$excgr = "('html', 'banner', 'guest')"; // html , banner , guest 라는 그룹은 제외시킴
//$sql = " SELECT a.gr_id, a.gr_subject, a.gr_use_access, a.gr_9, a.gr_10, 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' and a.gr_id not in " . $excgr . " ORDER BY a.gr_1";
$sql = " SELECT a.gr_id, a.gr_subject, a.gr_use_access, a.gr_use_znmenu, a.gr_znmenu_num, a.gr_znmenu_target, a.gr_znmenu_link, a.gr_1, 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' and a.gr_use_znmenu = '1' ORDER BY a.gr_znmenu_num";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++){
//group
echo "<td class='zgroup'>\n";
$gSubject = ($row['gr_id'] == $gr_id)?"<span style='color:#FFFF00; font-weight:bold;'>" .$row['gr_subject']."</span>":"<span style='color:#FFFFFF; font-weight:bold;'>" .$row['gr_subject']."</span>";//그룹제목 - 해당그룹은 #323232 나머지는 #FFFFFF
if($row['gr_znmenu_link']){
$gLink = $row['gr_znmenu_link'];//gr_znmenu_link 예)../group/z1
}else{
$gLink = $g4['bbs_path'].'/'.'group.php?gr_id=' .$row['gr_id'];
}
echo "<span id='id_" . $row['gr_id'] . "' class='zgroup_subject' onmouseover=\"layer_view('id_" . $row['gr_id'] . "', 'menu_" . $row['gr_id'] . "', 'view', " . $row['gr_1'] . ", 0);\">"; //각 그룹여분필드를 사용하여 게시판의 위치를 잡아 줍니다.
if($row[gr_znmenu_target]=="1")
{
echo "<a href='" . $gLink . "' target='_blank'>" . $gSubject . "</a>";
$sql1 = " select count(*) as cnt from $g4[group_table] WHERE gr_use_znmenu = '1' ";
$row1 = sql_fetch($sql1);
$line_count = $row1[cnt];
if ($i < ($line_count-1)) {
echo "<font style='font-size:8pt; color:#F9F9F9;letter-spacing:$pd;'> | </font>";
}
} else {
echo "<a href='" . $gLink . "'>" . $gSubject . "</a>";
$sql1 = " select count(*) as cnt from $g4[group_table] WHERE gr_use_znmenu = '1' ";
$row1 = sql_fetch($sql1);
$line_count = $row1[cnt];
if ($i < ($line_count-1)) {
echo "<font style='font-size:8pt; color:#F9F9F9;letter-spacing:$pd;'> | </font>";
}
}
echo "</span>";
//board
echo "<table width='100%' cellpadding='0' cellspacing='0' border='0'><tr><td id='menu_" . $row['gr_id'] . "' class='zboard' onpropertychange=\"selectBoxHidden('menu_" . $row['gr_id'] . "')\">\n";
echo "<table width='100%' cellpadding='0' cellspacing='0' border='0'><tr>\n";
//게시판 권한 설정 적용, 전체 검색사용에 체크된 게시판만 검색순서에 따라 추출
//제외보드설정
//$excbo = "('게시판1', '게시판2', '게시판3')";
//$sqlb = " select bo_subject, bo_table, bo_9, bo_10 from $g4[board_table] where bo_table not in {$excbo} and (bo_list_level <= $member[mb_level]) and (gr_id = '$row[gr_id]') order by bo_order_search";
$sqlb = " select bo_subject, bo_table, bo_znlmenu, bo_znlmenulink, bo_znlmenutarget, bo_new from $g4[board_table] where (bo_list_level <= '$member[mb_level]') and (gr_id = '$row[gr_id]') and bo_znlmenu = '1' order by bo_order_search";
$resultb = sql_query($sqlb);
for ($j=0; $rowb=sql_fetch_array($resultb); $j++) {
//new icon
$new_time = date("Y-m-d H:i:s", $g4['server_time'] - ($rowb[bo_new] * 3600));
$sqlc = " select count(*) as cnt from {$g4[write_prefix]}{$rowb[bo_table]} where wr_datetime >= '$new_time' ";
$row = sql_fetch($sqlc);
if ($row[cnt] > 0)
$new = " <img src='$submenu_skin_path/img/icon_new.gif' border='0' align='absmiddle'>";
else
$new = "";
$bSubject = ($rowb['bo_table'] == $bo_table)?"<img src='$submenu_skin_path/img/icl2.gif' border=0><span style='font-weight:bold;'>".$rowb['bo_subject']."</span>":"<img src='$submenu_skin_path/img/icl.gif' border=0><span>".$rowb['bo_subject']."</span>";//게시판제목 - 해당게시판은 #323232 나머지는 #323232
//게시판별도링크
$bLink = (!empty($rowb['bo_znlmenulink']))?$rowb['bo_znlmenulink']:$g4['bbs_path'].'/'.'board.php?bo_table=' .$rowb['bo_table'];
if($rowb[bo_znlmenutarget]=="1")
{
echo "<td class='zboard_subject'><a href='" . $bLink . "' target='_blank'>" . $bSubject . "</a>$new</td>\n";
} else {
echo "<td class='zboard_subject'><a href='" . $bLink . "'>" . $bSubject . "</a>$new</td>\n";
}
}
echo "</tr></table>\n";
echo "</td></tr></table>\n"; //board end
echo "</td>\n"; //group end
}
?>
</tr></table>
</td></tr></table>
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
/////////////////////////////////////////////////////////////////////
// FF,msie호환 그룹 및 게시판 자동메뉴 - 플록
// CSS로 구현 그룹 및 게시판의 수직,수평 배열의 융통성 확보
// 셀렉트박스 가리기(ie6이하) 추가 및 코드정리 2007년 3월 24일 토요일(연후아빠 헌정메뉴)
// 메뉴링크 페이지 하단 적절한 곳에 onmouseover="layer_view('','','','','')" 코드 추가(서브메뉴 숨김)
// 레이어 메뉴와 관련해서 그누보드 sideview.js 파일이 필요한 경우 연결합니다.
if (!function_exists("selectBoxHidden(layer_id)")) {
echo "<script type='text/javascript' src='$g4[path]/js/sideview.js'></script>";
}
?>
<script type="text/javascript">
var save_layer = null;
function layer_view(link_id, menu_id, opt, x, y) {
var link = document.getElementById(link_id);
var menu = document.getElementById(menu_id);
//for (i in link) { document.write(i + '<br/>'); } return;
if (save_layer != null) {
save_layer.style.display = "none";
selectBoxVisible();
}
if (link_id == '')
return;
if (opt == 'hide') {
menu.style.display = 'none';
selectBoxVisible();
}
else {
x = parseInt(x);
y = parseInt(y);
menu.style.left = get_left_pos(link) + x;
menu.style.top = get_top_pos(link) + link.offsetHeight + y;
menu.style.display = 'block';
}
save_layer = menu;
}
</script>
<style type="text/css">
/*************************************************
여기서부터 시각적인 부분에 대한 수정을 해봅니다.
아래 소스에서 float, width 처럼 파란색으로 보여지는 속성을 키워드로
CSS 도움말 파일(팁&강좌에 있음)에서 검색해보면서 해당속성에 대한 옵션을 익힙니다.
**************************************************/
.zgroup { /*메뉴 영역*/
float:left;/*left,right 가로배열 none 세로배열*/
height:<?=$config[cf_menu_grouphsize]?>;
/*padding:0 0 0 <?=$config[cf_menu_groupwsize]?>px;*/
padding:0px;
width:auto;
overflow:visible;/*내용이 넘칠경우 영역을 밀어내며 표시됨*/
border:0px solid red;
}
.zgroup_subject { /*그룹제목*/
width:auto;
position:relative; top:<?=$config[cf_menu_top]?>px; left:<?=$config[cf_menu_left]?>px;
text-align:center;
cursor:pointer;
display:block;
}
.zgroup ul { /*서브메뉴 최상위*/
margin:0px;
list-style-type:none;
}
.zboard { /*게시판 레이어 영역 z-index 상위 호출문서 에서 지정*/
width:auto;
border:1px solid;
border-color:#ECECEC;
background-color:#FFFFFF;
padding:0 0 1px 0;
display:none;
position:absolute;
}
.zboard_subject { /*게시판 제목*/
width:auto;
height:<?=$config[cf_menu_boardhsize]?>px;
padding:6px 0 2px 10px;
border-bottom:1px dotted;
border-bottom-color:#DDDDDD;
/*display:block;cursor:pointer; 포인터 영역 확대*/
}
</style>
<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td>
<table width='100%' cellpadding='0' cellspacing='0' border='0'><tr>
<?
$pd = $config[cf_menu_groupwsize]*0.4 ;
//접근가능그룹 여분필드 1 순서로 추출
//조건외 제외시키고자 하는 그룹 수동으로 추가
//$excgr = "('html', 'banner', 'guest')"; // html , banner , guest 라는 그룹은 제외시킴
//$sql = " SELECT a.gr_id, a.gr_subject, a.gr_use_access, a.gr_9, a.gr_10, 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' and a.gr_id not in " . $excgr . " ORDER BY a.gr_1";
$sql = " SELECT a.gr_id, a.gr_subject, a.gr_use_access, a.gr_use_znmenu, a.gr_znmenu_num, a.gr_znmenu_target, a.gr_znmenu_link, a.gr_1, 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' and a.gr_use_znmenu = '1' ORDER BY a.gr_znmenu_num";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++){
//group
echo "<td class='zgroup'>\n";
$gSubject = ($row['gr_id'] == $gr_id)?"<span style='color:#FFFF00; font-weight:bold;'>" .$row['gr_subject']."</span>":"<span style='color:#FFFFFF; font-weight:bold;'>" .$row['gr_subject']."</span>";//그룹제목 - 해당그룹은 #323232 나머지는 #FFFFFF
if($row['gr_znmenu_link']){
$gLink = $row['gr_znmenu_link'];//gr_znmenu_link 예)../group/z1
}else{
$gLink = $g4['bbs_path'].'/'.'group.php?gr_id=' .$row['gr_id'];
}
echo "<span id='id_" . $row['gr_id'] . "' class='zgroup_subject' onmouseover=\"layer_view('id_" . $row['gr_id'] . "', 'menu_" . $row['gr_id'] . "', 'view', " . $row['gr_1'] . ", 0);\">"; //각 그룹여분필드를 사용하여 게시판의 위치를 잡아 줍니다.
if($row[gr_znmenu_target]=="1")
{
echo "<a href='" . $gLink . "' target='_blank'>" . $gSubject . "</a>";
$sql1 = " select count(*) as cnt from $g4[group_table] WHERE gr_use_znmenu = '1' ";
$row1 = sql_fetch($sql1);
$line_count = $row1[cnt];
if ($i < ($line_count-1)) {
echo "<font style='font-size:8pt; color:#F9F9F9;letter-spacing:$pd;'> | </font>";
}
} else {
echo "<a href='" . $gLink . "'>" . $gSubject . "</a>";
$sql1 = " select count(*) as cnt from $g4[group_table] WHERE gr_use_znmenu = '1' ";
$row1 = sql_fetch($sql1);
$line_count = $row1[cnt];
if ($i < ($line_count-1)) {
echo "<font style='font-size:8pt; color:#F9F9F9;letter-spacing:$pd;'> | </font>";
}
}
echo "</span>";
//board
echo "<table width='100%' cellpadding='0' cellspacing='0' border='0'><tr><td id='menu_" . $row['gr_id'] . "' class='zboard' onpropertychange=\"selectBoxHidden('menu_" . $row['gr_id'] . "')\">\n";
echo "<table width='100%' cellpadding='0' cellspacing='0' border='0'><tr>\n";
//게시판 권한 설정 적용, 전체 검색사용에 체크된 게시판만 검색순서에 따라 추출
//제외보드설정
//$excbo = "('게시판1', '게시판2', '게시판3')";
//$sqlb = " select bo_subject, bo_table, bo_9, bo_10 from $g4[board_table] where bo_table not in {$excbo} and (bo_list_level <= $member[mb_level]) and (gr_id = '$row[gr_id]') order by bo_order_search";
$sqlb = " select bo_subject, bo_table, bo_znlmenu, bo_znlmenulink, bo_znlmenutarget, bo_new from $g4[board_table] where (bo_list_level <= '$member[mb_level]') and (gr_id = '$row[gr_id]') and bo_znlmenu = '1' order by bo_order_search";
$resultb = sql_query($sqlb);
for ($j=0; $rowb=sql_fetch_array($resultb); $j++) {
//new icon
$new_time = date("Y-m-d H:i:s", $g4['server_time'] - ($rowb[bo_new] * 3600));
$sqlc = " select count(*) as cnt from {$g4[write_prefix]}{$rowb[bo_table]} where wr_datetime >= '$new_time' ";
$row = sql_fetch($sqlc);
if ($row[cnt] > 0)
$new = " <img src='$submenu_skin_path/img/icon_new.gif' border='0' align='absmiddle'>";
else
$new = "";
$bSubject = ($rowb['bo_table'] == $bo_table)?"<img src='$submenu_skin_path/img/icl2.gif' border=0><span style='font-weight:bold;'>".$rowb['bo_subject']."</span>":"<img src='$submenu_skin_path/img/icl.gif' border=0><span>".$rowb['bo_subject']."</span>";//게시판제목 - 해당게시판은 #323232 나머지는 #323232
//게시판별도링크
$bLink = (!empty($rowb['bo_znlmenulink']))?$rowb['bo_znlmenulink']:$g4['bbs_path'].'/'.'board.php?bo_table=' .$rowb['bo_table'];
if($rowb[bo_znlmenutarget]=="1")
{
echo "<td class='zboard_subject'><a href='" . $bLink . "' target='_blank'>" . $bSubject . "</a>$new</td>\n";
} else {
echo "<td class='zboard_subject'><a href='" . $bLink . "'>" . $bSubject . "</a>$new</td>\n";
}
}
echo "</tr></table>\n";
echo "</td></tr></table>\n"; //board end
echo "</td>\n"; //group end
}
?>
</tr></table>
</td></tr></table>
추천0
제로님의 댓글
제로쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 작성일사용필드와 설정을 자신의 홈에 맞게 설정해 주셔야 합니다..