묻고답하기
li 항목의 갯수를 셀 수 있나요?
2013.08.02 19:51
메뉴에서 5개 이상인 li 항목은 안 보이게 설정하려고 합니다.
아래는 제가 주먹구구식으로 짜본 건데 잘 안되네요.ㅠㅠ
머가 잘못된 건지 좀 봐주세요..
<nav class="snb">
<ul>
<block loop="$site_menu->list=>$key1,$val1" cond="$val1['text']">
{@$_idx=0}
<!--@foreach($item as $key => $item)-->
{$item = 3;}
<li class="<!--@if($val1['selected'])--> active<!--@end-->" style="<!--@if($_idx >=2)-->display:none;<!--@end-->"><a href="{$val1['href']}" target="_blank"|cond="$val1['open_window']=='Y'">{$val1['link']}<!--@if($val1['list'])--><!--@end--></a> </li><!--@end-->{@$_idx++}</block></ul></nav><!--e:사이트바-->
제가 할 줄을 몰라서-_-; 이렇게 엉망으로 코드를 짜봤는데 혹시 php 갯수 세는거 할 줄 아는 분 계신가요?
li 항목 갯수를 세아려서 5개 이상인 건 안 보이게 하려고 합니다..
댓글 2
-
쿡래빗
2013.08.02 20:10
-
이온디
2013.08.02 20:22
안녕하세요 쿡래빗님 ^^ 답변 감사합니다. 이 방식은 항목마다 스타일시트로 지정해줘야 하는 문제점이 있어서요. 간단하게 설명드리자면 최근게시물 위젯에서 사용자가 지정하면 해당글 갯수만큼만 보이는 방식대로 하려고 하거든요. 메뉴도 그렇게 원하는 갯수만 지정하면 해당 갯수 뒤부터는 보이지 않게 하려구요. 최근 게시물 위젯 참고해서 하는데 잘 모르겠네요 ㅠㅠ; -
이온디
2013.08.02 20:23
이 말을 빠뜨렸네요. 예를 들어 5개지 이 숫자는 사용자 설정에서 변동 가능합니다. ^^; -
이온디
2013.08.02 20:25
그래서 해당 숫자를 지정하는 코드가 필수입니다. ^^; -
sejin7940
2013.08.02 20:49
<!--@foreach($item as $key => $item)-->
{$item = 3;}
문구가 좀 잘못 된듯해요
$item 이라는게 계속 겹쳐서.. 저러면 배열이 사라져버리죠
<!--@foreach($item as $key2 => $val2)-->
{@$item_limit = 3;}
뒤쪽 style="<!--@if($_idx >=2)-->display:none;<!--@end-->" 부분은
style="<!--@if($_idx >=$item_limit)-->display:none;<!--@end-->" 이런식으로 수정하셔야할듯하고
암튼, $item 이 저렇게 겹치시면 안 됩니다. 3가지가 다 분리되셔야할듯합니다.
-
이온디
2013.08.02 21:04
안녕하세요 세진님, 하나 여쭤봐도 될까요 ^^; 위 코드에서 {@$i=0}<block loop... 과 {@$i++}</block>에서 {@$i=0} 과 {@$i++} 를 넣는 위치가 꼭 저 위치에 넣어야 하는 이유가 뭔가요?;; -
이온디
2013.08.02 21:06
<nav class="snb"> <ul> {@$i=0}<block loop="$site_menu->list=>$key1,$val1" cond="$val1['text']"> <li class="<!--@if($val1['selected'])--> active<!--@end-->" style="display:none"|cond="$i>=10"><a href="{$val1['href']}" target="_blank"|cond="$val1['open_window']=='Y'">{$val1['link']}<!--@if($val1['list'])--><!--@end--></a> </li>{@$i++}</block></ul></nav><!--e:사이트바-->
여러가지 방식이 있겠찌만....손쉽게..
<li class=" li_{$idx} ">와 같은방식으로
각각의 li 클래스를 다르게 만들어서..
으로 미리 정의하고..바로뒤에
정의하면 되지 않을까..