묻고답하기
사이드바 영역에 메인메뉴를 이용하여 서브메뉴 만들기 질문
2013.08.15 17:11
메인메뉴가 (홈 / 회사소개/ 제품/ 커뮤니티) 로 구성되어있을때
회사소개를 선택하면 왼쪽 사이드바 영역에 메인메뉴 소스를 이용하여 서브메뉴를 만들어주려고 합니다.
메인메뉴 부분에서 선택된 해당 메뉴 부분만 가져오면 될거 같은데 가능 할까요?
제가 초보라 문법을 전혀 이해못하겠습니다. ㅠㅠ (아래의 언어가 무슨 언어인가요?)
고수님들 죄송하지만 답변 부탁드립니다.
(아래는 메인 메뉴 의 소스 입니다)
<ul id="main_nav">
<block loop="$main_menu->list=>$key,$val">
{@ $menu_depth1 = $val }
<block cond="$val['selected']">{@ $menu_1st = $val }</block>
<block cond="$val['link']">
<li><a href="{$val['href']}" onclick="window.open(this.href);return false;"|cond="$val['open_window']=='Y'" class="on"|cond="$val['selected']"><span>{$val['link']}</span></a>
<!--// main_menu 2차 시작 -->
<block cond="$menu_depth1['list']">
<ul>
<block loop="$menu_depth1['list']=>$key,$val">
{@ $menu_depth2 = $val }
<block cond="$val['link']">
<li class="on"|cond="$val['selected']"><a href="{$val['href']}" onclick="window.open(this.href);return false;"|cond="$val['open_window']=='Y'">{$val['link']}<block cond="$menu_depth2['list']"><img src="img/{$layout_info->colorset}/arrow-down.png" alt="" class="arrow" /></block></a>
<!--// main_menu 3차 시작 -->
<block cond="$menu_depth2['list']">
<ul>
<block loop="$menu_depth2['list']=>$key,$val">
{@ $menu_depth3 = $val }
<block cond="$val['link']">
<li class="on"|cond="$val['selected']"><a href="{$val['href']}" onclick="window.open(this.href);return false;"|cond="$val['open_window']=='Y'">{$val['link']}<block cond="$menu_depth3['list']"><img src="img/{$layout_info->colorset}/arrow-down.png" alt="" class="arrow" /></block></a>
<!--// main_menu 4차 시작 -->
<block cond="$menu_depth3['list']">
<ul>
<block loop="$menu_depth3['list']=>$key,$val">
{@ $menu_depth4 = $val }
<block cond="$val['link']">
<li class="on"|cond="$val['selected']"><a href="{$val['href']}" onclick="window.open(this.href);return false;"|cond="$val['open_window']=='Y'">{$val['link']}</a>
</li>
</block> <!--//end of if-->
</block> <!--//end of loop-->
</ul>
</block>
<!--// main_menu 4차 끝 -->
</li>
</block><!--//end of if-->
</block><!--//end of loop-->
</ul>
</block>
<!--// main_menu 3차 끝 -->
</li>
</block> <!--//end of cond-->
</block> <!--//end of loop-->
</ul>
</block>
<!--// main_menu 2차 끝 -->
</li>
</block><!--// end of if -->
</block><!--// end of loop -->
</ul>
<!--// main_menu 1차 끝 -->
댓글 2
-
청의필구
2013.08.16 20:06
-
Summer
2013.08.16 22:19
사이드바 메뉴는 XE 1.7.3.4 버젼에 default 레이아웃을 선택하시고
레이아웃 설정에서 서브페이지로 설정하시면 서브 메뉴 나타납니다
관련 코드는 default.layout.html파일에서 LNB 관련 보시면되고
PHP의 if, for는 아시죠?
XE코어의 문법중에 XE의 html파일에서 <block loop=~~~> 이런식으로 작성하시면 정상적인 for문으로 바꿔주는 기능이 있습니다
<block loop=~~~>는 XE코어에서만 쓰이므로 XE 템플릿 문법입니다
메뉴를 담고있는 $main_menu 변수는 XE코어에서 설정한 변수이름 같구요
html파일내에서 {@ 와 } 사이에 간략한 php구문을 넣으면 XE가 알아서 php로 변경합니다(이것도 XE 템플릿 문법)
class="on"|cond="$val['selected']" 에서 cond은 condition(조건)의 약자로 | 앞에 붙은 엘리먼트 속성을 나타내는 조건을 지정합니다. 여기서는 $main_menu에서 가져온 $val 배열에 selected값이 1일 경우에만 class="on"이라는 속성이 생긴다는 뜻입니다.
onclick="window.open(this.href);return false;" 이거는 간단한 자바스크립트 문법이구요.
자세한건 XE 개발자, XE 레이아웃 제작 메뉴얼을 보시거나 http://xeschool.com 에서 공부하세요
php 공부하세요.
MVC 기본 구조 공부하세요.
이상끗. 자세한건 이사이트 곳곳에 나와있어요.