Movable Typeの記事をお気に入り順に並べて表示する方法
Movable Typeの記事をお気に入り順に並べて表示する方法を紹介します。
1.はじめに
Movable Typeのコミュニティ機能を利用することで、サインインしているユーザーは記事にお気に入りをすることができます。
下のスクリーンショットは、記事に表示されたお気に入りアイコンをクリックして、記事のお気に入り数を0から1にカウントアップさせたところです。
お気に入り(星のアイコン)をクリック
データベースに登録中
お気に入りに追加されました(もう一度クリックすれば解除されます)
このお気に入り機能を使って、別のページの記事一覧をお気に入り数順に並べ替える方法を紹介します。
ここでは下記のページに紹介されているテンプレートを利用します。
参考:トピックや記事のお気に入り登録機能 | コミュニティ・ソリューション
2.記事一覧をお気に入り数順に並べ替える
サンプルとして次の3つの記事があるとします。
- テスト1
- テスト2
- テスト3
記事のお気に入り数は、テスト1が「0」、テスト2が「2」、テスト3が「1」となっています。
この3つの記事をお気に入り数順に並べ替えて表示するには、次のようなテンプレートを記述します。
<mt:Entries sort_by="score" namespace="community_pack_recommend">
<mt:EntriesHeader>
<ul>
</mt:EntriesHeader>
<li><$mt:EntryTitle$></li>
<mt:EntriesFooter>
</ul>
</mt:EntriesFooter>
</mt:Entries>
このテンプレートを再構築すると「テスト2」「テスト3」「テスト1」の順で出力されます。
3.テンプレート解説
ポイントとなるのは1行目のsort_byモディファイアとnamespaceモディファイアです。
<mt:Entries sort_by="score" namespace="community_pack_recommend">
「sort_by="score"」は記事一覧をスコアでソートすることを示します。
また、sort_byモディファイアに「score」を設定した場合、必ずnamespaceモディファイアの指定が必要です。
コミュニティ機能のお気に入り数を利用する場合、namespaceモディファイアには「community_pack_recommend」を設定します。
この「community_pack_recommend」はコミュニティ機能で提供されている値で、アドオンのMT::App::Communityに次のように定義されています。
use constant NAMESPACE => 'community_pack_recommend';
namespaceは、複数存在する可能性のあるscoreデータを特定するためのキーと思えばいいでしょう。
- Movable Typeのコミュニティ機能で投票できない不具合を解消する
- Movable Typeのコミュニティ機能でCKEditorを利用する
- コミュニティ機能のテンプレートのインクルード関係図
- コミュニティのカスタムフィールドの表示順序を入れ替える
- Movable Typeでコミュニティ機能のプロフィールページにタブを追加する方法
- コミュニティソリューションのプロフィールページに関する Tips
- Movable Type 4 のコミュニティ機能(その2:サインアップユーザーの権限自動付与とロールのカスタマイズ)
- Movable Type 4 のコミュニティ機能(その1:プロフィール画面)