ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 제로보드XE 레이아웃에서 현재페이지가 플래쉬메뉴에서 선택되게 하는 방법
    달을파는아이 2009. 11. 12. 09:22

    홈페이지를 만들때면 플래쉬메뉴를 넣게 되는 경우가 많다. 플래쉬메뉴도 직접만들기 보다는 템플릿파는 사이트들에서 구입해서 쓴다. 구입한 플래쉬 메뉴들에는 기본적으로 현재 페이지가 선택되게 하는 기능이 있다.

     

     

    위 그림을 보면, “점토벽돌”이 선택되었다. “점토벽돌”페이지에 들어오면, 플래쉬는 현재페이지를 나타내기 위해서 “점토벽돌”을 자동으로 선택한다. 플래쉬메뉴를 주물러본 사람들은 익숙한 이야기다. 플래쉬메뉴마다 다소 차이가 있지만, 보통은 아래와 같다.

    flashmenu.swf?pageNum=2&subNum=1

    플래쉬를 삽입할때, 파일이름을 위와 같이 하면 자동으로 플래쉬 메뉴가 선택된다. 위에서 pageNum=2 는 두번째메뉴를 뜻하고, subNum=1 은 두번째메뉴의 서브메뉴중 첫번째를 뜻한다.

     

    이 익숙한 이야기가 제로보드XE로 오게 되면 생소한 이야기마냥 난감해진다. 레이아웃을 하나만 쓸려고 하는데, 위와 같이 번호를 먹일 방법이 애매하기 때문이다. 웹디의 입장에서는 프로그래머의 도움을 받아야 하나.. 라고 심각하게 고민한다.

    제로보드 XE 레이아웃에서 저 문제를 해결할 방법은 여러가지가 있다. 레이아웃위에 장문의 if else 문을 만들어서, 각 모듈마다 번호를 매길수도 있고, 메뉴마다 레이아웃을 만들어서 적용시킬수도 있다. 하지만, 문제는 끝도 없이 늘어나는 if 문과 레이아웃파일수다.

    파일 하나로 해결할수는 없을까? 의외로 간단하다. 약간의 꽁수가 섞였지만, 효과 만점이다.

    제로보드XE는 게시판이든 페이지든 모듈이름을 가진다. 이 모듈이름을 응용하면 된다. 모듈이름을 먹일때 숫자를 같이 적어준다. 예를들어, 회사소개페이지라면 보통 aboutus 라고 하는데, aboutus11 이라고 모듈이름을 정한다.

    뒤에 11의 의미는 첫번째메뉴의 첫번째서브메뉴라는 뜻이다. 만약에 고객센타 게시판을 생성한다고 하면, center53 이라고 이름을 정해준다. 5번째메뉴의 3번째 서브메뉴라는 뜻이다.

    모듈이름을 정했으면, 레이아웃을 연다. 웹디에서 편한 제로보드xe 레이아웃 설정법에서 말했던 것처럼 레이아웃을 세팅했다면, 레이아웃파일을 열면된다. 세팅하지 않았다면, 제로보드XE 관리자 모드에 들어가서 레이아웃 편집을 한다.

    레이아웃의 맨 위에 아래 2줄을 넣는다.


    {@$m1=substr($module_info->mid,-2,1)}
    {@$m2=substr($module_info->mid,-1,1)}

    이 두줄은 모듈이름에서 숫자를 뽑아내서 변수로 설정한다는 의미다. 별건 아니고, 모듈이름 뒤에 붙은 숫자를 {$m1} {$m2}로 바꿔준다. {$m1} {$m2}은 플래쉬를 넣을때 숫자대신 사용한다.

    위에서 본 flashmenu.swf?pageNum=2&subNum=1를 flashmenu.swf?pageNum={$m1}&subNum={$m2} 로 바꿔주면 끝이다.

    회사소개 페이지의 모듈이름이 aboutus11 이면, {$m1}은 1이고 {$m2}도 1이다. 마찬가지로 고객센타 게시판의 모듈이름은 center53 이니까, {$m1}은 5가 되고, {$m2}는 3이 된다.

     

    이렇게 세팅하면, 레이아웃 하나로도 플래쉬메뉴가 페이지에 따라 자동 선택된다. 이 방법을 응용하면, 페이지마다 로고나 배경이미지를 바꿀 수도 있다.

     

    그럼.. 제로보드 XE로 お楽しみ ^^

     

    PS . 언제든지 댓글 환영합니다. 질문은 http://money.web2r.net/?mid=factory&category=4816 에 올려주세요 ^^




    댓글

달을파는아이 @ nalab.kr