메뉴 코드 수정
본문
상단 메뉴와 더불어 좌측에는 해당메뉴의 소메뉴목록을 출력하는 메뉴를 사용중입니다.
근데 이 좌측메뉴가 게시판연결이 메뉴명으로 구분하는것같습니다.
메뉴설정에서 메뉴명과 게시판 이름이 같을경우 연결이 잘되지만
다를경우 찾질못하고 빈칸으로 출력되버립니다.
이경우에는 어떻게 고쳐야 출력이될까요?
<!-- 좌측네비 시작 { -->
<script type="text/javascript">
<!--
function display_submenu(num) {
document.getElementById("mysub"+num).style.display="block";
}
//-->
</script>
<style TYPE="text/css">
<!--
#mysubmenu ul {list-style:none; font-size:10pt; margin:0 0 10px 0; padding:0;}
#mysubmenu .leftmenu_b {line-height:50px; background-color:#34495E;text-align:center;font-size:11pt;font-weight:bold; color:#fff}
#mysubmenu .leftmenu_s {line-height:35px; padding-left:15px; background-color:#fff;border-left:1px solid #ccc;border-right:1px solid #ccc;border-bottom:1px solid #ccc;}
#mysubmenu a {text-decoration:none;}
#mysubmenu a:hover {color:blue;}
//-->
</style>
<div id="mysubmenu">
<?php
$sql = " select *
from {$g5['menu_table']}
where me_use = '1'
and length(me_code) = '2'
order by me_order, me_id ";
$result = sql_query($sql, false);
$gnb_zindex = 999; // gnb_1dli z-index 값 설정용
for ($i=0; $row=sql_fetch_array($result); $i++) {
?>
<ul id="mysub<?php echo $i ?>" style="display:none;">
<a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" ><li class="leftmenu_b"><?php echo $row['me_name'] ?></li></a>
<?php
$sql2 = " select *
from {$g5['menu_table']}
where me_use = '1'
and length(me_code) = '4'
and substring(me_code, 1, 2) = '{$row['me_code']}'
order by me_order, me_id ";
$result2 = sql_query($sql2);
//좌측 서브메뉴 전체 리스트에서 현재 페이지에 해당하는 대메뉴 리스트만 보여줌
if ( ($row['me_name']==$board['bo_subject'])||($row['me_name']==$g5['title']) ) {
echo ("<script language='javascript'> display_submenu(" .$i. " ); </script> ");
} else {
}
for ($k=0; $row2=sql_fetch_array($result2); $k++) {
if($k == 0)
echo '<ul>'.PHP_EOL;
?>
<a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>" ><li class="leftmenu_s"><?php echo $row2['me_name'] ?></li></a>
<?php
//좌측 서브메뉴 전체 리스트에서 현재 페이지에 해당하는 대메뉴 리스트만 보여줌
if ( ($row2['me_name']==$board['bo_subject'])||($row2['me_name']==$g5['title']) ) {
echo ("<script language='javascript'> display_submenu(" .$i. " ); </script> ");
} else {
}
}
if($k > 0)
echo '</ul>'.PHP_EOL;
?>
</ul>
<?php } ?>
</div>
<!-- }좌측네비 끝 -->
...
...
...
...
답변 3
소스 보시면 41번째줄에 게시판 명과 메뉴 명이 같을 경우 출력되도록 되어져 있어요
if ( ($row['me_name']==$board['bo_subject'])||($row['me_name']==$g5['title']) ) {
이부분 수정하셔야 하는데
크게 중요한 부분이 아니라면 메뉴명 앞 3글자와 게시판 글 앞 3글자가 동일하면 출력되도록 해도 될것같은데 수정하셔야 될듯해요
해당코드는 그누보드에 원래 있는 코드가 아닌,
테마 제작자 또는 누군가가 필요에 의해 만든 코드입니다.
해당코드를 사용한다면, 메뉴명과 게시판명을 일치해주는 것이 좋을 것 같고..
생각하는 규칙성이 달라, 해당 코드를 사용하기 어렵다면, 새로 로직을 짜고 코딩을 해야 됩니다.
자답이 되었네요
<div id="mysubmenu">
<?php
$sql = " select *
from {$g5['menu_table']}
where length(me_code) = '2'
order by me_order, me_id ";
$result = sql_query($sql, false);
$gnb_zindex = 999; // gnb_1dli z-index 값 설정용
for ($i=0; $row=sql_fetch_array($result); $i++) {
?>
<ul id="mysub<?php echo $i ?>" style="display:none;">
<a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" ><li class="leftmenu_b"><?php echo $row['me_name'] ?></li></a>
<?php
$sql2 = " select *
from {$g5['menu_table']}
where me_use = '1'
and length(me_code) = '4'
and substring(me_code, 1, 2) = '{$row['me_code']}'
order by me_order, me_id ";
$result2 = sql_query($sql2);
//좌측 서브메뉴 전체 리스트에서 현재 페이지에 해당하는 대메뉴 리스트만 보여줌
if ( ($row['me_name']==$board['bo_subject'])||($row['me_name']==$g5['title']) ) {
echo ("<script language='javascript'> display_submenu(" .$i. " ); </script> ");
} else {
}
for ($k=0; $row2=sql_fetch_array($result2); $k++) {
if($k == 0)
echo '<ul>'.PHP_EOL;
?>
<a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>" ><li class="leftmenu_s"><?php echo $row2['me_name'] ?></li></a>
<?php
//좌측 서브메뉴 전체 리스트에서 현재 페이지에 해당하는 대메뉴 리스트만 보여줌
if ($row2['me_link']) {
$me_link0 = explode("=",$row2['me_link']);
//if ( ($me_link0[1]==$board['bo_table'])||($me_link0[1]==$co_id) ) {
if(strpos($row2['me_link'], $_GET['bo_table']) !== false) {
echo ("<script language='javascript'> display_submenu(" .$i. " ); </script> ");
}
} else {
//if ( ($row_asidemenu_hide2['me_name']==$board['bo_subject'])||($row_asidemenu_hide2['me_name']==$g5['title']) ) {
if(strpos($row2['me_link'], $_GET['bo_table']) !== false) {
echo ("<script language='javascript'> display_submenu(" .$i. " ); </script> ");
}
}
}
if($k > 0)
echo '</ul>'.PHP_EOL;
?>
</ul>
<?php } ?>
</div>
답변을 작성하시기 전에 로그인 해주세요.