Title: SDL Lesson 10 - ログイン済みかどうか=ビジターかどうか判別する

TeamPage には、「True か False か」を判定するタイプの関数がいくつか用意されています。この「True か False か」あるいは「Yes か No か」あるいは「白黒はっきりさせようじゃないか」のタイプを「Boolean 型」と呼びます。

Boolean 型の関数には、次のようなものがあります。(ほんの一例です)

  1. journalrequest.user.visitor ... リクエストを行ったアカウントがビジターかどうか
  2. project.active ... 当該スペースの状態がアクティブかどうか
  3. entry.permissions.edit ... 当該記事を編集する権限があるかどうか
  4. pm.features.allowed ... リクエストを行ったアカウントがプロジェクト管理機能(タスク、プロジェクト、マイルストーンの投稿など)の使用を許可されているかどうか


ここでは、上記 1. の journalrequest.user.visitor タグを使って、リクエストを行ったアカウントがビジターかどうかを判定してみます。



ファイルの作成



lesson10.properties



ダウンロード --> @1

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

lesson10.properties を作成

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

sdl=com.traction.sdl.tutorial.lesson10


lesson09.sdl



ダウンロード --> @2

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

lesson10.sdl を作成

テキストエディタで開いて次のように記述し、保存します。(文字エンコードは UTF-8 にしてください)

<!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>あなたはビジター?それともユーザー?</h1>
    <div class="container">
      <journalrequest.user.visitor>
        <p>あなたはビジターですね。</p>
        <p><a href="/rs/login">ここをクリックして</a>ログインしてください。</p>
      <else>
        <p>あなたは __journalrequest.user.displayname__ ですね。</p>
        <ul>
          <li>ユーザー ID: __journalrequest.user.id__</li>
          <li>ユーザー名: __journalrequest.user.name__</li>
          <li>プロフィールページ: <a href="__journalrequest.user.url__">__journalrequest.user.url__</a></li>
        </ul>
      </journalrequest.user.visitor>
    </div>
  </body>
</html>


動作確認



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

TeamPage の検索ボックスに /type lesson10 と入力して Enter キーを押すと、下図のような「あなたはビジター?それともユーザー?」ビューが表示されます。

あなたはビジター?それともユーザー?

解説



journalrequest.user.visitor タグでビジターかどうか判定する



journalrequest.user.visitor タグは、リクエストを行ったユーザーがビジターかどうかを返す、boolean 型の関数で、次のように使います。

<journalrequest.user.visitor>
  <!--- true: ビジターがリクエストを行った場合 -->
<else>
  <!--- false: ユーザーがリクエストを行った場合 -->
</journalrequest.user.visitor>


リクエストを行ったユーザーに関する情報を取得する



journalrequest.user.* タグを使って、リクエストを行ったアカウントに関する情報を取得したり判定したりできます。



ラピッドセレクタを使って URL を指定する



TeamPage の操作コマンドである ラピッド セレクタ を URL で指定し、特定のページへアクセスしたり操作を行ったりできます。

URL でラピッドセレクタを使用するには、「Rapid Selector」の短縮形である「/rs」を指定し、続けて使用するラピッドセレクタを記述します。

例えば、ログイン画面への移動するラピッドセレクタは /login なので、ログイン画面へ移動する URL は /rs/login になります。

<p><a href="/rs/login">ここをクリックするとログイン画面へ移動</a>してください。</p>


また、ロケールを英語に変更するラピッドセレクタは /locale en で、ロケールを日本語に変更するラピッドセレクタは /locale ja です。したがって、次のようなコードを記述することで、ロケールの日英を切り替えるリンクを作成できます。

<div class="locale">
<p>ロケールを切り替えるには下のリンクをクリックしてください。</p>
<p><a href="/rs/locale%20en">英語</a> <a href="/rs/locale%20ja">日本語</a></p>
</div>


まとめ



1. TeamPage には「何かが Yes か No か」(true か false か)を判定するのに使える、boolean 型の関数が用意されている。

2. その一例が journalrequest.user.visitor で、リクエストを行ったユーザーがビジターかどうかを判定できる。

3. アカウントの情報を得るには journalrequest.user.* タグを使う。

4. /rs/RapidSelectorName という URL へアクセスすることでラピッドセレクタを実行できる。



Attachments:
lesson10.properties
lesson10.sdl
image1.png
image2.png
image3.png
関連記事
親記事に追加されている (1)
参照されている (1)
Article: DocSDK267 (permalink)
Date: 2018/10/10; 12時17分50秒 JST

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