Sorting Hat is a Statamic 2 addon that allows you to do more with groups and roles.
Features
- Assign groups/roles to users upon registration.
- Loop through all groups and access their data.
- Access the data for a specified group.
Tags
{{ sorting_hat:field }}
Assign groups and roles to users at registration by using the {{ sorting_hat:field }}
Tag within a
{{ user:register_form }}
Tag pair.
Params
name
Use name
to set whether to assign a group or role with the generated input.
Valid values include role
and group
(plurals work, too).
value
/ values
Pass in a slug or pipe-separated list of slugs corresponding to the group(s) or role(s) to assign to the registering user.
Example
User Group
Role
{{ user:register_form }} {{# Place other fields here. #}} {{ sorting_hat:field name = "roles" value = "student|prefect|head_boy_girl" }} {{ sorting_hat:field name = "groups" value = "slytherin" }} <button>Register</button>{{ /user:register_form }}
User
{{ sorting_hat:user_groups }}
Loop through all groups and access their data with the {{ sorting_hat:user_groups }}
tag pair.
Params
use_context
Set to a truthy value to use the current context.
Vars
{{ title }}
The User Group's title.
{{ slug }}
The User Group's slug.
{{ roles }}
An array of the UUIDs for the roles assigned to the User Group.
{{ users }}
An array of the UUIDs for the users assigned to the User Group.
Example
<ul> {{ sorting_hat:user_groups }} <li> {{ title }} <ul> <li>{{ slug }}</li> <li>{{ roles | ul }}</li> <li>{{ users | ul }}</li> </ul> </li> {{ /sorting_hat:user_groups }}</ul>
{{ sorting_hat:user_group }}
Use this in conditionals to check if a User Group exists or as a tag pair to get the data for the specified User Group.
Params
You must set title
or slug
.
title
The title of the User Group to get data for.
slug
The title of the User Group to get data for.
use_context
Set to a truthy value to use the current context.
Examples
Conditional
{{# If there's no User Group for this URL, redirect to homepage. #}}{{ if !{sorting_hat:user_group slug="{last_segment | underscored}"} }} {{ redirect to="/" }}{{ /if }}
Tag pair
{{ sorting_hat:user_group slug="{last_segment | underscored}" }}<ul> <li> {{ title }} <ul> <li>{{ slug }}</li> <li>{{ roles | ul }}</li> <li>{{ users | ul }}</li> </ul> </li></ul>{{ /sorting_hat:user_group }}