메인 메뉴 2차 이상 다중 서브 메뉴 사용하기 > 그누보드5 팁자료실

그누보드5 팁자료실

메인 메뉴 2차 이상 다중 서브 메뉴 사용하기 정보

메인 메뉴 2차 이상 다중 서브 메뉴 사용하기

첨부파일

menu1.gif (38.6K) 60회 다운로드 2014-06-07 06:22:40
menu2.gif (57.6K) 10회 다운로드 2014-06-07 06:22:40
menu3.gif (20.2K) 7회 다운로드 2014-06-07 06:22:40
menu4.gif (9.6K) 13회 다운로드 2014-06-07 06:22:40
갈매기.zip (14.7K) 449회 다운로드 2014-06-07 06:22:40

본문

그누 보드 관련 팁은 처음 올리는 것 같습니다
원래는 시간을 가지고 플러그인이나 혹은 스킨으로 내어 놓을려고 했지만

따로 제작하는 프로그램 때문에 시간 내기가 힘들고 한번 손을 대기 시작하면 시간가는 줄 모르고
하기 때문에 절충해서 팁으로 올립니다

해당 팁은 만들고 있는 프로그램에서 필요한 부분만 그누보드에 적용시킨 팁입니다
원래의 프로그램엔 스킨 기능등 몇가지가 더 내재 되어 있는데 그누보드와 구조가 다르기에
그부분은 뺐습니다


사용하는 분이 많고 사용상 어려움으로 인해 편리함을 원하시는 분이 많이 생기면
그때 좀 더 다듬어 플러그인으로 올리겠습니다
지금은 익히지 않은 날것 그 자체입니다


원리는 간단합니다
게시판의 답글 구조를 생각하고 접근하면 됩니다
1차 메뉴에 2차 메뉴를 달고 그중 하나에 다시 3차메뉴를 달았을 때 필요한 것은 정렬을 위한 필드와
최초의 부모메뉴가 무엇인지 알려주는 필드 자신의 바로 윗 부모가 누구인지와 메뉴의 깊이를 알려주는
깊이 필드 이렇게 4가지 필드가 필요합니다

이걸 줄여서 두가지 정도의 필드로 만들수도 있겠지만
조금 복잡하더라도 정확성을 위해서 4개의 필드로 20차 이상 하부 메뉴를 만들수 있습니다
20차 이상은 귀챦아서 저도 못해봤습니다 :)








소스 적용을 하시기 전에 항상 덮어쓰기 혹은 소스가 추가되는 파일들은 백업을 해두세요
정신 건강상 좋습니다



파일 덮어쓰기 혹은 고쳐야할 곳
------------------------------------------------------------------------
1 ) : head.php

파일 참고 주소 : http://홈주소.net/g5/head.php



올려진 파일5를 압축해제를 하면 head.php가 있습니다 그누 보드 폴더 안에 있는 head.php파일입니다
덮어 쓰기를 하시던지 혹은 안에 들어있는 소스를 참고해서
고치시면 됩니다 ( 디비에서 메뉴자료를 찾아와 리스트 태그로 만들어주는 php함수와 만들어진 리스트태그를
마우스 이벤트등을 입히기 위한 자바스크립트 함수 리스트태그를 메뉴로 자리매김하기 위한 스타일 태그등이
들어 있습니다

php함수 아래에 보면 변수에 함수를 대입한 녀석이 있습니다
$menuECHO= menuLIST("topMenu","all menu parint", $menuDEEP='0', $isTAB=' ');

첫번째 인자는 메뉴태그안에서 아이디 클라스등을 쓸때 사용되는 접두어로 사용됩니다

주의 사항 : 이 부분을 고치시면 자바스크립트의 아래 부분을 찾아서 바뀐 명칭에 DIV를 만들어 써주면 됩니다

function memuCALL(){
sublist("topMenuDIV")
}

두번째 인자는 메뉴명 3번째 인자는 처음이 아닌 해당 차수메뉴부터 하부 메뉴까지 보여주는 것인데
그누보드는 테스트 되어지지 않았습니다

네번째 인자는 소스보기시 정렬을 위해 사용되는 띄어쓰기 깊이입니다 띄어쓰기를 많이 넣어보고 소스보기를
해보면 어떻게 나오는지 확인 가능한 아주 쓸데없는 기능입니다 :)


덧붙여 topMenu를 바꿀때 스타일 태그 또한 해당 명칭을 찾아서 바꿔줘야 합니다







2 ) : menu_list.php

파일 참고 주소 : http://홈주소.net/g5/adm/menu_list.php

다음의 4가지 필요 필드로 인해 소스가 추가 되었습니다
listNUM
firstPARENT
parent
depth

