그누보드5 메뉴설정 4차까지 확장/뎁스/depth > 그누보드5 팁자료실

그누보드5 팁자료실

그누보드5 메뉴설정 4차까지 확장/뎁스/depth 정보

그누보드5 메뉴설정 4차까지 확장/뎁스/depth

첨부파일

adm_menu.zip (13.0K) 796회 다운로드 2018-03-21 16:43:35
메뉴소스.txt (5.9K) 476회 다운로드 2018-04-18 13:00:08

본문

4차메뉴까지 정도는필요하실듯하네요.

1. 설치방법안내

- /adm/css/admin.cs 313라인 변경/ 추가

#menulist .sub_menu_class {padding-left:25px;background:url('../img/sub_menu_ico.gif') 5px 15px no-repeat}

#menulist .sub_menu_class2 {padding-left:25px;background:url('../img/sub_menu_ico.gif') 5px 15px no-repeat}

#menulist .sub_menu_class3 {padding-left:50px;background:url('../img/sub_menu_ico2.gif') 5px 15px no-repeat}

#menulist .sub_menu_class4 {padding-left:75px;background:url('../img/sub_menu_ico3.gif') 5px 15px no-repeat}

-이미지 파일 2개는 아래 폴더에 업로드

/adm/img/

- 앞축푼 파일들은 /adm폴더에 업로드 하시면 됩니다.

 

2. 사용 소스코드

- 첨부파일에서 복사해서 쓰세요.

- 3차 까지만 작업되어 있구요. 4차 부터는 직접 수정하시면 됩니다.

 

3. 일러두기

- DB는 변경하실 필요가 없습니다.

- 5차 이후로도 가능은 하지만 필요가 없을듯 합니다.

- 메뉴추가를 하면 DB에 바로저장됩니다.

- 변경버튼 누르면 해당 메뉴만 업데이트되고, 하단에 확인 누르면 전체가 업데이트 됩니다.

- 기존 프로그램은 me_id 값이 계속 변경되지만, 이건 고정되어 있습니다.

- 메뉴 매칭 방식이 url을 검색하는 방식입니다. 더 좋은게 많겠지만, 간단한게 좋으니까.

- 로케이션/현재위치별 링크도 동작합니다.

 

2016.07.20

===============

안코딩님 수정내용에 따라 menu_form.php 35번 라인 수정해서 다시 올림.

 

2016.07.26

===============

게시판이나 그룹을 선택시 메뉴추가기능 정상동작확인 / 5.2.0 버전

menu_list_insert.php 오류 수정후 다시 올림.

 

2016.07.27

===============

테마의 head.php 파일에 16번 라인 이후에 아래 내용을 넣어주세요

mysql_num_rows를 사용하면 오류가 나서 그누보드에서 제공하는 함수로 변경하였습니다.

 

if($bo_table) {
 $cate = "me_link LIKE '%bo_table=".$bo_table ."%'";
 $present_row = sql_query("select me_code  from ".$g5['menu_table']." where  $cate order by me_order,me_code,me_id limit 0,1 ");
 $present_row2=sql_fetch_array($present_row);
 $me_code = $present_row2[me_code];
}else if($co_id){

 $cate = "me_link LIKE '%co_id=".$co_id ."' ";
 $present_row = sql_query("select me_code  from ".$g5['menu_table']." where  $cate order by me_order,me_code,me_id limit 0,1 ");
 $present_row2=sql_fetch_array($present_row);
 $me_code = $present_row2[me_code];
}

 

2016.09.06

==========================

보들이윤 님의 수정내용에 따라 menu_form.php 36번 라인 신규 메뉴 관련 비교 로직을 변경하였습니다.

 

2016.11.24

==========================

메뉴구조가 복잡해질 경우 $me_code 추출이 비정상인 문제를 해결하였습니다.

 

2017.12.26

===========

링크가 동일한 메뉴가 있을 경우, 하위 차수 메뉴의 me_code 값을 참조 하도록 수정 하였습니다.

 

2018.03.21

===========

특정 php 버전에서 메뉴추가, 메뉴 변경시 발생하는 오류를 수정하였습니다.

 

2018.04.18

===========

