레이아웃용 Widget 태그

도구작성을 위한 기본 <b:widget> 태그는 레이아웃용 페이지 요소 태그에 설명되어 있습니다. '페이지 요소' 탭에서만 원하는 항목을 사용하려면 '페이지 요소' 탭에 대해서만 알면 됩니다. 그러나 보다 세밀한 제어를 원할 경우 본 문서에서는 HTML 수정 페이지의 '도구 템플릿 확장' 모드에서 작업할 때 도구에 삽입할 수 있는 항목에 대해서 설명합니다.
우선 해야 할 일은 닫는 태그를 추가하는 것입니다. 그러면
<b:widget [...속성...] />

태그가 다음과 같이 됩니다.
<b:widget [...attributes...]>
</b:widget>
이제 첫 번째 단계는 끝났으므로 해당 태그들 사이에 넣을 수 있는 항목에 대해서 알아보도록 합니다..

Includes

도구 콘텐츠는 "includable" 섹션에 들어 있으며, 다음과 같은 형식을 사용합니다.
<b:includable id='main' var='thiswidget'>
    [원하는 콘텐츠를 여기에 삽입]
</b:includable>
속성은 다음과 같습니다.
  • id: (필수) 문자와 숫자로 이루어진 고유한 식별자입니다.
  • var: (선택) 문자와 숫자로 이루어진 식별자로 해당 섹션의 데이터를 참조하는 데 사용됩니다. 아래 데이터 섹션을 참조하십시오.
각 도구에는 id='main'인 includable 태그가 하나 있어야 합니다. 여기에는 대개 해당 도구에 대해 표시되는 콘텐츠의 대부분 또는 모두가 포함되며, 많은 경우에 includable 태그만 필요합니다.
다른 ID로 includable 태그를 더 많이 만들면 이러한 includable 태그는 자동으로 표시되지 않습니다. id='new'인 includable 태그를 만들면 <b:include name='new' />인 기본 includable 태그에서 참조할 수 있으며 해당 방식에 따라 표시됩니다.
b:include 태그의 속성은 다음과 같습니다.
  • name: (필수) 문자와 숫자로 이루어진 식별자입니다. 동일한 도구에서 기존 b:includable의 ID와 일치해야 합니다.
  • data: (선택) includable 섹션으로 전달할 수 있는 식이나 데이터 조각입니다. Includable 태그의 var 속성 값이 됩니다.
다음은 b:includable와(과) b:include을(를) 사용하는 방법을 보여 주는 간단한 예입니다. 반복 및 데이터는 해당 문서의 뒷부분에 설명되어 있습니다. 여기서 반드시 이해해야 할 점은 '기본' 섹션에 '게시물' 섹션이 포함되는 방식입니다. 'i'라는 게시물과 함께 해당 게시물을 변수 "p"로 참조하는 포함된 섹션을 전달하고 제목을 인쇄합니다.
<b:includable id='main'>
   <b:loop var='i' values='posts'>
      <b:include name='post' data='i'/>
   </b:loop>
</b:includable>

<b:includable id='post' var='p'>
   Title: <data:p.title/>
</b:includable>
여러 위치에서 여러 번 반복하려는 코드 섹션이 있는 경우 포함은 매우 유용합니다. 코드를 한 번만 작성하고b:includable에 삽입한 후 해당 포함을 표시하려는 모든 위치에 b:include를 사용하면 됩니다. 여러 번 반복하지 않는 경우에는 기본 includable 섹션만 사용하고 나머지는 신경쓰지 않아도 됩니다. 기본 includable 태그는 자동으로 포함되므로 <b:include name='main'/>가 필요하지 않습니다.

Data

data: 태그는 실제 콘텐츠를 모두 가져오는 섹션이 되기 때문에 거의 틀림없이 가장 중요한 태그 중 하나일 것입니다. data 태그의 몇 가지 예:

