Title: SDL Lesson 5 - 記事を投稿順に取得する

ここでは、記事(エントリー)を SDL で取得する方法について解説します。



ファイルを作成する



lesson05.properties



ダウンロード --> @1

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

lesson05.properties

テキストエディタで開いて次のように記述し、保存します。これは、「com フォルダの中の、traction フォルダの中の、sdl フォルダの中の、tutorial フォルダの中の、lesson05.sdl というファイルを使う」という意味です。

sdl=com.traction.sdl.tutorial.lesson05


lesson05.sdl



ダウンロード --> @2

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

lesson05.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 05</h1>
    <h2>#{All_Projects}</h2>
    <entries proj="*" type="recent" max="10">
      <div class="entry">
        <h3><a href="__entry.url__">__entry.title__</a></h3>
        <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>
          </ul>
        </div>
      </div>
    </entries>
  </body>
</html>




entries タグ



ジャーナルからエントリー(記事)を取得するには <entries>...</entries> タグを使います。このタグでは次のパラメーターが利用可能で(他にもあります)、パラメーターによって返される内容が変わります。



この lesson05.sdl では、<entries> タグに次のようなパラメーターを指定しています。これは、「ユーザーの読み取り権限のあるすべてのスペースから、最新順 (recent) で、最大 (max) 10 件のエントリーを取得せよ」という意味です。

<entries proj="*" type="recent" max="10"> ... </entries>


上記のように、パラメーターを変更して取得するエントリーを変更できます。例えば、「customer」スペースに投稿された、「FAQ」タグが付いた記事を、投稿順に最大 100 件取得するには次のようにします。

<entries proj="customer" type="cat" cat=":FAQ" max="100">...</entries>


例えば、「foo」スペースに投稿された記事のうち、「done」タグが付いた記事を、(投稿順ではなく)タグが付いた順に取得するには次のようにします。これは、タスクのタグが「to do」から「done」に変更された順に取得したい場合などに使える方法です。

<entries proj="foo" type="addcatpresent" cat=":done"> ... </entries>


type パラメーター



type パラメーターの値には次のようなものを指定できます。



sort パラメーター



取得したエントリーを並び替える場合に、例えば sort="1" のように指定します。



type="activethreads" を指定した場合は、次の並び替えを使用できます。



type="tasks" または type="goals" または type="milestones" を指定した場合は、次の並び替えを使用できます。



entry.* タグ



<entries>...</entries> タグは、エントリーのかたまりをループで返す動作を行うだけなので、記事のタイトルや投稿者名などを取得するには、ループ内に別のタグとして記述する必要があります。

<entries>...</entries> 内で使うエントリー関連のタグには次のようなものがあります。



キャッシュをクリアする



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

動作確認する



TeamPage の検索ボックスに /type lesson05 と入力して Enter キーを押すと、下図のような「Lesson 05」ビューが表示されます。ログインしているユーザー(検索ボックスに /type lesson05 を入力したユーザー)の読み取り権限によって取得できるスペースが異なるため、ビューに表示される記事はユーザーによって変わることがあります。



まとめ



1. 記事を取得するには、パラメーターを付けて <entries>...</entries> タグを使う。

2. 記事のタイトルや投稿者など、記事の具体的な「内容」は、<entries>...</entries> タグの中で <entry.title><entry.author.displayname> のような別のタグを使って取得する。



Attachments:
lesson05.properties
lesson05.sdl
lesson05_properties.png
lesson05_sdl.png
results.png
関連記事
親記事に追加されている (1)
Article: DocSDK147 (permalink)
Date: 2014/11/24; 6時51分10秒 JST

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