- me_code 추출시 정렬기능이 추가되었습니다.

   bo_table 값이나 co_id 값의 앞 2/4자리가 동일할 경우

   메뉴를 정상적으로 불러오지 못하는 부분이 수정되었습니다.

- 1/2/3차 메뉴 추출시 정렬순서에 me_code 값이 추가되었습니다.

- 5.3 버전에서도 문제 없어 보입니다.

추천
5

댓글 42개

기존사용하던것에서 소스 대치하고 메뉴설정에서 메뉴추가할려니 메뉴이름을 입력하라는 메세지창만 뜨고 추가진행이 안되네요. 음.. 왜그럴까요?
메인메뉴 출력까지는 잘 되는데 왜 그런지 사이드 메뉴와 로케이션 출력이 되지않습니다. 코드 전체가 안되서 공백으로 나오는데 왜 그런 걸까요? 소스 복사후 뭔가 설정해주어야 하는 것인지요
사이드(서브) 메뉴와 로케이션 표시를 하기위해서 head 부분에 아래 코드를 넣어주세요.

if($bo_table) {
$cate = "me_link LIKE '%bo_table=".$bo_table ."%'";
$present_row = sql_query("select me_code  from ".$g5['menu_table']." where $cate");
$total_count = mysql_num_rows($present_row);
for ($i=0 ; $i < $total_count ; $i++) {
$present_row2=sql_fetch_array($present_row);
}
$me_code = $present_row2[me_code];
}else if($co_id){

$cate = "me_link LIKE '%co_id=".$co_id ."' ";
$present_row = sql_query("select me_code  from ".$g5['menu_table']." where $cate");
    $total_count = mysql_num_rows($present_row);
for ($i=0 ; $i < $total_count ; $i++) {
$present_row2=sql_fetch_array($present_row);
}
$me_code = $present_row2[me_code];
}

영카트에서 사용하신다면  카테고리 아이디처리부분을 추가로 넣어 주시면됩니다.
정말 짱짱짱!!!!!!
ㅠ,ㅠ 감사합니다.
추천 100만번 해주고 싶네요.

근데 찾기가 넘 힘들었음, 제목이나 내용에다가요.

뎁스나 Depth 라는 키워드를 넣어주세요.

이렇게 유용한 정보, 좋은정보는 널리 알려져야돼요 ㅎㅎㅎ

여튼 감사합니다.
Warning: mysql_fetch_array() expects parameter 1 to be resource 관련 오류가 생겨서 한줄 수정했습니다.
adm/menu_form.php 35번째줄

while ( $R = mysql_fetch_array()){  -> while($R=sql_fetch_array($res)){

이렇게 수정했습니다.

최신버전 php에서 mysql 기능이 작동이 안되서 찾아보니 그누보드에서 지원하는 sql_fetch_array를 사용했습니다.
감사감사 ^^;; 꾸벅 해결했습니다.

그런데 이번에는 직접쓰기로만 되네요 게시판이나 그룹을 선택하면 이름쓰기가 없어져요 ㅡ,.ㅡ;;

일단은 직접쓰기로가 되서 수동으로 하고는 있는데 불편해서리 ㅡ,.ㅡ;;
menu_form.php파일 36번째줄
if($R['me_code']==$origin_code) 이부분의 조건을
if($R['me_code']==$origin_code && $new != 'new')
이렇게 바꾸어여 할듯합니다.
1차 대메뉴를 추가할시에 메뉴추가버튼을 누르면
menu_form.php 상단의 메뉴선택에서
제일 마지막에 등록된 $code를 찾아가더라구요
아 그리고 대상선택에서 해당 대상을 선택하게되면
자동으로 추가됨과 동시에 db에 입력되던데
기존 그누보드와같이 선택 추가를 하였지만
바로 저장되지않는 방식은 어려울까요?
기존 그누의 메뉴는 db에 저장된 메뉴를 전부 지우고, 새로 만들어진 트리를 추가하는 방식이었습니다. 그래서 메뉴를 한번 고치면 기존의 me_code 값들이 달라져 버렸습니다.
좀 비효율적이라는 생각에, 바로 저장되고, 기존의 me_code 값이 변경되지 않는 방식을 택하게 되었습니다.

menu_form.php 36번줄은 재 수정후에 다시 올리겟습니다.
안녕하세요? 좋은 소스 너무 감사합니다~

그런데 기본 pc환경에서는 잘 동작하는데요, 테마 http://sir.kr/cmall/1477636379 에 적용하니 동작을 하지 않습니다.. 해당 테마가 모바일 환경이라서 그런건가요..?

번거로우시겠지만 조언을 좀 부탁드립니다.

감사합니다~ :)
영카트는 상점구분을 ca_id 변수로 합니다.
메뉴에 ca_id=10 이렇게 저장되기 때문에

테마의  head.php 파일에 아래와 같이 추가 해주셔야 합니다.


// 젤 마지막 줄을 아래와 같이 변경

}else if($ca_id){

    $cate = "me_link LIKE '%ca_id=".$ca_id ."' ";
    $present_row = sql_query("select me_code  from ".$g5['menu_table']." where $cate");
    $total_count = sql_num_rows($present_row);
    for ($i=0 ; $i < $total_count ; $i++) {
        $present_row2=sql_fetch_array($present_row);
    }
    $me_code = $present_row2[me_code];
}
네 답변해 주셔서 너무 고맙습니다~
며칠 여러 모양으로 시도해 보았습니다만, pc테마환경에선 잘 되는데 모바일용 테마에서 안되나 봅니다..ㅠㅠ
감사합니다~!
모바일 테마 에서는 /theme/basic/mobile/head.php 에 위 내용을 동일 하게 추가 해주셔야 합니다.