마찬가지로 덮어쓰기 하시거나 수정된 부분을 추가하시면 되고 그전에 꼭 백업을 해두세요

listNUM 은 맨 위에서부터 차례로 1부터 오름순입니다 아마 이부분은 자동으로 기입될것입니다

firstPARENT는 자신의 조상메뉴 정도로 생각하시면 됩니다 본인이 처음이면(1차메뉴 )
본인의 listNUM( 이하 : 리스트넘) 번호를 가지며

만약 2차 메뉴이면 1차메뉴의 리스트넘이 3차 메뉴이면 1차메뉴의 리스트넘이
100차 메뉴여도 1차 메뉴의 리스트 넘이 들어갑니다

parent는 바로 부모가 누구인지입니다 2차 메뉴이면 1차메뉴의 리스트넘이 3차면 2차의 리스트넘이
100차이면 99차의 리스트넘이 누구인지 적어주면 됩니다
단 1차 메뉴만 본인이 부모이므로 0으로 적습니다 그외 2차 메뉴 부터는 부모의 리스트넘을 적습니다
잘은 안보이지만 파일 2 (menu2.gif) 참고하세요


depth 는 자신의 차수-1을 하면 됩니다
1차 메뉴는 0 2차메뉴는 1 5차 메뉴는 4 100차 메뉴는 99 입니다






3 ) :menu_form.php

파일 참고 주소 : http://홈주소.net/g5/adm/menu_form.php
메뉴를 추가해주는 부분입니다


4 ) :menu_list_update.php

파일 참고 주소 : http://홈주소.net/g5/adm/menu_list_update.php
메뉴를 디비에 업데이트하는 부분입니다




-------------------------------꼭 필요한 필드 추가 부분 ----------------------------------------


필드 4개를 추가해 줍니다
아래의 코드를 head.php의 // 마리홈 메뉴 설정을 차용 이라고 써진 부분 위에
붙여 넣고 실행을 한번 해주시면 필드 추가가 될겁니다
만약 이상없이 되었다면 아래의 코드는 삭제해 주시고
이상이 있다면 마이 어드민 등을 이용해서 직접 필드를 추가해 주시면 됩니다

$MENU_TABLE=$g5['menu_table'];
$sql2 = 'ALTER TABLE '.$MENU_TABLE.' ADD `listNUM` INT(10) NOT NULL ,';
$sql2 .= ' ADD `firstPARENT` INT(10) NOT NULL,';
$sql2 .= ' ADD `parent` INT(10) NOT NULL,';
$sql2 .= ' ADD `depth` INT(10) NOT NULL ;';
sql_query($sql2);








사용법 및 주의사항
----------------------------------------------------------------

첫머릿말에 썼듯이 좀더 다듬어 편리성을 추구하려 했지만
마음에 들때 까지 다듬으면 한도 끝도 없을거 같아
미리 팁 형식으로 올리기에 리스트 정렬 부분은 무조건 수동으로 기입해 줘야합니다

해당 주소
http://홈주소.net/g5/adm/menu_list.php

메뉴를 추가하면 2 ) : menu_list.php 의 추가 필드 사용 설명에 의거해서 번호를 작성하고 저장하시면 됩니다
그렇지 않으면 메뉴가 꼬입니다

메뉴를 삭제하는 부분은 따로 검사하지 않았습니다



파일 1은 메뉴가 생성된 모습이며
파일 2는 그누보드5 메뉴생성기에 추가 필드를 넣고 리스트 정렬을 한 모습이며
파일 3은 소스 보기시에 어떻게 나오는지에 대한 소스보기입니다
파일 4는 트리구조를 이용한 메뉴 생성기를 만드는 중이라 모습만 캡춰해 넣었습니다
좀 더 다듬어 괜챦다 싶으면 플러그인이나 스킨으로 올릴 일이 있으면 추가하겠습니다

파일 5는 소스변경된 파일입니다 덮어 쓰기하거나 혹은 변경된 곳만 따로 추가해 주시고
꼭 변경전에 백업을 한후 소스 적용을 하세요





질문은 되도록 아는 한도 내에서 해드리겠습니다
아직 그누보드를 제대로 파악하며 사용해 보지 못한 관계로
해당 팁이 모두에게 똑 같이 적용되지 않을수도 있음을 미리 알려드립니다
추천
6

댓글 10개

저는 글내용을 봐도 어떻게 하라는지 모르겠네요 ㅠ
head.php는 계정메인에 있길래 교체해주고, 나머지는 adm폴더에 넣었는데
또 뭘 해줘야하나요?
전체 2,427 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

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