<data:title/>
or
<data:photo.url/>
첫 번째 예는 가장 간단하며, 대부분의 도구에 제목이 있기 때문에 대부분의 도구에서 해당 기능을 수행합니다. 이 태그의 역할은 도구의 제목을 인쇄하는 것입니다. 두 번째 예는 특정 구성요소를 선택할 수 있는 좀 더 복잡한 변수를 나타냅니다. 예를 들어, photo가 프로필 도구 맥락에서 사용될 경우 urlheight 및 width와 같은 구성요소를 포함할 수 있습니다. "." 기호를 사용하면 다른 항목의 URL이 아닌 해당 사진의 URL이 필요함을 나타냅니다.
data: 태그로 사용할 수 있는 데이터의 양은 많지만 어떤 도구에서 작업하고 있는지에 따라 달라집니다. 필요한 데이터를 찾는 데 도움이 되도록 종합적인 목록을 마련했습니다.

Loops

b:loop 태그를 사용하면 콘텐츠의 섹션을 여러 번 반복할 수 있습니다. Loops 태그는 특정 페이지의 게시물 목록에 각 게시물을 인쇄하거나 각 덧글이나 분류를 인쇄하는 데 가장 일반적으로 사용되는 태그입니다. 반복을 사용하기 위한 일반적인 형식은 다음과 같습니다.
<b:loop var='identifier' values='set-of-data'>
   [반복되는 콘텐츠를 여기에 삽입]
</b:loop>
'식별자' 부분은 선택한 모든 이름이 될 수 있으며, 매번 반복될 때마다 목록의 새로운 항목을 나타내는 데 사용됩니다. 일반적인 표기법은 간단하게 "i"로 표시합니다. 값에 지정하는 데이터 집합은 데이터 태그 문서에 항목목록으로 설명되어 있는 모든 데이터가 될 수 있습니다. 예를 들어, 블로그 게시물 도구에서 posts는 목록입니다. 다음과 같은 코드는 각 게시물마다 반복되며 양쪽에 헤더 태그를 사용하여 각 게시물에 대한 제목을 인쇄합니다.
<b:loop var='i' values='data:posts'>
   <h2><data:i.title/></h2>
</b:loop>
"i"가 어떻게 각 게시물의 값을 번갈아 취해서 각 게시물의 제목을 표시하는지 살펴보십시오..

If / Else

b:if 및 b:else 태그를 사용하여 콘텐츠를 표시할 수 있는 위치도 있고 그렇지 않은 위치도 있습니다. 일반적인 형식은 다음과 같습니다.
<b:if cond='condition'>
   [조건이 참인 경우 표시할 콘텐츠]
<b:else/>
   [조건이 거짓인 경우 표시할 콘텐츠]
</b:if>
b:else 태그는 선택 항목입니다. Else 태그가 없으면 결과가 b:if 섹션에 나열되는 콘텐츠로 나타나거나 아무 것도 나타나지 않습니다. 그러나 각각의 경우에 모두 닫는 </b:if>가 필요합니다.
"조건"에는 참이나 거짓으로 평가될 수 있는 모든 항목을 넣을 수 있습니다. 일부 데이터 태그는 게시물의allowComments와 같이 그 자체만으로 간단한 참/거짓 값입니다. 다른 데이터를 사용하여 특정 값과 비교하여 참인지 거짓인지 여부를 알 수 있습니다. 다음은 몇 가지 예입니다.
  • <b:if cond='data:post.showBacklinks'> 현재 게시물이 뒤로 링크를 표시하도록 설정되어 있는 경우 참입니다.
  • <b:if cond='data:blog.pageType == "item"'> 현재 게시물이 항목 페이지(게시물 페이지)인 경우 참입니다.
  • <b:if cond='data:displayname != "Fred"'> True if this is not Fred의 표시이름이 아닌 경우 참입니다.
  • <b:if cond='data:post.numComments > 1'> 현재 게시물에 덧글이 두 개 이상 있는 경우 참입니다.