function social_group_form_node_form_alter in Open Social 10.1.x
Same name and namespace in other branches
- 8.9 modules/social_features/social_group/social_group.module \social_group_form_node_form_alter()
- 8 modules/social_features/social_group/social_group.module \social_group_form_node_form_alter()
- 8.2 modules/social_features/social_group/social_group.module \social_group_form_node_form_alter()
- 8.3 modules/social_features/social_group/social_group.module \social_group_form_node_form_alter()
- 8.4 modules/social_features/social_group/social_group.module \social_group_form_node_form_alter()
- 8.5 modules/social_features/social_group/social_group.module \social_group_form_node_form_alter()
- 8.6 modules/social_features/social_group/social_group.module \social_group_form_node_form_alter()
- 8.7 modules/social_features/social_group/social_group.module \social_group_form_node_form_alter()
- 8.8 modules/social_features/social_group/social_group.module \social_group_form_node_form_alter()
- 10.3.x modules/social_features/social_group/social_group.module \social_group_form_node_form_alter()
- 10.0.x modules/social_features/social_group/social_group.module \social_group_form_node_form_alter()
- 10.2.x modules/social_features/social_group/social_group.module \social_group_form_node_form_alter()
Implements hook_form_FORM_ID_alter().
Make sure the correct group is saved when group is selected on node form.
File
- modules/
social_features/ social_group/ social_group.module, line 1907 - The Social group module.
Code
function social_group_form_node_form_alter(&$form, FormStateInterface $form_state) {
if (isset($form['#entity_type']) && $form['#entity_type'] === 'node') {
if (isset($form['groups'])) {
// Check if we are adding a translation or it's the default being editted.
/** @var \Drupal\Core\Entity\EntityForm $form_object */
$form_object = $form_state
->getFormObject();
/** @var \Drupal\social_node\Entity\Node $node */
$node = $form_object
->getEntity();
$is_original_language = (bool) $node
->getFieldValue('default_langcode', 'value');
// If it's not the original, we can safely say its a translation being
// added or editted. In that case we don't want users to override the
// group or visibility. We only allow those changes on the default as
// these can not change per language for now.
if (!$is_original_language) {
$form['field_content_visibility']['widget']['#disabled'] = TRUE;
$form['field_content_visibility']['widget']['#description'] = t('Changing visibility is disabled when translating.');
$form['groups']['widget']['#disabled'] = TRUE;
$form['groups']['widget']['#description'] = t('Changing groups is disabled when translating.');
}
$change_fieldgroup_titles = [
'group_topic_visibility',
'group_event_visibility',
];
foreach ($change_fieldgroup_titles as $fieldgroup_title) {
if (isset($form['#fieldgroups'][$fieldgroup_title])) {
$form['#fieldgroups'][$fieldgroup_title]->label = t('Access permissions')
->render();
}
}
// Lets remove the original submit function in favor of this submit.
foreach ($form['actions']['submit']['#submit'] as $submit_key => $submit_function) {
if ($submit_function === 'group_content_entity_submit') {
unset($form['actions']['submit']['#submit'][$submit_key]);
}
}
/** @var \Drupal\node\NodeInterface $node */
$node = $form_state
->getFormObject()
->getEntity();
// Store if the node is new or not.
$form['is_new'] = [
'#type' => 'value',
'#value' => $node
->isNew(),
];
$form['actions']['submit']['#submit'][] = 'social_group_save_group_from_node';
}
}
}