웹마스터 팁

안녕하세요 럭키입니디 ㅏ.. #_#;;

많은분들이 메뉴와 관련된부분을 어려워 하시는거 같습니다.

1차메뉴부터..

             <!-- main_menu 1차 시작 -->
            <!--@foreach($main_menu->list as $key => $val)-->
<!--@if($val['text'])--> ①
                <!--@if($val['selected'])--> ②
                    {@ $menu_1st = $val }
                <!--@end--> ②
// 밑에 li안에있는 IF가 ③

                <li <!--@if($val['selected'])-->class="on"<!--@end-->><a href="{$val['href']}" <!--@if($val['open_window']=='Y')-->onclick="window.open(this.href);return false;"<!--@end-->>{$val['text']}</a></li>

            <!--@end--> ③
            <!--@end--> ①
            <!-- main_menu 1차 끝 -->


아닐수도있지만 전 제나름대로의 방식대로 이해했습니다. .....

일단 제나름대로 해석해보면..
메뉴정보를 가져와서, $val에 가져오고
①IF 로 $val['text'] 1차메뉴가 하나이상 있을때 밑에부분을 실행하란 말입니다

이안에서 또 ② If로 $val['selected']  현재 메뉴가 선택되어있을때(만약 공지게시판에 접속했다면 공지게시판이 선택)
$menu_1st 에 $val값을 대입, ② End문으로 ② IF를 닫습니다.
그리고
                <li <!--@if($val['selected'])-->class="on"<!--@end-->><a href="{$val['href']}" <!--@if($val['open_window']=='Y')-->onclick="window.open(this.href);return false;"<!--@end-->>{$val['text']}</a></li>

CSS에서 지정해놓았던 <li 에 ③ IF  $val['selected'] 메뉴가 선택되어있다면 class="on" 이란 클래스를 지정하고  End
a href  .. 링크는 메뉴관리에서 설정한 링크를 지정하고,  그뒷부분은 메뉴관리에서 새창열기가 체크됬을경우 새창으로 띄워줍니다
{$val['text']) 는 메뉴이름을 보여줍니다.
그리고 맨밑에 ① IF를 닫습니다.
1차 메뉴 끝
즉 1차메뉴가 한개이상 있을경우, <li><a href="링크">메뉴항목</a></li>
이렇게 반복적으로 출력한단 말이고, 현재 메뉴일경우 class="on"이란 클래스를 지정해줌으로써
현재 위치한 메뉴에 CSS를이용하여 효과를 주는것입니다.

----------------------------

            <!-- 왼쪽 2차 메뉴 -->
            <!--@if($menu_1st)-->
   <ol id="lnb">
                {@ $idx = 1 }
                <!--@foreach($menu_1st['list'] as $key => $val)--><!--@if($val['text'])-->
    <li <
!--@if($val['selected'])-->class="on"<!--@end-->><a href="{$val['href']}" <!--@if($val['open_window']=='Y')-->onclick="window.open(this.href);return false;"<!--@end-->>{$val['text']}</a>

                    <!-- main_menu 3차 시작 -->
                    <!--@if($val['list'])-->
     <ul>
                    <!--@foreach($val['list'] as $k => $v)--><!--@if($v['text'])-->
      <li <
!--@if($v['selected'])-->class="on"<!--@end-->><a href="{$v['href']}" <!--@if($v['open_window'+ '+ ']=='Y')-->onclick="window.open(this.href);return false;"<!--@end-->>{$v['text']}</a></li>
                    <
!--@end--><!--@end-->
     </ul>
                    <
!--@end-->
    </li>
               
{@$idx++}
                <
!--@end--><!--@end-->
   </ol>
            <
!--@end-->


2차메뉴까지만 이해한다면 3차부터는 그대로 응용하시면 가능한 문제입니다.
일단 2차메뉴는 1차메뉴의 하위메뉴입니다.
그러므로 ① IF에서 1차메뉴가 있을떄 밑에 문법을 실행합니다.
$idx에 1을 대입하고,  $menu_1st , $key  메뉴정보를 $val에 가져옵니다.
여기서 보니 아마 $key는 2차메뉴정보가 있나봅니다.
② If로 val['text'] 2차메뉴가 있을때, 밑에 문법들을 실행하라..이말이죠
아까 1차메뉴와 똑같이, 메뉴가 선택되었을때 class="on" 을 지정하고,
링크나 새창 , 메뉴출력 .. 다 1차와 똑같이 되어있죠~
즉.. 무슨말이냐

저거 진하게 강조한부분만 변경하시면, 4차메뉴나 5차메뉴도 가져오실수있습니다.
음.. 그럼 ZBXE공식사이트에있는걸 기준으로 4차메뉴 추가한 예제를 보여드릴게요

       <!-- main_menu 2차 시작 -->
            <
