/**
  * Form API callback: Processes a video_upload field element.
  *
  * This method is assigned as a #process callback in formElement() method.
  */
 public static function process($element, FormStateInterface $form_state, $form)
 {
     return parent::process($element, $form_state, $form);
 }
Ejemplo n.º 2
0
 /**
  * Form API callback: Processes a image_image field element.
  *
  * Expands the image_image type to include the alt and title fields.
  *
  * This method is assigned as a #process callback in formElement() method.
  */
 public static function process($element, FormStateInterface $form_state, $form)
 {
     $item = $element['#value'];
     $item['fids'] = $element['fids']['#value'];
     $element['#theme'] = 'image_widget';
     $element['#attached']['css'][] = drupal_get_path('module', 'image') . '/css/image.theme.css';
     // Add the image preview.
     if (!empty($element['#files']) && $element['#preview_image_style']) {
         $file = reset($element['#files']);
         $variables = array('style_name' => $element['#preview_image_style'], 'uri' => $file->getFileUri());
         // Determine image dimensions.
         if (isset($element['#value']['width']) && isset($element['#value']['height'])) {
             $variables['width'] = $element['#value']['width'];
             $variables['height'] = $element['#value']['height'];
         } else {
             $image = \Drupal::service('image.factory')->get($file->getFileUri());
             if ($image->isValid()) {
                 $variables['width'] = $image->getWidth();
                 $variables['height'] = $image->getHeight();
             } else {
                 $variables['width'] = $variables['height'] = NULL;
             }
         }
         $element['preview'] = array('#theme' => 'image_style', '#width' => $variables['width'], '#height' => $variables['height'], '#style_name' => $variables['style_name'], '#uri' => $variables['uri']);
         // Store the dimensions in the form so the file doesn't have to be
         // accessed again. This is important for remote files.
         $element['width'] = array('#type' => 'hidden', '#value' => $variables['width']);
         $element['height'] = array('#type' => 'hidden', '#value' => $variables['height']);
     }
     // Add the additional alt and title fields.
     $element['alt'] = array('#title' => t('Alternate text'), '#type' => 'textfield', '#default_value' => isset($item['alt']) ? $item['alt'] : '', '#description' => t('This text will be used by screen readers, search engines, or when the image cannot be loaded.'), '#maxlength' => 512, '#weight' => -2, '#access' => (bool) $item['fids'] && $element['#alt_field'], '#element_validate' => $element['#alt_field_required'] == 1 ? array(array(get_called_class(), 'validateRequiredFields')) : array());
     $element['title'] = array('#type' => 'textfield', '#title' => t('Title'), '#default_value' => isset($item['title']) ? $item['title'] : '', '#description' => t('The title is used as a tool tip when the user hovers the mouse over the image.'), '#maxlength' => 1024, '#weight' => -1, '#access' => (bool) $item['fids'] && $element['#title_field'], '#element_validate' => $element['#title_field_required'] == 1 ? array(array(get_called_class(), 'validateRequiredFields')) : array());
     return parent::process($element, $form_state, $form);
 }
 /**
  * Form API callback: Processes a file_generic field element.
  *
  * Expands the file_generic type to include the description and display
  * fields.
  *
  * This method is assigned as a #process callback in formElement() method.
  */
 public static function process($element, FormStateInterface $form_state, $form)
 {
     $element = parent::process($element, $form_state, $form);
     $item = $element['#value'];
     $element['data']['#value'] = $item['data'];
     $element['data']['#type'] = 'hidden';
     return $element;
 }