다음은 사이드바 영역에 서브메뉴를 출력하는 코드입니다.
<ul loop="$main_menu->list=>$key1,$val1" cond="$val1['selected'] && $val1['list']"> <li loop="$val1['list']=>$key2,$val2" class="lnb_item <!--@if($val2['selected'])-->active<!--@end-->"><!--@if(!$val2['list'])--><a href="{$val2['href']}" target="_blank"|cond="$val2['open_window']=='Y'"><!--@end--><span>{$val2['link']}</span><span class="arrow" cond="$val2['list']"></span><!--@if(!$val2['list'])--></a><!--@end--> <ul cond="$val2['list']"> <li loop="$val2['list']=>$key3,$val3" class="active"|cond="$val3['selected']"><a href="{$val3['href']}" target="_blank"|cond="$val3['open_window']=='Y'"><span>{$val3['link']}</span></a></li> </ul> </li> </ul>
문제는, 바로가기를 연결해놨는데, 다른 메뉴에서도 이 바로가기 메뉴들이 상위 메뉴에 연결되어있을 경우
서브메뉴가 뜬다는 겁니다.
예를 들어 설명하자면 아래 페이지를 모바일로 접속했을 경우 '포트폴리오'라는 메뉴가 있습니다.
이 포트폴리오 메뉴는 바로가기인데, 클릭해서 이 메뉴로 진입하면, 포트폴리오에 해당하는 메뉴만 뜨는게 아니라.
첨에 이온디 홈 - 포트폴리오가 연결되어있었기 때문에 '이온디홈'의 서브메뉴가 다 뜬다는 겁니다. ㅠㅠ
https://eond.com/eond
어떻게 해결하면 좋을까요?;
이온디
Lv. 13
# 라이믹스 스킨 제작은 어디? >>>> XE 레이아웃, 라이믹스 스킨제작은 이온디에서 커스터마이징해드립니다.
# 빠른 라이믹스 커뮤니티용 호스팅을 찾고 계신가요? >>>> 이온디호스팅 서비스는 PHP8 & Redis 서버 캐시를 활용하여 라이믹스에 최적화된 호스팅 서비스를 제공해드립니다. (서버세팅시 웹패널, 내도메인메일서비스도 함께 구축해드립니다.)
https://eond.com
# 빠른 라이믹스 커뮤니티용 호스팅을 찾고 계신가요? >>>> 이온디호스팅 서비스는 PHP8 & Redis 서버 캐시를 활용하여 라이믹스에 최적화된 호스팅 서비스를 제공해드립니다. (서버세팅시 웹패널, 내도메인메일서비스도 함께 구축해드립니다.)
https://eond.com
댓글 9
보통 1차메뉴 li에 잡혀있고 그 아래 2차메뉴가 필요하면 2차메뉴의 li 에 반복을 넣잖아요.
ui안에 cond="$val1['selected'] && $val1['list']" 이항목도 있으니, 당연히 해당 메뉴의 선택이 이루어져있는 상황이다 라고 생각하고 전체를 다 노출하는거죠.
반복사례를 보고 해당 반복사례에 따라 어떤 값이 다른지검사하고.. 그다음에 비교문을 작성해보세요.
1차메뉴를 가지면서, 선택됀 메뉴이면서, 쇼켯이 아닌 것을 찾으려고 하는데..
$val1['list'] && $val1['selected'] && $val1['is_shortcut'=='N'] - 아무것도 안뜸
$val1['list'] && $val1['selected'] && !$val1['is_shortcut'=='Y'] - !val1['is_shortcut'=='Y'를 뺀것과 같음. 없는 것과 동일한현상
$val1['list'] && $val1['selected'] && !$val1['is_shortcut'] - 아무것도 안뜸;