!--@if($menu_1st)-->
   <ol id="lnb">
                {@ $idx = 1 }
                <
!--@foreach($menu_1st['list'] as $key => $val)--><!--@if($val['text'])-->
    <li <
!--@if($val['selected'])-->class="on"<!--@end-->><a href="{$val['href']}" <!--@if($val['open_window']=='Y')-->onclick="window.open(this.href);return false;"<!--@end-->>{$val['text']}</a>

                    <!-- main_menu 3차 시작 -->
                    <
!--@if($val['list'])-->
     <ul>
                    <
!--@foreach($val['list'] as $k => $v)--><!--@if($v['text'+ '])-->
      <li <
!--@if($v['selected'])-->class="on"<!--@end-->><a href="{$v['href']}" <!--@if($v['open_window']=='Y')-->onclick="window.open(this.href);return false;"<!--@end-->>{$v['text']}</a></li>
                    <!-- main_menu 4차 시작 -->
                    <
!--@if($v['list'])-->
     <ul>
                    <
!--@foreach($v['list'] as $k => $v4)--><!--@if($v4['text'])-->
      <li <
!--@if($v4['selected'])-->class="laa"<!--@end-->><a href="{$v4['href']}" <!--@if($v4['open_window']=='Y')-->onclick="window.open(this.href);return false;"<!--@end-->>{$v4['text']}</a></li>
                                       <
!--@end--> <!--@end-->  <!--@end-->                  <!--@end-->
     </ul>
                    <
!--@end--><!--@end-->
    </li>
               
{@$idx++}
                <
!--@end--><!--@end-->
   </ol>
            <
!--@end-->


보시면 아시겠지만 3차메뉴에서는 2차메뉴인 val['list'] 에서 가져온것을 $v에 담아두고있습니다.
4차에서는 이걸이용해 3차메뉴인 $v['list'] 에서 가져온것을 $v4에 담아두고 이용하면 잘됩니다.
만약 5차메뉴도 추가하고싶다면 4차메뉴인 $v4['list'] 에서 가져와서 이용하시면 되겠죠..??

.......
쓰고보니까 글도 너무 복잡하고 길어서 죄송합니다 .ㅜ __ㅜ
모르거나 이해안가시는것은 댓글이나 쪽지로 주세요 __ ....

★ 제가 위에서 소스해석한게 틀릴수도있습니다. 하지만 무작정 붙여넣어서 쓰는것보단 이렇게라도 이해하고 쓰면 쉽게 할수있습니다.

제목 글쓴이 날짜
검색엔진 네이버 사이트 순위 SEO 검색엔진 최적화 작업해도 안 올라간다면.. [1] file CJM 2022.05.16
불법광고 댓글 greentown 2021.05.18
XE 1.4에서 HTML5 에디터 사용하기 (Flash 없는) [3] file Toby 2021.02.24
content 위젯에서 태그로 글 뽑기 날아올라 2021.02.07
XE를 다른디렉토리에 설치후 리다이렉트하기 디자인플렉스 2020.04.24
커뮤니션 쪽지 보내기 기능을 모바일 에서 실행시 로그인 풀림 현상 인천한량 2020.04.14
AI 개발에 적합한 5가지 프로그래밍 언어 ppumweb 2020.01.06
ZB게시판에 구글광고 달수 없나요? [2] 손주사랑 2019.11.23
대부분 쉬운설치로 인해 홈페이지 빈 페이지가 뜨는 에러는.. CJM 2019.10.24
코드 이미지 생성해주는 사이트 [2] file reactux 2019.10.06
xe 기본회원가입품 연락처항목 공백&숫자 유효성검사 질문입니다. 해운거사2 2019.08.25
회원가입품 연락처항목 공백잇을시 질문입니다. 해운거사2 2019.08.16
관리자 아이디/비번을 잃어버렸을때, 관리자페이지 접속을 못할 때 TIP [1] file 플레이웹 2019.08.13
VSCODE에서 PRETTIER-PHP 사용하기 (중급자용) reactux 2019.07.29
관리자페이지의 회원목록에서 타회원들의 비밀번호 찾기 질문/답변 수정 가능하도록 하려면.. sejin7940 2019.07.03
스케치북5 게시판 사용자정의에 색상 적용하기 file 아데나 2019.05.31
로그인 실패시 실패내역 쪽지와 메일 발송 되는걸 발송 안 되게 하려면.. sejin7940 2019.05.21
1.11.3 업로드 패치 이후 업로드 오류 관련 우소푸 2019.04.21
XE이전 작업순서 elancer 2019.03.28
무료이미지 다운 받을 수 있는 곳 elancer 2019.03.19