테스트 사이트 - 개발 중인 베타 버전입니다

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

· 10년 전 · 54841 · 42

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 버전에서도 문제 없어 보입니다.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 42개

9년 전
정말 짱짱짱!!!!!!
ㅠ,ㅠ 감사합니다.
추천 100만번 해주고 싶네요.

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

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

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

여튼 감사합니다.
좋은 자료 감사합니다.
활용도가 많겠네요. ^^
9년 전
메뉴선택에는 아무것도 안나오네요?

그래서 메뉴 추가하면 1차메뉴만되요 ㅜㅜ
9년 전
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를 사용했습니다.
9년 전
메뉴 추가시 메뉴선택이 안나오시는분들 꼭 확인해보세요
9년 전
감사감사 ^^;; 꾸벅 해결했습니다.

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

일단은 직접쓰기로가 되서 수동으로 하고는 있는데 불편해서리 ㅡ,.ㅡ;;
9년 전
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];
}

게시글 목록

번호 제목
23606
23598
23585
23579
23578
23564
23550
23549
23548
23529
23510
23507
23481
23471
23453
23452
23450
23436
23428
23404
23396
23389
23380
23369
23350
23337
23317
23307
23298
23290