여러개의 사이트맵으로 기본메뉴를 구성할 경우 서브메뉴를 출력하는 방법

제 사이트 기본 메뉴입니다.
특이한 점은 보통 사이트와 다르게 하나의 사이트맵이 아니라 여러 개의 사이트맵에서 기본 메뉴를 가져옵니다.
보통의 레이아웃들이 main_menu 라는 사이트맵에서 기본 메뉴를 불러온다면
저는 main_men1, main_menu2 ... main_menu5 라는 5개의 사이트맵에서 메뉴를 불러옵니다.
이 경우 어려운 점이 뭐냐면.. (__);;
서브 레이아웃에서 사이드바에서 2차 메뉴를 출력하는 게 어렵네요.
{@$i=0;}
<li loop="$portal_menu1->list => $key1, $val1" cond="$i=='0'" class="depth1"><a href="{$val1['href']}">{$val1['link']}</a>
<!--
기본 메뉴 선택된 메뉴 출력하는 소스(2016.02.20)
-->
<ul class="depth2" style="display:none">
<li loop="$portal_menu1->list => $key1, $val1" cond="$val1['list']">
<dl>
<dt><a href="{$val1['href']}">{$val1['link']}</a></dt>
<dd loop="$val1['list'] => $key2, $val2"><a href="{$val2['href']}" target="_blank"|cond="$val2['open_window'] == 'Y'">{$val2['link']}</a>
<ol class="depth4"><li loop="$val2['list'] => $key3, $val3"><a href="{$val3['href']}" target="_blank"|cond="$val2['open_window'] == 'Y'">- {$val3['link']}</a></li></ol>
</dd>
</dl>
</li>
</ul>
{@$i++;}
</li>
예를 들면 이런 메뉴가 1부터 5까지 5개가 기본 메뉴 소스로 사용됩니다.
그런데 보통은 사이트맵이 1개라서 서브 메뉴를 꾸밀 때
<block> {@ $snb1 = $portal_menu1 } </block> {@$i=0;} <h1 loop="$snb1->list=>$key1,$val1" style="color:red"|cond="$val1['selected']" cond="$val1['selected']">{$val1['link']} {@$i++;} </h1> <ul loop="$snb1->list=>$key1,$val1" class="on"|cond="$val1['selected']" cond="$val1['selected']"> <li loop="$val1['list']=>$key1,$val1"><b>{$val1['text']}</b> <ul> <li loop="$val1['list']=>$key2,$val2">{$val2['text']} </li> </ul> </li> </ul>
이렇게만 해주면 되는데 저는 이게 5개다보니깐
<block> {@ $snb1 = $portal_menu1 } </block>
이 거를 포함해서 위 소스를 각각의 경우로 모두 다 작성해줍니다.
소스도 길어지고 번거롭게 되죠..
이걸 어떻게 작성해야 반복해서 적지 않고 하는지 몰라서 며칠 삽질하다 그냥 다 적어주고 말았습니다 ㅠㅠ
무료 자료
XE → 라이믹스 이전 체크리스트
옮기기 전에 확인할 것, 이전 중 자주 터지는 오류, 옮긴 뒤 손봐야 하는 것을 순서대로 정리했습니다.
댓글 0
댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없어요
이 글에 대한 생각을 가장 먼저 남겨보세요.