Q&A

20160220.png

 

 

제 사이트 기본 메뉴입니다.

특이한 점은 보통 사이트와 다르게 하나의 사이트맵이 아니라 여러 개의 사이트맵에서 기본 메뉴를 가져옵니다.

보통의 레이아웃들이 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>

이 거를 포함해서 위 소스를 각각의 경우로 모두 다 작성해줍니다.

소스도 길어지고 번거롭게 되죠..

이걸 어떻게 작성해야 반복해서 적지 않고 하는지 몰라서 며칠 삽질하다 그냥 다 적어주고 말았습니다 ㅠㅠ

 

질문 요약.

한 레이아웃의 GNB격인 메뉴의 사이트맵이 여러 개일 경우,

사이드바에 출력하는 서브메뉴 소스는 어떻게 적어줘야 깔끔하게 작성될까요? ;;

이온디 Lv. 13
# 라이믹스 스킨 제작은 어디? >>>> XE 레이아웃, 라이믹스 스킨제작은 이온디에서 커스터마이징해드립니다.
# 빠른 라이믹스 커뮤니티용 호스팅을 찾고 계신가요? >>>> 이온디호스팅 서비스는 PHP8 & Redis 서버 캐시를 활용하여 라이믹스에 최적화된 호스팅 서비스를 제공해드립니다. (서버세팅시 웹패널, 내도메인메일서비스도 함께 구축해드립니다.)
https://eond.com

댓글 2

  • 저도 잘은 모르지만, 같은 구문이 똑같이 반복되는거라면
    반복문을 쓰시면 되지 않을까요?

    {@ $i = 0; }
    <!--@while(i < 5)-->
    <h1 loop="$snb_$i->list=>$key1,$val1" style="color:red"|cond="$val1['selected']" cond="$val1['selected']">{$val1['link']}
    </h1>

    <ul loop="$snb_$i->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>
    {@$i++;}
    <!--@end-->
  • @파파즈
    뭔가 맞는거 같은걸요? ^^; 해볼게요!; 감사합니다.