그누보드5 메뉴설정 4차까지 확장/뎁스/depth 정보
그누보드5 메뉴설정 4차까지 확장/뎁스/depth첨부파일
본문
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개
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 라는 키워드를 넣어주세요.
이렇게 유용한 정보, 좋은정보는 널리 알려져야돼요 ㅎㅎㅎ
여튼 감사합니다.
활용도가 많겠네요. ^^
그래서 메뉴 추가하면 1차메뉴만되요 ㅜㅜ
adm/menu_form.php 35번째줄
while ( $R = mysql_fetch_array()){ -> while($R=sql_fetch_array($res)){
이렇게 수정했습니다.
최신버전 php에서 mysql 기능이 작동이 안되서 찾아보니 그누보드에서 지원하는 sql_fetch_array를 사용했습니다.
그런데 이번에는 직접쓰기로만 되네요 게시판이나 그룹을 선택하면 이름쓰기가 없어져요 ㅡ,.ㅡ;;
일단은 직접쓰기로가 되서 수동으로 하고는 있는데 불편해서리 ㅡ,.ㅡ;;
if($R['me_code']==$origin_code) 이부분의 조건을
if($R['me_code']==$origin_code && $new != 'new')
이렇게 바꾸어여 할듯합니다.
1차 대메뉴를 추가할시에 메뉴추가버튼을 누르면
menu_form.php 상단의 메뉴선택에서
제일 마지막에 등록된 $code를 찾아가더라구요
아 그리고 대상선택에서 해당 대상을 선택하게되면
자동으로 추가됨과 동시에 db에 입력되던데
기존 그누보드와같이 선택 추가를 하였지만
바로 저장되지않는 방식은 어려울까요?
좀 비효율적이라는 생각에, 바로 저장되고, 기존의 me_code 값이 변경되지 않는 방식을 택하게 되었습니다.
menu_form.php 36번줄은 재 수정후에 다시 올리겟습니다.
그런데 기본 pc환경에서는 잘 동작하는데요, 테마 http://sir.kr/cmall/1477636379 에 적용하니 동작을 하지 않습니다.. 해당 테마가 모바일 환경이라서 그런건가요..?
번거로우시겠지만 조언을 좀 부탁드립니다.
감사합니다~ :)
메뉴에 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테마환경에선 잘 되는데 모바일용 테마에서 안되나 봅니다..ㅠㅠ
감사합니다~!
그래도 안되시면 테마에 들어있는 내용을
/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차메뉴 불러 오기.
$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_num_rows > sql_num_rows
로 수정해야 하는 경우도 있습니다.
mysqli 용 DB 쿼리를 적용해야 하는 경우도 있구요.
사용환경에 따라 조금씩 소스를 변경해주셔야 합니다.
다시 한번 감사드립니다!
업데이트 감사드립니다.
덕분에 계속 잘 사용하고 있습니다.
그누5.3.1입니다.
도대체 왜 이렇게 따로 혼자 검은색으로 변하고 혼자만 놀까요 ?...!!!진우기업을 펼쳤을시 4차메뉴도 ..잘안돼네요 ..
3-4차의 경우는 소스를 봐야 겠지만,
2-4차에 해당하는 css가 없어서 화면에 안보이는 경우도 있으니 적절하게 조정/추가해주셔야 합니다.