function webform_form_alter in Webform 6.x
Same name and namespace in other branches
- 8.5 includes/webform.form_alter.inc \webform_form_alter()
- 5.2 webform.module \webform_form_alter()
- 6.3 webform.module \webform_form_alter()
- 6.2 webform.module \webform_form_alter()
- 7.4 webform.module \webform_form_alter()
- 7.3 webform.module \webform_form_alter()
Implements hook_form_alter().
File
- includes/
webform.form_alter.inc, line 16 - Webform module form alter hooks.
Code
function webform_form_alter(&$form, FormStateInterface $form_state, $form_id) {
if (strpos($form_id, 'webform_') === FALSE || strpos($form_id, 'node_') === 0) {
return;
}
// Get form object.
$form_object = $form_state
->getFormObject();
// Alter the webform submission form.
if (strpos($form_id, 'webform_submission') === 0 && $form_object instanceof WebformSubmissionForm) {
// Make sure webform libraries are always attached to submission form.
_webform_page_attachments($form);
// After build.
$form['#after_build'][] = '_webform_form_webform_submission_form_after_build';
}
// Display editing original language warning.
if (\Drupal::moduleHandler()
->moduleExists('config_translation') && preg_match('/^entity.webform.(?:edit|settings|assets|access|handlers|third_party_settings)_form$/', \Drupal::routeMatch()
->getRouteName())) {
/** @var \Drupal\webform\WebformInterface $webform */
$webform = \Drupal::routeMatch()
->getParameter('webform');
/** @var \Drupal\Core\Language\LanguageManagerInterface $language_manager */
$language_manager = \Drupal::service('language_manager');
// If current webform is translated, load the base (default) webform and apply
// the translation to the elements.
if ($webform
->getLangcode() !== $language_manager
->getCurrentLanguage()
->getId()) {
$original_language = $language_manager
->getLanguage($webform
->getLangcode());
if ($original_language) {
$form['langcode_message'] = [
'#type' => 'webform_message',
'#message_type' => 'warning',
'#message_message' => t('You are editing the original %language language for this webform.', [
'%language' => $original_language
->getName(),
]),
'#message_close' => TRUE,
'#message_storage' => WebformMessage::STORAGE_LOCAL,
'#message_id' => $webform
->id() . '.original_language',
'#weight' => -100,
];
}
}
}
// Add details 'toggle all' to all webforms (except submission forms).
if (!$form_object instanceof WebformSubmissionForm) {
$form['#attributes']['class'][] = 'js-webform-details-toggle';
$form['#attributes']['class'][] = 'webform-details-toggle';
$form['#attached']['library'][] = 'webform/webform.element.details.toggle';
return;
}
}