function opigno_messaging_form_private_message_add_form_alter in Opigno messaging 8
Same name and namespace in other branches
- 3.x opigno_messaging.module \opigno_messaging_form_private_message_add_form_alter()
Implements hook_form_alter().
File
- ./
opigno_messaging.module, line 52 - Contains opigno_messaging.module.
Code
function opigno_messaging_form_private_message_add_form_alter(&$form, FormStateInterface $form_state, $form_id) {
$thread_members = $form_state
->get('thread_members');
// Only add the select if we are in the context
// of a new message (not in a tread context).
if (!isset($thread_members)) {
$current_user = \Drupal::currentUser();
$uid = $current_user
->id();
$current_user = User::load($uid);
// Add the subject.
$form['subject'] = [
'#type' => 'textfield',
'#title' => t('Subject'),
'#placeholder' => t('Enter a subject'),
'#default_value' => "",
'#size' => 60,
'#maxlength' => 128,
'#required' => FALSE,
'#weight' => -3,
];
// Hide the default messaging to field.
$form['members']['#type'] = 'hidden';
$plugin_service = \Drupal::service('opigno_learning_path.members.manager');
$plugin_instance = $plugin_service
->createInstance('recipients_plugin');
$plugin_instance
->getMembersForm($form, $form_state, $current_user);
unset($form['message']['widget']['#title']);
unset($form['message']['widget'][0]['#title']);
$form['message']['widget']['#placeholder'] = t('your message');
$form['actions']['submit']['#value'] = t('Send');
// Validation function so we can move the values of the users_to_send
// to the default messaging module field.
$form['#validate'][] = 'opigno_messaging_private_message_add_form_validate_replace_to';
}
// Remove default & set custom submit handler.
$form['#submit'] = [
'opigno_messaging_private_message_add_form_submit',
];
$form['actions']['submit']['#submit'] = [
'opigno_messaging_private_message_add_form_submit',
];
$form['actions']['submit']['#value'] = t('Send');
$route_name = \Drupal::routeMatch()
->getRouteName();
if ($route_name == 'private_message.private_message_page') {
// Save current thread id in form storage.
// For "private_messages" page (not PM thread page).
$user = \Drupal::currentUser();
$db_connection = \Drupal::service('database');
$pm_mapper = new PrivateMessageMapper($db_connection, $user);
$user = User::load($user
->id());
$thread_id = $pm_mapper
->getFirstThreadIdForUser($user);
$form_state
->set('thread_id', $thread_id);
}
}