function _webform_entity_print_form in Webform 6.x
Same name and namespace in other branches
- 8.5 modules/webform_entity_print/webform_entity_print.webform.inc \_webform_entity_print_form()
Build webform entity print form.
Parameters
array $element: The entity print element.
array $template_settings: Template settings.
array $export_type_settings: Export types settings.
array $default_template_settings: Default template settings.
array $default_export_type_settings: Default export types settings.
2 calls to _webform_entity_print_form()
- webform_entity_print_webform_admin_third_party_settings_form_alter in modules/
webform_entity_print/ webform_entity_print.webform.inc - Implements hook_webform_admin_third_party_settings_form_alter().
- webform_entity_print_webform_third_party_settings_form_alter in modules/
webform_entity_print/ webform_entity_print.webform.inc - Implements hook_webform_third_party_settings_form_alter().
File
- modules/
webform_entity_print/ webform_entity_print.webform.inc, line 25 - Integrates third party settings for the Webform Entity Print module.
Code
function _webform_entity_print_form(array &$element, array $template_settings, array $export_type_settings, array $default_template_settings = [], array $default_export_type_settings = []) {
$element['webform_entity_print'] = [
'#type' => 'details',
'#title' => t('Entity print'),
'#description' => t('Allows webform submissions to be converted to a PDF'),
];
// Video.
/** @var \Drupal\webform\WebformHelpManagerInterface $help_manager */
$help_manager = \Drupal::service('webform.help_manager');
$element['webform_entity_print']['help'] = [
'#theme' => 'webform_help',
'#info' => $help_manager
->getHelp('webform_entity_print'),
];
// Template.
$template_settings += [
'header' => '',
'footer' => '',
'css' => '',
];
$element['webform_entity_print']['template'] = [
'#type' => 'details',
'#title' => t('Template'),
];
$element['webform_entity_print']['template']['header'] = [
'#type' => 'webform_html_editor',
'#title' => t('Header'),
'#description' => $default_template_settings ? t('Enter custom header to be displayed above printed webform submissions.') : t('Enter custom header to be displayed above all printed webform submissions.'),
'#default_value' => $template_settings['header'],
];
$element['webform_entity_print']['template']['footer'] = [
'#type' => 'webform_html_editor',
'#title' => t('Footer'),
'#default_value' => $template_settings['footer'],
'#description' => $default_template_settings ? t('Enter custom footer to be displayed below printed webform submissions.') : t('Enter custom footer to be displayed below all printed webform submissions.'),
];
$element['webform_entity_print']['template']['css'] = [
'#type' => 'webform_codemirror',
'#mode' => 'css',
'#title' => t('CSS'),
'#default_value' => $template_settings['css'],
'#description' => $default_template_settings ? t('Enter custom print CSS to be attached to printed webform submissions.') : t('Enter custom print CSS to be attached to all printed webform submissions.'),
];
/** @var \Drupal\webform\WebformTokenManagerInterface $token_manager */
$token_manager = \Drupal::service('webform.token_manager');
$element['webform_entity_print']['template']['token_tree_link'] = $token_manager
->buildTreeElement();
// Export types.
$export_types = _webform_entity_print_get_export_types();
foreach ($export_types as $export_type => $definition) {
$t_args = [
'@label' => $definition['label'],
];
$defaults = [
'enabled' => FALSE,
'link_text' => '',
'link_attributes' => [],
];
$default_settings = isset($default_export_type_settings[$export_type]) ? $default_export_type_settings[$export_type] : $defaults;
$settings = isset($export_type_settings[$export_type]) ? $export_type_settings[$export_type] : [];
$settings += $defaults;
$states_trigger = '.js-webform_entity_print-' . $export_type;
$element['webform_entity_print']['export_types'][$export_type] = [
'#type' => 'details',
'#title' => t('@label link', $t_args),
];
$element['webform_entity_print']['export_types'][$export_type]['enabled'] = [
'#type' => 'checkbox',
'#title' => t('Enable @label link', $t_args),
'#return_value' => TRUE,
'#default_value' => $default_settings['enabled'] ? TRUE : $settings['enabled'],
'#disabled' => $default_settings['enabled'],
'#attributes' => [
'class' => [
'js-webform_entity_print-' . $export_type,
],
],
];
$element['webform_entity_print']['export_types'][$export_type]['link_text'] = [
'#type' => 'textfield',
'#title' => t('@label link text', $t_args),
'#description' => $default_settings['link_text'] ? t('Defaults to: %value', [
'%value' => $default_settings['link_text'],
]) : '',
'#default_value' => $settings['link_text'],
'#states' => [
'visible' => [
$states_trigger => [
'checked' => TRUE,
],
],
],
];
if (empty($default_settings['link_text'])) {
$element['webform_entity_print']['export_types'][$export_type]['link_text']['#states']['required'] = [
$states_trigger => [
'checked' => TRUE,
],
];
}
$element['webform_entity_print']['export_types'][$export_type]['link_attributes'] = [
'#type' => 'webform_element_attributes',
'#title' => t('@label link attributes', $t_args),
'#default_value' => $settings['link_attributes'],
'#states' => [
'visible' => [
$states_trigger => [
'checked' => TRUE,
],
],
],
];
}
}