그래도 안되시면 테마에 들어있는 내용을

/common.php 파일 460번째 줄 정도에 넣으시면 됩니다.

if ($is_admin != 'super') {  ... } 가 끝나는 곳 바로 아래 입니다.
안녕하세요...제작고민중이었는데 해결되었습니다.
그누컨텐츠에는 오류가 나서 수정 하였습니다.
 이부분을 $result3 = sql_query($sql3);

이렇게    $result3 = mysql_query($sql3);
고치니 정상작동 하였습니다.


//3차메뉴 불러 오기.
$sql3 = " select *
from {$g5['menu_table']}
where me_use = '1'
  and length(me_code) = '6'
  and substring(me_code, 1, 4) = '{$row2['me_code']}'
order by me_order, me_id ";
$result3 = mysql_query($sql3);
$num3 = mysql_num_rows($result3);


수고스러우시지만 4차메뉴가 잘 안되네요...
도와주실 수 있는지요
//4차메뉴 불러오기 말씀이신가요?
//답변이 늦었습니다.

//4차메뉴 불러 오기.
$sql4 = " select *
from {$g5['menu_table']}
where me_use = '1'
  and length(me_code) = '8'
  and substring(me_code, 1, 6) = '{$row3['me_code']}'
order by me_order, me_id ";
$result4 = mysql_query($sql4);
$num4 = mysql_num_rows($result4);
안녕하세요..
설명해주신데로 설정하고 메뉴를 작성하려고 하니..


위와같이 나타납니다..
mysql_query > sql_query
mysql_num_rows > sql_num_rows
로 수정해야 하는 경우도 있습니다.
mysqli 용 DB 쿼리를 적용해야 하는 경우도 있구요.
사용환경에 따라 조금씩 소스를 변경해주셔야 합니다.


도대체 왜 이렇게 따로 혼자 검은색으로 변하고 혼자만 놀까요 ?...!!!진우기업을 펼쳤을시 4차메뉴도 ..잘안돼네요 ..
중간에 빠지는 경우는 메뉴이름에 특수문자가 있을 경우로 보입니다.
3-4차의 경우는 소스를 봐야 겠지만,
2-4차에 해당하는 css가 없어서 화면에 안보이는 경우도 있으니 적절하게 조정/추가해주셔야 합니다.
안녕하세요! 저도 관리자 내에서는 적용이 되었는데 홈피 메인에서는 안 나타나서 메뉴소스보고 적용했는데 안 나타납니다,,뭐가 문제인지 해결이 안되고 있습니당..도와주세여ㅠㅠ
전체 2,411 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT