CMS솔루션마켓, 이온디 - 워드프레스, 라이믹스, 카페24, 그누보드, 엑셀

파싱

레이아웃을 만들다가... 메뉴 1차... 2차... 3차... 4차... 분석에 들어갔다.


원리는 아래와 같다~ ^^


<ul>
<!--@foreach($main_menu->list as $key => $val1)-->
<li><span>{$val1['text']}</span>
    <ul>
        <!--@if($val1['list'])-->
        <!--@foreach($val1['list'] as $key => $val2)-->
            <li>{$val2['text']}</li>
            <ul>
            <!--@if($val2['list'])-->
            <!--@foreach($val2['list'] as $key => $val3)-->
                <li>{$val3['text']}</li>
                <ul>
                <!--@if($val3['list'])-->
                <!--@foreach($val3['list'] as $key => $val4)-->
                    <li>{$val4['text']}</li>
                        <ul>
                        <!--@if($val4['list'])-->
                        <!--@foreach($val4['list'] as $key => $val5)-->
                            <li>{$val5['text']}</li>
                        <!--@end-->
                        <!--@end-->
                        </ul>
                <!--@end-->
                <!--@end-->
                </ul>
            <!--@end-->
            <!--@end-->
            </ul>
        <!--@end-->
        <!--@end-->
    </ul>
</li>
<!--@end-->
</ul>

위의 구조를 보니... 먼가 반복되고 있다는 생각이 들지 않는가?

메뉴를 부를때 맨 처음 $main_menu->list 에서 시작~


$val1['list'] 있으면 배열이 있다는 이야기로 foreach 구문으로 뽑아는 구조이다~


위의 소스는 그냥 단순히 메뉴를 출력만 해주는 기능일 뿐이다~ (sitemap 만들때 쓰면 되겠군요^^)



실제 메뉴는 링크가 있는지 없는지를 구분하고 

링크가 있을경우 선택되었는지 안되었는지를 구분하는 

소스가 추가 되어야 하겠다~




왼쪽 메뉴 출력방법은 아래와 같다. 방법은 위와 비슷하지만...

$menu_1st 변수 선언을 해서... 선택된 메뉴가 있는 쪽만 출력하는 것이다~ OK?


 <h2>{$menu_1st['text']}</h2>
<!--@if($menu_1st)-->
<ul>
    {@ $idx = 1 }
    <!--@foreach($menu_1st['list'] as $key => $val_1st)-->
        <li <!--@if($val_1st['selected'])-->class="on"<!--@end-->><a href="{$val_1st['href']}" <!--@if($val_1st['open_window']=='Y')-->onclick="window.open(this.href);return false;"<!--@end-->>{$val_1st['text']}</a>
            <!--@if($val_1st['list'])-->
                <ul>
                    <!--@foreach($val_1st['list'] as $key => $val_2st)-->
                        <li <!--@if($val_2st['selected'])-->class="on"<!--@end-->><a href="{$val_2st['href']}" <!--@if($val_2st['open_window']=='Y')-->onclick="window.open(this.href);return false;"<!--@end-->>{$val_2st['text']}</a></li>
                    <!--@end-->
                </ul>
            <!--@end-->
        </li>
        {@$idx++}
    <!--@end-->
</ul>
<!--@end-->





 
댓글은 로그인 사용자만 작성 가능합니다. 로그인하기