function social_group_welcome_message_form_alter in Open Social 10.3.x
Same name and namespace in other branches
- 8.9 modules/social_features/social_group/modules/social_group_welcome_message/social_group_welcome_message.module \social_group_welcome_message_form_alter()
- 8.8 modules/social_features/social_group/modules/social_group_welcome_message/social_group_welcome_message.module \social_group_welcome_message_form_alter()
- 10.0.x modules/social_features/social_group/modules/social_group_welcome_message/social_group_welcome_message.module \social_group_welcome_message_form_alter()
- 10.1.x modules/social_features/social_group/modules/social_group_welcome_message/social_group_welcome_message.module \social_group_welcome_message_form_alter()
- 10.2.x modules/social_features/social_group/modules/social_group_welcome_message/social_group_welcome_message.module \social_group_welcome_message_form_alter()
Implements hook_form_FORM_ID_alter().
File
- modules/
social_features/ social_group/ modules/ social_group_welcome_message/ social_group_welcome_message.module, line 54 - Primary module hooks for social_group_welcome_message module.
Code
function social_group_welcome_message_form_alter(array &$form, FormStateInterface $form_state, $form_id) {
$social_group_types = [
'open_group',
'closed_group',
'public_group',
];
\Drupal::moduleHandler()
->alter('social_group_types', $social_group_types);
$group_forms = [];
foreach ($social_group_types as $social_group_type) {
$group_forms[] = "group_{$social_group_type}_add_form";
$group_forms[] = "group_{$social_group_type}_edit_form";
}
if (in_array($form_id, $group_forms)) {
// Get group owner.
$group = $form_state
->getFormObject()
->getEntity();
if ($group instanceof GroupInterface) {
$owner = $group
->getOwner();
}
else {
$owner = \Drupal::currentUser();
}
// Deny access to welcome message if owner doesn't
// have permission to create it.
if (!$owner
->hasPermission('use private messaging system') || !$owner
->hasPermission('create private messages thread')) {
unset($form['private_message_body']);
unset($form['private_message_send']);
}
elseif (isset($form['private_message_body']) && isset($form['private_message_send'])) {
$form['private_message_body']['#states'] = [
'visible' => [
':input[name="private_message_send[value]"]' => [
'checked' => TRUE,
],
],
];
// Add new element to act as a new fieldgroup.
$form['group_welcome_message'] = [
'#type' => 'details',
'#weight' => 1,
'#title' => new TranslatableMarkup('Welcome message'),
];
// Add both existing fields to this new element.
$form['group_welcome_message'][] = $form['private_message_body'];
$form['group_welcome_message'][] = $form['private_message_send'];
unset($form['private_message_body']);
unset($form['private_message_send']);
// Add the new element to fieldgroups.
$form['#fieldgroups']['group_settings']->children[] = 'group_welcome_message';
$form['#group_children']['group_welcome_message'] = 'group_settings';
}
}
}