너무 어렵네요 무엇이 문제일까요? 고칠수 있을까요..ㅠㅠ
본문
<!-- 좌측네비 시작 { -->
<script type="text/javascript">
function display_submenu(num) {
document.getElementById("mysub"+num).style.display="block";
}
</script>
<style>
#myasidemenu {margin:0;background:#fff;position:relative;}
#myasidemenu ul {list-style:none; margin:0; padding:0;}
#myasidemenu li { margin: 0; list-style: none;}
#myasidemenu li.leftmenu_b {line-height:40px; margin-top:0px; padding:5px 0 5px 0; text-align:center; font-size:1.2em; font-weight:bold; background:#34495E; }
#myasidemenu li.leftmenu_b a{ color:#fff; }
#myasidemenu li.leftmenu_s {line-height:34px; margin-bottom:0px; padding-left:15px; border-left:1px solid #ccc; border-right:1px solid #ccc; border-bottom:1px solid #ccc; font-size:1.2em; background:#fff; }
#myasidemenu li.leftmenu_s:hover { background:#e1e1e1; }
#myasidemenu li.leftmenu_s_on {line-height:34px; margin-bottom:0px; padding-left:15px; border-left:1px solid #307ca0; border-right:1px solid #307ca0; border-bottom:1px solid #ccc; font-size:1.2em; background:#307ca0; }
#myasidemenu li.leftmenu_s_on a{ color:#fff;}
#myasidemenu li.leftmenu_s a:focus, #myasidemenu li.leftmenu_s a:hover { color:#307ca0;}
</style>
<script>
$(document).ready(function() {
$("#myasidemenu a").on("click", function(e){ //링크 클릭시
var $data_midtxt = $(this).attr("data-midtxt");
if( $data_midtxt ){
$.cookie('sub_midtxt', $data_midtxt, { path: '/' });
} else {
$.cookie('sub_midtxt', null, { path: '/' });
}
});
});
</script>
<div id="myasidemenu">
<?php
$sql_asidemenu = " select * from ".$g5['menu_table']."
where me_use = '1'
and length(me_code) = '2'
order by me_order, me_id ";
$result_asidemenu = sql_query($sql_asidemenu, false);
$gnb_zindex = 999; // gnb_1dli z-index 값 설정용
for ($i=0; $row_asidemenu=sql_fetch_array($result_asidemenu); $i++) {
?>
<ul id="mysub<?php echo $i ?>" style="display:none;">
<li class="leftmenu_b"> <a href="<?php echo $row_asidemenu['me_link']; ?>" target="_<?php echo $row_asidemenu['me_target']; ?>"><?php echo $row_asidemenu['me_name']; ?></a></li>
<?php
$sql_asidemenu2 = " select * from ".$g5['menu_table']."
where me_use = '1'
and length(me_code) = '4'
and substring(me_code, 1, 2) = '".$row_asidemenu['me_code']."'
order by me_order, me_id ";
$result_asidemenu2 = sql_query($sql_asidemenu2);
//좌측 서브메뉴 전체 리스트에서 현재 페이지에 해당하는 대메뉴 리스트만 보여줌
if ( ($row_asidemenu['me_name']==$board['bo_subject'])||($row_asidemenu['me_name']==$g5['title']) ) {
//if(strpos($row_asidemenu['me_link'], $_GET['bo_table']) !== false) {
echo ("<script language='javascript'> display_submenu(" .$i. " ); </script> ");
}
for ($k=0; $row_asidemenu2=sql_fetch_array($result_asidemenu2); $k++) {
if($k == 0) {
echo '<ul>'.PHP_EOL;
}
?>
<li class="leftmenu_s<?php if (($row_asidemenu2['me_name']==$board['bo_subject'])||($row_asidemenu2['me_name']==$g5['title'])) { echo "_on"; } ?>"<?php
if ($row_asidemenu2['me_link']) {
$me_link0 = explode("=",$row_asidemenu2['me_link']);
//if ( ($me_link0[1]==$board['bo_table'])||($me_link0[1]==$co_id) ) {
if(strpos($row_asidemenu2['me_link'], $_GET['bo_table']) !== false) {
echo " style='background-color:;'";
}
} else {
//if ( ($row_asidemenu2['me_name']==$board['bo_subject'])||($row_asidemenu2['me_name']==$g5['title']) ) {
if ( strpos($row_asidemenu2['me_link'], $_GET['bo_table']) !== false ) {
echo " style='background-color:;'";
}
}
?>><a href="<?php echo $row_asidemenu2['me_link']; ?>" target="_<?php echo $row_asidemenu2['me_target']; ?>"><?php echo $row_asidemenu2['me_name']; ?></a>
</li>
<?php
//좌측 서브메뉴 전체 리스트에서 현재 페이지에 해당하는 대메뉴 리스트만 보여줌
if ($row_asidemenu2['me_link']) {
$me_link0 = explode("=",$row_asidemenu2['me_link']);
//if ( ($me_link0[1]==$board['bo_table'])||($me_link0[1]==$co_id) ) {
if(strpos($row_asidemenu2['me_link'], $_GET['bo_table']) !== false) {
echo ("<script language='javascript'> display_submenu(" .$i. " ); </script> ");
}
} else {
//if ( ($row_asidemenu2['me_name']==$board['bo_subject'])||($row_asidemenu2['me_name']==$g5['title']) ) {
if(strpos($row_asidemenu2['me_link'], $_GET['bo_table']) !== false) {
echo ("<script language='javascript'> display_submenu(" .$i. " ); </script> ");
}
}
}
if($k > 0) {
echo '</ul>'.PHP_EOL;
}
?>
</ul>
<?php
}
// 인트라넷 자료추출
if ($bo_table=="보드1" || $bo_table=="보드2" || $bo_table=="보드3" || $bo_table=="보드4") {
?>
<ul id="mysub99">
<li class="leftmenu_b"> <a href="<?php echo G5_BBS_URL; ?>/board.php?bo_table=보드1" target="_self">인트라넷</a></li>
<ul>
<li class="leftmenu_s<?php if ($bo_table=="보드1") echo "_on"; ?>"><a href="<?php echo G5_BBS_URL; ?>/board.php?bo_table=보드1" target="_self">보드1</a> </li>
<li class="leftmenu_s<?php if ($bo_table=="보드2") echo "_on"; ?>"><a href="<?php echo G5_BBS_URL; ?>/board.php?bo_table=보드2" target="_self">보드2</a> </li>
<li class="leftmenu_s<?php if ($bo_table=="보드3") echo "_on"; ?>"><a href="<?php echo G5_BBS_URL; ?>/board.php?bo_table=보드3" target="_self">보드3</a> </li>
<li class="leftmenu_s<?php if ($bo_table=="보드4") echo "_on"; ?>"><a href="<?php echo G5_BBS_URL; ?>/board.php?bo_table=보드4" target="_self">보드3</a> </li>
</ul>
</ul>
<?php
}
?>
</div>
우측이나 좌측에 현재 접근한 메뉴를 표시하는 코드입니다. 근데 사용해보니 문제점이 두개있습니다.
문제점1. 메뉴설정에서 적은 메뉴이름과 게시판이름이 완전 같지 않으면 현재 메뉴로 표시해주지 않는것같습니다.
문제점2. 다른 메뉴 그룹에 있는 두 게시판 id가 wow_qa 그리고 ow_qa라면 한쪽에서 메뉴에서 두개 메뉴가 연달아 나옵니다. 아마 게시판 id에 '_'가 포함되면 '_' 이전의 글자는 인식되지 않고 그 뒤부터 읽는것같습니다.
고칠수있을까요? 아니면 다른코드를 찾아봐야..ㅠㅠ
...
...
답변 1
1. 메뉴명이 정확히 일치하지 않으면, 비슷하면 되나요?
게시판명을 기준으로 메뉴명에 포함으로 가능한데,
그럼 2가지가 검색될 문제가 발생합니다.
//좌측 서브메뉴 전체 리스트에서 현재 페이지에 해당하는 대메뉴 리스트만 보여줌
if ( (strpos($row_asidemenu['me_name'],$board['bo_subject'])!==false) ||(strpost($row_asidemenu['me_name'],$g5['title'])!==false) ) {
2. 게시판코드 뒷부분이 비슷하면 이렇게 수정해도 어떨수 없음
if(strpos($row_asidemenu2['me_link'], 'bo table='.$_GET['bo_table']) !== false) {
답변을 작성하시기 전에 로그인 해주세요.