Title: SDL Lesson 7 - タグを取得する

ここでは、記事または段落に付けられたタグを取得する方法を学びます。

参考プラグイン: Download861: 記事タイトルの下にタグを表示 プラグイン



ファイルを作成する



lesson07.properties



ダウンロード --> @1

ここでは新しく「lesson07」というビューを作成することにします。まずはビューの定義ファイル lesson07.properties を、プラグインの config/views/all に作成します。

テキストエディタで開いて次のように記述し、保存します。

sdl=com.traction.sdl.tutorial.lesson07


lesson07.properties 作成

lesson07.sdl



ダウンロード --> @2

ビューの定義ファイル lesson07.properties で指定された lesson07.sdl を com/traction/sdl/tutorial に作成します。

lesson07.sdl 作成

テキストエディタで開いて次のように記述し、保存します。

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTF-8">
    <title>SDL Tutorial</title>
    <html.css url="/html/css/sdllessons/styles.css" />
  </head>
  <body>
    <h1>Lesson 07</h1>
    <div class="entries">
      <!-- 記事を取得するループ -->
      <entries proj="*" type="rchron" max="<url.param name='max' default='5' />">
        <!-- 記事 -->
        <div class="entry">
          <h2><a href="__entry.url__">__entry.title__</a></h2>
          <div class="details">
            <ul>
              <li>ID: <a href="__entry.permalink__">__entry.tractionid__</a></li>
              <li>#{Date}: <entry.date dateformat="yyyy/MM/dd hh:mm:ss z" /></li>
              <li>#{Author}: <a href="__entry.author.url__">__entry.author.displayname__</a></li>
              <!-- 記事のタグを取得する -->
              <entry.labels>
                <loop.first>
                  <li>#{Labels} <ul class="tags">
                </loop.first>
                <li>
                  <a title="#{label_link_description}" href="__label.url__">
                    <label.icon>
                      <img src="__label.icon.imageurl__" __label.icon.heighthtml__ __label.icon.widthhtml__ alt="__label.labelname.description__">
                    </label.icon>
                    __label.labelname.shortname__
                  </a>
                </li>
                <loop.last>
                  </ul></li>
                </loop.last>
                <loop.none><!-- No tag --></loop.none>
              </entry.labels>
            </ul>
          </div>
          <div class="body">
            <!-- 段落を取得するループ -->
            <items skip="1">
              <!-- 段落を<p>...</p>タグで囲む -->
              <p>__item.content__</p>
            </items>
          </div>
          <loop.none>
            <p>No entries.</p>
          </loop.none>
        </div>
      </entries>
    </div>
  </body>
</html>


タグを表示するための SDL タグ



entry.labels



<entry.labels>...</entry.labels> は、<entries>...</entries> のループの中で使われ、現在の記事 (entry) に付いているタグをループのかたまりとして返します。

つまり、<entry.labels>...</entry.labels> の中もループになっており、そのループの中に次のような label.* タグを置くことで、現在のタグに関する名前、アイコン、URL などを取得できます。

label.url



タグが付けられた記事の一覧を表示するための URL を返します。

label.labelname.description



タグに「説明」が設定されている場合、その説明のテキストを返します。

タグの説明

label.labelname.shortname



タグの名前のうち、スペース名を除いた部分だけを返します。(「サンプル」スペースの「done」タグは、「done」だけになります。)

label.labelname.name



タグの名前を、スペース名を含めて返します。(「サンプル」スペースの「done」タグは、「サンプル:done」になります。)

タグのアイコンを表示するための SDL タグ



label.icon



タグにアイコンが設定されている場合、<label.icon>...</label.icon> として間に次のようなタグを置くことで、タグのアイコンに関するさまざまな情報を取得できます。



キャッシュをクリアする



sdl ファイルや properties ファイルを設置、編集した後は、必ずサーバーセットアップ > 一般 > サーバー管理 ページの [キャッシュのクリア] をクリックします。

動作確認する



TeamPage の検索ボックスに /type lesson07 と入力して Enter キーを押すと、下図のような「Lesson 07」ビューが表示されます。

この「Lesson 07」ビューは、読み取り権限のあるすべてのスペースから、最新順に、既定で最大5件の記事を表示します。記事や段落にタグが付いている場合、それらのタグを投稿者名の下にリスト表示します。

タグを表示した例

まとめ



1. タグは記事に付けられているものなので、記事のタグを得るための <entry.labels>...</entry.labels> は、<entries>...</entries> のループの中に記述する。

2. <entry.labels>...</entry.labels> もまたループである。

3. タグのアイコンに関する情報は、<entry.labels>...</entry.labels> の中に更に <label.icon>...</label.icon> を置き、その中にアイコンの URL、幅、高さなどを取得する SDL タグを記述する。



Attachments:
lesson07.properties
lesson07.sdl
07_properties.png
07_sdl.png
tags_example1.png
tag_desc.png
関連記事
親記事に追加されている (1)
参照されている (1)
Article: DocSDK208 (permalink)
Date: 2015/02/17; 11時30分54秒 JST

Author Name: TeamPage サポート
Author ID: jpbo