function social_group_field_widget_form_alter in Open Social 8.4
Same name and namespace in other branches
- 8.9 modules/social_features/social_group/social_group.module \social_group_field_widget_form_alter()
- 8 modules/social_features/social_group/social_group.module \social_group_field_widget_form_alter()
- 8.2 modules/social_features/social_group/social_group.module \social_group_field_widget_form_alter()
- 8.3 modules/social_features/social_group/social_group.module \social_group_field_widget_form_alter()
- 8.5 modules/social_features/social_group/social_group.module \social_group_field_widget_form_alter()
- 8.6 modules/social_features/social_group/social_group.module \social_group_field_widget_form_alter()
- 8.7 modules/social_features/social_group/social_group.module \social_group_field_widget_form_alter()
- 8.8 modules/social_features/social_group/social_group.module \social_group_field_widget_form_alter()
- 10.3.x modules/social_features/social_group/social_group.module \social_group_field_widget_form_alter()
- 10.0.x modules/social_features/social_group/social_group.module \social_group_field_widget_form_alter()
- 10.1.x modules/social_features/social_group/social_group.module \social_group_field_widget_form_alter()
- 10.2.x modules/social_features/social_group/social_group.module \social_group_field_widget_form_alter()
Alter the visibility field within groups.
Implements hook_field_widget_form_alter().
File
- modules/
social_features/ social_group/ social_group.module, line 752 - The Social group module.
Code
function social_group_field_widget_form_alter(&$element, FormStateInterface $form_state, $context) {
/** @var \Drupal\Core\Field\FieldDefinitionInterface $field_definition */
$field_definition = $context['items']
->getFieldDefinition();
// Unset the public options on visibility field.
if ($field_definition
->getType() == 'entity_access_field') {
$default_value = $context['items']
->getValue();
if (isset($default_value[0]['value'])) {
$element['#default_value'] = $default_value[0]['value'];
}
else {
$default_visibility = \Drupal::configFactory()
->get('entity_access_by_field.settings')
->get('default_visibility');
$element['#default_value'] = $default_visibility;
}
$entity = $form_state
->getFormObject()
->getEntity();
$current_group = _social_group_get_current_group();
if (!empty($current_group)) {
$group_type = $current_group
->getGroupType();
$group_type_id = $group_type
->id();
if (!$entity
->id()) {
$element['#default_value'] = \Drupal::service('social_group.helper_service')
->getDefaultGroupVisibility($group_type_id);
}
}
else {
$group_type_id = NULL;
// This is not a group so lets disable this visibility option.
$element['group']['#disabled'] = TRUE;
}
$visibility_options = social_group_get_allowed_visibility_options_per_group_type($group_type_id, NULL, $entity);
foreach ($visibility_options as $visibility => $allowed) {
$element[$visibility]['#disabled'] = !$allowed;
}
}
}