레벨 5 이상에서만 보여지는 메뉴를 만들고 싶어요 ㅜ.ㅜ 채택완료
안녕하세요
며칠을 끙끙거리다 결국 도움을 청하려고 이렇게 글을 올립니다. ㅜ.ㅜ


나머지 메뉴는 모든 레벨에서 다 볼 수 있고 Menu와 거기에 딸린 서브 메뉴만 회원레벨 5 이상의 회원들에게만 보여주고 싶거든요.
열심히 찾아보며 까만도둑님께서 10년전쯤 전에 올려주신 팁이 있어 시도해봤지만 버젼이 달라서 그런지 안되더라구요 흑
도와주세요~
감사합니다!!!
답변 3개
채택된 답변
+20 포인트
답변에 대한 댓글 4개
K
1개월 전
�
1개월 전
[code]
<!-------------------------- 메뉴시작 -------------------------->
<ul class="nav navbar-nav navbar-right">
<?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 값 설정용
$menu_datas = array();
for ($i = 0; $row = sql_fetch_array($result); $i++) {
$menu_datas[$i] = $row;
$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);
for ($k = 0; $row2 = sql_fetch_array($result2); $k++) {
$menu_datas[$i]['sub'][$k] = $row2;
}
}
$i = 0;
foreach ($menu_datas as $row) {
if (empty($row)) continue;
// 조건: 레벨 4 미만이고 관리자도 아닐 때는 me_order >= 9 메뉴는 건너뛰기
if (($member['mb_level'] < 4 && $is_admin != 'super') && $row['me_order'] >= 9) {
continue; // 출력하지 않음
}
?>
<?php if (isset($row['sub']['0'])) { ?>
<?php
if (!empty($_GET["bo_table"])) {
$a_menu = $_GET["bo_table"];
} elseif (!empty($_GET["co_id"])) {
$a_menu = $_GET["co_id"];
} else {
$a_menu = basename($_SERVER['PHP_SELF']);
}
if (defined('_INDEX_')) {
$active = "";
} else {
$AT = sql_fetch("select me_code, me_name from {$g5['menu_table']} where me_link LIKE '%$a_menu%'");
if (isset($AT['me_code'])) {
$active_me_code = mb_substr($AT['me_code'], 0, 2);
if ($active_me_code == $row['me_code']) {
$active = "active";
} else {
$active = "";
}
} else {
$active = "";
}
}
?>
<li class="dropdown">
<a href="<?php echo $row['me_link']; ?>" class="dropdown-toggle <?php echo $active; ?>" target="_<?php echo $row['me_target']; ?>"><?php echo $row['me_name'] ?></a>
<a href="#" class="dropdown-sub" data-toggle="dropdown"><i class="fa fa-angle-down"></i></a>
<!-- 서브 -->
<ul class="dropdown-menu multi-level" role="menu" aria-labelledby="dropdownMenu">
<?php
// 하위 분류
$k = 0;
foreach ((array) $row['sub'] as $row2) {
if (empty($row2)) continue;
if (!empty($_GET["bo_table"])) {
$a_menu = $_GET["bo_table"];
} elseif (!empty($_GET["co_id"])) {
$a_menu = $_GET["co_id"];
} else {
$a_menu = basename($_SERVER['PHP_SELF']);
}
$currentUrl = $row2['me_link'];
$parts = parse_url($currentUrl);
$path = trim($parts['path'], '/');
$segments = explode('/', $path);
$pageName = end($segments);
if ($a_menu == $pageName) {
$sub_active = "color:#32c5d2";
} else {
$sub_active = "";
}
?>
<li class="ko"><a tabindex="-1" href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>" style="<?php echo $sub_active; ?>"> <?php echo $row2['me_name'] ?></a></li>
<?php
$k++;
} //end foreach $row2
if ($k > 0)
echo '</ul>' . PHP_EOL;
?>
<?php } else { ?>
<?php
if (!empty($_GET["bo_table"])) {
$a_menu = $_GET["bo_table"];
} elseif (!empty($_GET["co_id"])) {
$a_menu = $_GET["co_id"];
} else {
$a_menu = basename($_SERVER['PHP_SELF']);
}
if (defined('_INDEX_')) {
$active = "";
} else {
$AT = sql_fetch("select me_code, me_name from {$g5['menu_table']} where me_link LIKE '%$a_menu%'");
if (isset($AT['me_code'])) {
$active_me_code = mb_substr($AT['me_code'], 0, 2);
if ($active_me_code == $row['me_code']) {
$active = "active";
} else {
$active = "";
}
} else {
$active = "";
}
}
?>
<li class="nav-item">
<a class="nav-link <?php echo $active; ?>" href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>"><?php echo $row['me_name'] ?></a>
</li>
<?php } ?>
</li>
<?php
$i++;
} //end foreach $row
if ($i == 0) { ?>
<li class="gnb_empty">
메뉴 준비 중입니다.
<?php if ($is_admin) { ?> <strong>관리자모드 > 환경설정 > 메뉴설정에서 설정하실 수 있습니다.</strong><?php } ?>
</li>
<?php } ?>
</ul><!-- /ul -->
[/code]
이렇게 한번 해보세요.. 참고용 입니다.
<!-------------------------- 메뉴시작 -------------------------->
<ul class="nav navbar-nav navbar-right">
<?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 값 설정용
$menu_datas = array();
for ($i = 0; $row = sql_fetch_array($result); $i++) {
$menu_datas[$i] = $row;
$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);
for ($k = 0; $row2 = sql_fetch_array($result2); $k++) {
$menu_datas[$i]['sub'][$k] = $row2;
}
}
$i = 0;
foreach ($menu_datas as $row) {
if (empty($row)) continue;
// 조건: 레벨 4 미만이고 관리자도 아닐 때는 me_order >= 9 메뉴는 건너뛰기
if (($member['mb_level'] < 4 && $is_admin != 'super') && $row['me_order'] >= 9) {
continue; // 출력하지 않음
}
?>
<?php if (isset($row['sub']['0'])) { ?>
<?php
if (!empty($_GET["bo_table"])) {
$a_menu = $_GET["bo_table"];
} elseif (!empty($_GET["co_id"])) {
$a_menu = $_GET["co_id"];
} else {
$a_menu = basename($_SERVER['PHP_SELF']);
}
if (defined('_INDEX_')) {
$active = "";
} else {
$AT = sql_fetch("select me_code, me_name from {$g5['menu_table']} where me_link LIKE '%$a_menu%'");
if (isset($AT['me_code'])) {
$active_me_code = mb_substr($AT['me_code'], 0, 2);
if ($active_me_code == $row['me_code']) {
$active = "active";
} else {
$active = "";
}
} else {
$active = "";
}
}
?>
<li class="dropdown">
<a href="<?php echo $row['me_link']; ?>" class="dropdown-toggle <?php echo $active; ?>" target="_<?php echo $row['me_target']; ?>"><?php echo $row['me_name'] ?></a>
<a href="#" class="dropdown-sub" data-toggle="dropdown"><i class="fa fa-angle-down"></i></a>
<!-- 서브 -->
<ul class="dropdown-menu multi-level" role="menu" aria-labelledby="dropdownMenu">
<?php
// 하위 분류
$k = 0;
foreach ((array) $row['sub'] as $row2) {
if (empty($row2)) continue;
if (!empty($_GET["bo_table"])) {
$a_menu = $_GET["bo_table"];
} elseif (!empty($_GET["co_id"])) {
$a_menu = $_GET["co_id"];
} else {
$a_menu = basename($_SERVER['PHP_SELF']);
}
$currentUrl = $row2['me_link'];
$parts = parse_url($currentUrl);
$path = trim($parts['path'], '/');
$segments = explode('/', $path);
$pageName = end($segments);
if ($a_menu == $pageName) {
$sub_active = "color:#32c5d2";
} else {
$sub_active = "";
}
?>
<li class="ko"><a tabindex="-1" href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>" style="<?php echo $sub_active; ?>"> <?php echo $row2['me_name'] ?></a></li>
<?php
$k++;
} //end foreach $row2
if ($k > 0)
echo '</ul>' . PHP_EOL;
?>
<?php } else { ?>
<?php
if (!empty($_GET["bo_table"])) {
$a_menu = $_GET["bo_table"];
} elseif (!empty($_GET["co_id"])) {
$a_menu = $_GET["co_id"];
} else {
$a_menu = basename($_SERVER['PHP_SELF']);
}
if (defined('_INDEX_')) {
$active = "";
} else {
$AT = sql_fetch("select me_code, me_name from {$g5['menu_table']} where me_link LIKE '%$a_menu%'");
if (isset($AT['me_code'])) {
$active_me_code = mb_substr($AT['me_code'], 0, 2);
if ($active_me_code == $row['me_code']) {
$active = "active";
} else {
$active = "";
}
} else {
$active = "";
}
}
?>
<li class="nav-item">
<a class="nav-link <?php echo $active; ?>" href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>"><?php echo $row['me_name'] ?></a>
</li>
<?php } ?>
</li>
<?php
$i++;
} //end foreach $row
if ($i == 0) { ?>
<li class="gnb_empty">
메뉴 준비 중입니다.
<?php if ($is_admin) { ?> <strong>관리자모드 > 환경설정 > 메뉴설정에서 설정하실 수 있습니다.</strong><?php } ?>
</li>
<?php } ?>
</ul><!-- /ul -->
[/code]
이렇게 한번 해보세요.. 참고용 입니다.
댓글을 작성하려면 로그인이 필요합니다.
마르스컴퍼니
1개월 전
foreach ($menu_datas as $row) {
if (empty($row)) continue;
// 특정 메뉴 레벨 제한 (메뉴명으로 체크)
if ($row['me_name'] == 'Menu' && $member['mb_level'] < 5)
continue;
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
1개월 전
Copy
전체메뉴열기
이렇게 수정해 보세요
<?php if($row['me_name'] == 'Menu' && $member['mb_level'] > 4) { ?> 이 조건에서만 보일 것입니다
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
theme/theme_54/navigation.php 파일에서 메뉴 부분을 수정해야 하는 것 같아요.
[code]
<!-------------------------- 메뉴시작 -------------------------->
<ul class="nav navbar-nav navbar-right">
<?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 값 설정용
$menu_datas = array();
for ($i = 0; $row = sql_fetch_array($result); $i++) {
$menu_datas[$i] = $row;
$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);
for ($k = 0; $row2 = sql_fetch_array($result2); $k++) {
$menu_datas[$i]['sub'][$k] = $row2;
}
}
$i = 0;
foreach ($menu_datas as $row) {
if (empty($row)) continue;
?>
<?php if (isset($row['sub']['0'])) { ?>
<?php
if (!empty($_GET["bo_table"])) {
$a_menu = $_GET["bo_table"];
} elseif (!empty($_GET["co_id"])) {
$a_menu = $_GET["co_id"];
} else {
$a_menu = basename($_SERVER['PHP_SELF']);
}
if (defined('_INDEX_')) {
$active = "";
} else {
$AT = sql_fetch("select me_code, me_name from {$g5['menu_table']} where me_link LIKE '%$a_menu%'");
if (isset($AT['me_code'])) {
$active_me_code = mb_substr($AT['me_code'], 0, 2);
if ($active_me_code == $row['me_code']) {
$active = "active";
} else {
$active = "";
}
} else {
$active = "";
}
}
?>
<li class="dropdown">
<a href="<?php echo $row['me_link']; ?>" class="dropdown-toggle <?php echo $active; ?>" target="_<?php echo $row['me_target']; ?>"><?php echo $row['me_name'] ?></a>
<a href="#" class="dropdown-sub" data-toggle="dropdown"><i class="fa fa-angle-down"></i></a>
<!-- 서브 -->
<ul class="dropdown-menu multi-level" role="menu" aria-labelledby="dropdownMenu">
<?php
// 하위 분류
$k = 0;
foreach ((array) $row['sub'] as $row2) {
if (empty($row2)) continue;
if (!empty($_GET["bo_table"])) {
$a_menu = $_GET["bo_table"];
} elseif (!empty($_GET["co_id"])) {
$a_menu = $_GET["co_id"];
} else {
$a_menu = basename($_SERVER['PHP_SELF']);
}
$currentUrl = $row2['me_link'];
$parts = parse_url($currentUrl);
$path = trim($parts['path'], '/');
$segments = explode('/', $path);
$pageName = end($segments);
if ($a_menu == $pageName) {
$sub_active = "color:#32c5d2";
} else {
$sub_active = "";
}
?>
<li class="ko"><a tabindex="-1" href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>" style="<?php echo $sub_active; ?>"> <?php echo $row2['me_name'] ?></a></li>
<?php
$k++;
} //end foreach $row2
if ($k > 0)
echo '</ul>' . PHP_EOL;
?>
<?php } else { ?>
<?php
if (!empty($_GET["bo_table"])) {
$a_menu = $_GET["bo_table"];
} elseif (!empty($_GET["co_id"])) {
$a_menu = $_GET["co_id"];
} else {
$a_menu = basename($_SERVER['PHP_SELF']);
}
if (defined('_INDEX_')) {
$active = "";
} else {
$AT = sql_fetch("select me_code, me_name from {$g5['menu_table']} where me_link LIKE '%$a_menu%'");
if (isset($AT['me_code'])) {
$active_me_code = mb_substr($AT['me_code'], 0, 2);
if ($active_me_code == $row['me_code']) {
$active = "active";
} else {
$active = "";
}
} else {
$active = "";
}
}
?>
<li class="nav-item">
<a class="nav-link <?php echo $active; ?>" href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>"><?php echo $row['me_name'] ?></a>
</li>
<?php } ?>
</li>
<?php
$i++;
} //end foreach $row
if ($i == 0) { ?>
<li class="gnb_empty">
메뉴 준비 중입니다.
<?php if ($is_admin) { ?> <strong>관리자모드 > 환경설정 > 메뉴설정에서 설정하실 수 있습니다.</strong><?php } ?>
</li>
<?php } ?>
</ul><!-- /ul -->
[/code]
이 파일 중간에 알려주신 부분을 수정해서 넣어야 하는 것 같은데 잘못했는지 홈페이지가 아예 뜨질 않아서 다시 여쭤봐요 ㅜ.ㅜ 답변 감사드려요