🦔

【Drupal】ViewsのFilterでTokenを使用したいんだが...

2023/08/04に公開

導入

普段はDrupal開発を行っていてこんな実装をしたいと思いました。

こんなのタレントパレットでもあるのかよ!という感じですよね。
(そこまで使ったことないので深くは知りません。)

つまり、同じ趣味を持ったユーザーの一覧が見たいってことです。

前提

DrupalのFilterについて

DrupalのViewsでは、使用できるFilterが2つあります。

  1. 標準のFilter機能
  2. コンテクスチュアルフィルター機能

本記事では大きく取り上げませんが簡単に違いを説明します。
標準のFilter機能は動的ではない。コンテクスチュアルフィルター機能は動的。
ほとんどこれだけです。

使用例

  1. 標準のFilter機能
    Umekiユーザーが投稿した記事の一覧。
  2. コンテクスチュアルフィルター機能
    ログインユーザー(自分)が投稿した記事の一覧。

他にも機能は山程ありますが、なんとなく良い説明ができた気がします。

実装

まず、前提としてDrupalでは標準でViewsのFilterにTokenを使用することはできません。
そこで、今回 Views Argument Token を導入しました。
https://www.drupal.org/project/views_argument_token
これほんとに強いです。

要件

もう一度要件をおさらいします。
同じタグが登録されているユーザーの一覧を作りたい。

つまり、自分と同じ趣味を持ったユーザーを一覧で見たいってことです。

ほとんどこのモジュールのパワーのみで実装できました。

  1. ユーザーをBaseFieldにして、Viewsを作成。
  2. ログインユーザーが参照しているタグをTokenで埋め込み、コンテクスチュアルフィルターでフィルタリングする。

なんと、これだけで一覧が完成します。
つまり、同じ趣味を持ったユーザーの一覧が見れるということです。
(くどい)

キャプチャがないので、わかりづらいかもしれませんので気が向いたら更新します。

Discussion