질문
info.xml에서 체크박스로 된 구문을 작성합니다.
info.xml
<var name="wdg_view" type="checkbox">
<title xml:lang="ko">출력 여부 설정</title><title xml:lang="en">Widgets View</title>
<options value="notice"><title xml:lang="ko">공지사항</title><title xml:lang="en">Notice</title></options>
<options value="recent"><title xml:lang="ko">최근글</title><title xml:lang="en">Recently Articles</title></options>
<options value="cmt"><title xml:lang="ko">최근댓글</title><title xml:lang="en">Comment</title></options>
<options value="loca"><title xml:lang="ko">현재위치표시기</title><title xml:lang="en">Location</title></options>
<options value="cal"><title xml:lang="ko">달력</title><title xml:lang="en">Calendar</title></options>
<options value="tag"><title xml:lang="ko">태그</title><title xml:lang="en">Tag</title></options>
<options value="clock"><title xml:lang="ko">시계</title><title xml:lang="en">Clock</title></options>
</var>
설정에서 notice를 체크하면(예를 들면 이런 식으로 wdg_view=='notice' 이면) 레이아웃에서 <div id=notice> 가 보이게 하고 싶습니다.
implode 배열을 써서 해당 항목을 출력하는 것까진 되는데 체크박스는 무조건 배열로 나타내는 것 밖에 안되는 지요?
<div id=notice cond={$layout_info->wdg_view=='notice'}> 이렇게 작성했는데 안되더라고요.
체크한 항목만 보여지게 하고 싶은데 어떻게 하나요?
보여져야 하는 레이어는 한 군데 모여있는 것이 아니라 레이아웃의 군데 군데 띄엄띄엄 있습니다.
ps.
<block cond="$layout_info->wdg_view">{@ $var = implode(",",$layout_info->wdg_view)}{$var}</block>
이런 implode는 체크박스를 사용하면 항상 사용하는 코드 앞에 써놔야 하는 건가요?
위 식대로 표현하려면 좀 더 편하게 작성하는 방법이 없나요?
답변
<div id="notice"|cond="in_array('notice', $layout_info->wdg_view)">
이렇게 하면 공지에 체크했을 경우 id생성되고
체크하지 않았을 경우는 id생성 안됩니다......
<div id="notice" cond="in_array('notice', $layout_info->wdg_view)">
이렇게 하면 체크여부에 따라
div자체가 출력/비출력됩니다.......
사용하는 함수는 어떤 목적을 가지고 어떻게 사용하느냐에 따라
사용될 수도 있고 안될 수도 있습니다......
그건 코드를 작성하는 사람의 마음이겠죠.....
예를 들면
간단히 하나의 함수를 사용하면 되는 것을
그 함수의 사용법을 모르거나 존재자체를 모르면
불필요한 코딩을 수십줄 사용하는 경우도 있습니다.....
아는게 힘이죠.........