public static function WebformImageSelectImages::processWebformImageSelectImages in Webform 8.5
Same name and namespace in other branches
- 6.x modules/webform_image_select/src/Element/WebformImageSelectImages.php \Drupal\webform_image_select\Element\WebformImageSelectImages::processWebformImageSelectImages()
Process images and build images widget.
File
- modules/
webform_image_select/ src/ Element/ WebformImageSelectImages.php, line 58
Class
- WebformImageSelectImages
- Provides a form element to assist in creation of webform select image images.
Namespace
Drupal\webform_image_select\ElementCode
public static function processWebformImageSelectImages(&$element, FormStateInterface $form_state, &$complete_form) {
$element['#tree'] = TRUE;
// Add validate callback that extracts the associative array of images.
$element['#element_validate'] = [
[
get_called_class(),
'validateWebformImageSelectImages',
],
];
// Wrap this $element in a <div> that handle #states.
WebformElementHelper::fixStatesWrapper($element);
$properties = [
'#label',
'#labels',
'#min_items',
'#empty_items',
'#add_more_items',
];
$element['images'] = array_intersect_key($element, array_combine($properties, $properties)) + [
'#type' => 'webform_multiple',
'#key' => 'value',
'#header' => [
[
'data' => t('Image value'),
'width' => '25%',
],
[
'data' => t('Image text'),
'width' => '25%',
],
[
'data' => t('Image src'),
'width' => '50%',
],
],
'#element' => [
'value' => [
'#type' => 'textfield',
'#title' => t('Image value'),
'#title_display' => 'invisible',
'#placeholder' => t('Enter value…'),
'#error_no_message' => TRUE,
'#attributes' => [
'class' => [
'js-webform-options-sync',
],
],
],
'text' => [
'#type' => 'textfield',
'#title' => t('Image text'),
'#title_display' => 'invisible',
'#placeholder' => t('Enter text…'),
'#error_no_message' => TRUE,
],
'src' => [
'#type' => 'textfield',
'#title' => t('Image src'),
'#title_display' => 'invisible',
'#placeholder' => t('Enter image src…'),
'#error_no_message' => TRUE,
],
],
'#error_no_message' => TRUE,
'#add_more_input_label' => t('more images'),
'#default_value' => isset($element['#default_value']) ? $element['#default_value'] : [],
];
if (function_exists('imce_process_url_element')) {
$src_element =& $element['images']['#element']['src'];
imce_process_url_element($src_element, 'link');
$element['#attached']['library'][] = 'webform/imce.input';
}
elseif (\Drupal::currentUser()
->hasPermission('administer modules')) {
$element['imce_message'] = [
'#type' => 'webform_message',
'#message_type' => 'warning',
'#message_message' => t('Install the <a href=":href">IMCE module</a> to manage and uploaded image files.', [
':href' => 'https://www.drupal.org/project/imce',
]),
'#message_close' => TRUE,
'#message_id' => 'webform_imce_message',
'#message_storage' => WebformMessage::STORAGE_LOCAL,
];
}
$element['#attached']['library'][] = 'webform/webform.element.options.admin';
return $element;
}