include 태그는 다양한 위치에서 마크 업을 재사용하려거나 특정한 경우에만 포함시키려는 코드를 만들 수 있습니다. 이 경우 <b:includable> 내부에 재사용하려는 코드를 만든 다음 <b:include>로 호출하는 것입니다.

똑같은 내용을 매번 복사-붙여 넣기 하는 것보다 동일한 내용이라면 includable 를 만들어 include 로 불러오는 게 훨씬 낫습니다.

필요에 따라 <b:includable> 태그를 이용하지 않고 <b:include> 에 직접적으로 모든 텍스트, 마크 업, 배열, 객체를 넘길 수도 있습니다.

<b:include> 태그는 조건식에 따라 호출 여부가 달라지며 <b:incudable> 태그를 원하는 수만큼 포함시킬 수 있습니다.

<b:include cond='조건식'
  data='넘길 데이터'
  name='includable id 값'/>

<b:includable
  id='include name 값'
  var='변수 별칭'>
  <!-- HTML 또는 블로거 데이터 -->
</b:includable>

name 과 id 속성은 필수 항목이며 cond, data, var 속성은 선택 사항입니다. <b:includable> 태그를 포함시킬 경우 <b:include> 의 name 이 가리키는 이름이 id 값과 일치하는 <b:includable> 태그를 호출합니다.

var 는 별칭으로 사용할 변수 이름을 지정하고, includable 에서 include 의 data 속성에 지정된 문자열이나 배열, 객체를 받습니다.

<!--//
includable 를 호출합니다. 
//-->
<b:include name='item'/>

<b:includable id='item'>
  <h1>하보니 PHP</h1>
</b:includable>

이제 데이터를 받아오는 방법을 알아보겠습니다. <b:include> 태그의 data 속성에 객체를 넘기면 <b:includable> 태그에서 data:VALUE 로 받을 수 있습니다.

<b:include data='{이름: ["하보니", "PHP", "-"] }' name='mlist'/>
<b:include data='{이름: ["어서 와!", "반가워", "/"] }' name='mlist'/>
<b:include data='{이름: ["사과", "바나나"] }' name='mlist'/>

<b:includable id='mlist'>
<b:loop values='data:이름' var='item'>
<data:item/>&amp;nbsp;
</b:loop>
</b:includable>
<!--//
결과:
하보니 PHP - 어서 와! 반가워 / 사과 바나나
//-->

위 코드에서 &는 XML 블로거 편집기에서 허용하지 않기 때문에 &amp; 로 바꾸어 주었고, 공백은 엔티티로 &nbsp; 가 됩니다. 다음은 변수 별칭(var)을 이용해 데이터를 제어하는 예제입니다.

<b:include data='{이름: ["하보니", "조수"]}' name='mlist'/>
<b:include data='{성별: ["남자", "여자"]}' name='mlist'/>
<b:include data='{이름: ["사과", "바나나"]}' name='mlist'/>

<b:includable id='mlist' var='학교'>
  <b:if cond='data:학교.이름'>
    <b:loop values='data:학교.이름' var='item'>
      <data:item/>&amp;nbsp;
    </b:loop>
  <b:elseif cond='data:학교.성별'/>
    <b:loop values='data:학교.성별' var='item'>
      (<data:item/>)
    </b:loop>
  </b:if>
</b:includable>
<!--//
결과:
하보니 조수 (남자)(여자)사과 바나나
//-->

<b:include> 태그에 조건식을 사용하는 건 매우 쉽습니다. 다음의 경우 메인 페이지이면 출력하라는 의미가 됩니다.

<b:include 
  cond='data:view.isHomepage'
  data='{이름: ["하보니", "조수"]}'
  name='mlist'/>

<b:include> 를 이용하면 동일한 형식의 데이터를 재사용할 수 있고, 많은 코드량을 줄일 수 있다는 장점이 있습니다. 다음은 중첩을 이용한 예입니다.

<ol>
  <b:include data='{ Title: ["Hello", "World"] }' name='list'/>
  <b:include data='{ Gender: ["Female", "Male"] }' name='list'/>
</ol>

<b:includable id='list' var='now'>
  <b:include data='now' name='list2'/>
</b:includable>

<b:includable id='list2'>
  <b:if cond='data:Title'>
    <b:loop values='data:Title' var='item'>
      <li><data:item/></li>
    </b:loop>
  <b:elseif cond='data:Gender'/>
    <ol>
      <b:loop values='data:Gender' var='item'>
        <li><data:item/></li>
      </b:loop>
    </ol>
  </b:if>
</b:includable>

0 댓글