Custom Views argument
When we first exposed the player and team data to Views, we used an argument plugin so that we could have a contextual filter on the team ID a player belongs to. To do this, we used the existing numeric
plugin on the actual team_id
field of the players
table. But what if we wanted an argument that works on more levels? For example, we don't exactly know what kind of data we'll receive, but we want to be able to handle nicely both a numeric one (team ID) and a textual one (team name). All in one argument. To achieve this, we can create a simple ViewsArgument
plugin to handle this for us.
First thing, like always, is to define this field. We don't want to mess with the team_id
field onto which we added the earlier argument as that can still be used. Instead, we'll create a new field, this time on the teams
table, which we will simply call team
:
$data['teams']['team'] = [ 'title' => t('Team...