function multiple_registration_preprocess_user in Multiple Registration 8.2
Same name and namespace in other branches
- 8 multiple_registration.module \multiple_registration_preprocess_user()
- 3.x multiple_registration.module \multiple_registration_preprocess_user()
Disabling of displaying fields assigned for special user roles at user page.
Parameters
array $variables: Provides theme hook variables array.
File
- ./
multiple_registration.module, line 132 - Contains multiple_registration.module.
Code
function multiple_registration_preprocess_user(array &$variables) {
$user = $variables['elements']['#user'];
/* @var \Drupal\user\Entity\User $user */
$user_roles = $user
->getRoles();
$fields = $user
->getFields();
foreach ($fields as $field_name => $field_data) {
/* @var Drupal\Core\Field\FieldItemList $field_data */
$field_definition = $field_data
->getFieldDefinition();
if (!property_exists($field_definition, 'third_party_settings')) {
continue;
}
/* @var Drupal\field\Entity\FieldConfig $field_definition */
$third_party_settings = $field_definition
->get('third_party_settings');
if (!array_key_exists('multiple_registration', $third_party_settings)) {
continue;
}
$allowed_roles = $third_party_settings['multiple_registration']['user_additional_register_form'];
$allowed_roles_unique_values = array_values(array_unique($allowed_roles));
if ($allowed_roles_unique_values[0] === 0 && count($allowed_roles_unique_values) === 1) {
continue;
}
$found_roles = array_intersect($user_roles, $allowed_roles);
if (!empty($found_roles) || $field_name === 'user_picture') {
continue;
}
unset($variables['elements'][$field_name], $variables['content'][$field_name]);
}
}