function social_group_welcome_message_form_alter in Open Social 8.9
Same name and namespace in other branches
- 8.8 modules/social_features/social_group/modules/social_group_welcome_message/social_group_welcome_message.module \social_group_welcome_message_form_alter()
- 10.3.x 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 53 - 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) && isset($form['private_message_body']) && isset($form['private_message_send'])) {
// 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 don't have permission to create it.
if (!$owner
->hasPermission('use private messaging system') || !$owner
->hasPermission('create private messages thread')) {
foreach ($form['#fieldgroups']['group_welcome_message']->children as $form_element_id) {
$form[$form_element_id]['#access'] = FALSE;
}
}
else {
$form['private_message_body']['#states'] = [
'visible' => [
':input[name="private_message_send[value]"]' => [
'checked' => TRUE,
],
],
];
}
}
}