b:if 제어문
구글 블로그의 if 문은 <b:if> ... <b:elseif/> ... <b:else/> ... </b:if>와 같은 방법으로 제어할 수 있습니다.
<b:if cond='조건식 1'>
<!-- 조건이 참이면 실행 -->
<b:elseif cond='조건식 2'/>
<!-- 첫 번째 조건이 거짓이면 실행 -->
<b:else/>
<!-- 모든 조건이 거짓이면 실행 -->
</b:if>
<b:if>에는 하나의 속성만 사용할 수 있으며 cond 속성은 불리언(boolean)으로 지정합니다.
예를 들어 다음과 같은 형식으로 사용될 수 있습니다.
<b:if cond='data:view.isHomepage'>
<!-- 메인 페이지이면 실행 -->
</b:if>
예제
예제 1
다음은 두 조건 모두 모바일로 접속한 사용자이면 실행하는 코드입니다.
<b:if cond='data:blog.isMobile == "true"'>
<!-- 모바일로 접속하면 실행 -->
</b:if>
<b:if cond='data:blog.isMobile'>
<!-- 모바일로 접속하면 실행 -->
</b:if>
다음과 같이 중첩도 사용 가능합니다.
<b:if cond='data:blog.isHomepage'>
<b:if cond='data:blog.isMobile'>
<!-- 메인 페이지이고, 모바일로 접속하면 실행 -->
</b:if>
</b:if>
또한 논리 연산자와 결합하여 사용 가능합니다.
다음은 모바일 접속이 아니지만 메인 페이지이면 실행하라는 뜻이 됩니다. !는 Not과 같고, ==는 and와 같습니다.
<b:if cond='!data:view.isMobile and data:view.isHomepage'>
<!-- 조건이 참이면 실행 -->
</b:if>
<b:if cond='data:view.isMobile != and data:view.isHomepage == "true"'>
<!-- 조건이 참이면 실행 -->
</b:if>
참고: 조건식에 사용된 따옴표는 작은 따옴표와 큰 따옴표 모두 사용 가능합니다.
예제 2
<b:if>에는 배열을 사용할 수 있습니다.
'조건식 == 값'과 같은 형식보다는 배열을 사용하는 것이 보기에도 좋고 효율적입니다.
<b:if cond='조건식 in [1, 2, 3, 4, 5, 6, 7]'>
...
</b:if>
<b:if cond='data:view.search.label in ["HTML", "CSS", "JS"]'>
<!-- 라벨이 HTML, CSS, JS 중 하나라도 해당되면 실행 -->
<b:elseif cond='data:view.search.label not in ["SQL", "PHP"]'/>
<!-- 라벨이 SQL, PHP 가 아니면 실행 -->
<b:else/>
<!-- 모든 조건에 거짓이면 실행 -->
</b:if>
또는 중첩을 사용해도 좋습니다.
<b:if cond='조건식 == 1' >
<b:if cond='조건식 == 2' >
<b:if cond='조건식 == 3' >
<b:if cond='조건식 == 4' >
...
</b:if>
</b:if>
</b:if>
</b:if>
예제 3
<b:if>에는 삼항 연산자도 사용할 수 있습니다. 삼항 연산자는 <조건식> ? <true> : <false> 형식으로 주어진 조건식이 참이면 true를 거짓이면 false를 반환하는 형식입니다.
<div>
<b:class expr:name='data:view.isHomepage ? "home" : "blogger"'/>
<h1>제목</h1>
</div>
<!--
결과:
<div class='home'>
<h1>제목</h1>
</div>
-->
현재 페이지가 메인 페이지이면 class 속성에 home을 추가하고, 메인 페이지가 아니면 blogger를 추가합니다.