function webform_group_token_info in Webform 8.5
Same name and namespace in other branches
- 6.x modules/webform_group/webform_group.tokens.inc \webform_group_token_info()
Implements hook_token_info().
File
- modules/
webform_group/ webform_group.tokens.inc, line 13 - Builds placeholder replacement tokens for webform group roles.
Code
function webform_group_token_info() {
$types = [];
$types['webform_group'] = [
'name' => t('Webform group'),
'description' => t("Tokens related to webform group integration access. <em>This token is only available to a Webform email handler's 'To', 'CC', and 'BCC' email recipents.</em>"),
'needs-data' => 'webform_group',
];
$tokens = [];
/** @var \Drupal\webform_group\WebformGroupManagerInterface $webform_group_manager */
$webform_group_manager = \Drupal::service('webform_group.manager');
// Role tokens.
$webform_group = [];
/** @var \Drupal\group\Entity\GroupTypeInterface[] $group_types */
$group_types = \Drupal::entityTypeManager()
->getStorage('group_type')
->loadMultiple();
$group_role_names = [];
foreach ($group_types as $group_type_id => $group_type) {
$group_roles = $group_type
->getRoles();
foreach ($group_roles as $group_role_id => $group_role) {
if ($group_role
->isInternal() && $group_role_id !== "{$group_type_id}-member" || !$group_role
->inPermissionsUI() || $group_role
->isAnonymous()) {
continue;
}
if ($webform_group_manager
->isGroupRoleTokenEnabled($group_role_id)) {
$t_args = [
'@group_type' => $group_type
->label(),
'@group_role' => $group_role
->label(),
'%group_type' => $group_type
->label(),
'%group_role' => $group_role
->label(),
];
$webform_group["role:{$group_role_id}"] = [
'name' => t('@group_type: @group_role (Email addresses) for current group', $t_args),
'description' => t('The email addresses of <strong>users</strong> assigned to the %group_type:%group_role group role for the current webform node.', $t_args),
];
}
$group_role_name = preg_replace("/^{$group_type_id}-/", "", $group_role_id);
if ($webform_group_manager
->isGroupRoleTokenEnabled($group_role_name)) {
$group_role_names[$group_role_name] = $group_role
->label();
}
}
}
foreach ($group_role_names as $group_role_name => $group_role_label) {
$t_args = [
'@group_role' => $group_role_label,
'%group_role' => $group_role_label,
];
$webform_group["role:{$group_role_name}"] = [
'name' => t('Group role: @group_role (Email addresses) for current group', $t_args),
'description' => t('The email addresses of <strong>users</strong> assigned to the %group_role group role (all groups) for the current webform node.', $t_args),
];
}
// Owner (Chained tokens) token.
if ($webform_group_manager
->isGroupOwnerTokenEnable()) {
$webform_group['owner'] = [
'name' => t('Group owner'),
'description' => t('The user that owns the group for current webform node.'),
'type' => 'user',
];
}
$tokens['webform_group'] = $webform_group;
/****************************************************************************/
return [
'types' => $types,
'tokens' => $tokens,
];
}