movabletype.jp

利用サービス一覧を出力するテンプレートサンプル

利用サービスは登録するだけではなく、各利用サービスのプロフィールページへのリンク一覧を出力できます。このドキュメントでは、登録した各利用サービスのプロフィールページへのリンク一覧するウィジェットを作成してみます。

<mt:OtherProfiles author="Melody">
    <mt:If name="__first__">
<div class="widget-elsewhere widget">
    <h3 class="widget-header"><$mt:Var name="display_name"$> の利用サービス一覧</a></h3>
    <div class="widget-content">
        <ul>
    </mt:If>
            <li class="service-<$mt:OtherProfileVar name="type"$>"><a href="<$mt:OtherProfileVar name="uri" escape="html"$>"><$mt:OtherProfileVar name="label" escape="html"$></a></li>
    <mt:If name="__last__">
        </ul>
    </div>
</div>
    </mt:If>
</mt:OtherProfiles>

サンプル01: ユーザー Melody の利用サービス一覧

利用したテンプレートタグ

仕組み

  • mt:OtherProfiles ブロックタグに author モディファイアを付与し、値は利用サービスの一覧を表示させたいユーザー Melody のユーザー名を設定します。
  • mt:If ブロックタグに __first__ という変数の name モディファイアを付与しています。これは10件のアクションを出力するうち、先頭のものを出力するときにだけ、囲まれた内容を処理するように設定しています。
  • mt:OtherProfileVar ファンクションタグで、利用サービスに関する type という変数を参照し、サービス名を出力しています。
  • mt:OtherProfileVar ファンクションタグで、サービスのプロフィールページ URL を出力するために、uri という変数を参照しています。
  • mt:OtherProfileVar ファンクションタグで、サービスの名前を出力するために、label という変数を参照しています。

author モディファイアの代りに display_name モディファイアを指定し、値に利用させたいユーザーの表示名を設定することもできます。また、複数のユーザーを指定したい時は、カンマ , で区切って設定できます。

<mt:OtherProfiles display_name="メロディ,ネルソン">

複数のユーザーの利用サービスを一覧する

[サンプル01] のテンプレートでは、特定のユーザーを指定し、そのユーザーの利用サービスを一覧しました。全てのユーザーの利用サービスを一覧したいときは、mt:Authors ブロックタグを使います。

<mt:Authors need_entry="0">
    <mt:OtherProfiles>
        <mt:If name="__first__">
    <div class="widget-elsewhere widget">
        <h3 class="widget-header"><$mt:AuthorDisplayName escape="html"$> の利用サービス一覧</a></h3>
        <div class="widget-content">
            <ul>
        </mt:If>
                <li class="service-<$mt:OtherProfileVar name="type"$>"><a href="<$mt:OtherProfileVar name="uri" escape="html"$>"><$mt:OtherProfileVar name="label" escape="html"$></a></li>
        <mt:If name="__last__">
            </ul>
        </div>
    </div>
        </mt:If>
    </mt:OtherProfiles>
</mt:Authors>

サンプル02: 全てのユーザーの利用サービスを一覧

[サンプル02] のテンプレートmt:Authors ブロックタグに付与している need_entry モディファイアは、記事を投稿していないユーザーを含むかどうかを設定しています。値に 0 を設定すると、一件も記事を投稿していないユーザーも対象とします。値に 1 を設定すると、一件も記事を投稿していないユーザーを対象にしません。

<mt:Authors need_entry="1">