🦔
【Drupal】ViewsのFilterでTokenを使用したいんだが...
導入
普段はDrupal開発を行っていてこんな実装をしたいと思いました。
こんなのタレントパレットでもあるのかよ!という感じですよね。
(そこまで使ったことないので深くは知りません。)
つまり、同じ趣味を持ったユーザーの一覧が見たいってことです。
前提
DrupalのFilterについて
DrupalのViewsでは、使用できるFilterが2つあります。
- 標準のFilter機能
- コンテクスチュアルフィルター機能
本記事では大きく取り上げませんが簡単に違いを説明します。
標準のFilter機能は動的ではない。コンテクスチュアルフィルター機能は動的。
ほとんどこれだけです。
使用例
- 標準のFilter機能
Umekiユーザーが投稿した記事の一覧。 - コンテクスチュアルフィルター機能
ログインユーザー(自分)が投稿した記事の一覧。
他にも機能は山程ありますが、なんとなく良い説明ができた気がします。
実装
まず、前提としてDrupalでは標準でViewsのFilterにTokenを使用することはできません。
そこで、今回 Views Argument Token を導入しました。
これほんとに強いです。
要件
もう一度要件をおさらいします。
同じタグが登録されているユーザーの一覧を作りたい。
つまり、自分と同じ趣味を持ったユーザーを一覧で見たいってことです。
ほとんどこのモジュールのパワーのみで実装できました。
- ユーザーをBaseFieldにして、Viewsを作成。
- ログインユーザーが参照しているタグをTokenで埋め込み、コンテクスチュアルフィルターでフィルタリングする。
なんと、これだけで一覧が完成します。
つまり、同じ趣味を持ったユーザーの一覧が見れるということです。
(くどい)
キャプチャがないので、わかりづらいかもしれませんので気が向いたら更新します。
Discussion