/** * {@inheritdoc} */ public function instanceSettingsForm(array $form, FormStateInterface $form_state) { // Get base form from FileItem::instanceSettingsForm(). $element = parent::instanceSettingsForm($form, $form_state); $settings = $this->getSettings(); // Add maximum and minimum resolution settings. $max_resolution = explode('x', $settings['max_resolution']) + array('', ''); $element['max_resolution'] = array('#type' => 'item', '#title' => t('Maximum image resolution'), '#element_validate' => array(array(get_class($this), 'validateResolution')), '#weight' => 4.1, '#field_prefix' => '<div class="container-inline">', '#field_suffix' => '</div>', '#description' => t('The maximum allowed image size expressed as WIDTHxHEIGHT (e.g. 640x480). Leave blank for no restriction. If a larger image is uploaded, it will be resized to reflect the given width and height. Resizing images on upload will cause the loss of <a href="@url">EXIF data</a> in the image.', array('@url' => 'http://en.wikipedia.org/wiki/Exchangeable_image_file_format'))); $element['max_resolution']['x'] = array('#type' => 'number', '#title' => t('Maximum width'), '#title_display' => 'invisible', '#default_value' => $max_resolution[0], '#min' => 1, '#field_suffix' => ' x '); $element['max_resolution']['y'] = array('#type' => 'number', '#title' => t('Maximum height'), '#title_display' => 'invisible', '#default_value' => $max_resolution[1], '#min' => 1, '#field_suffix' => ' ' . t('pixels')); $min_resolution = explode('x', $settings['min_resolution']) + array('', ''); $element['min_resolution'] = array('#type' => 'item', '#title' => t('Minimum image resolution'), '#element_validate' => array(array(get_class($this), 'validateResolution')), '#weight' => 4.2, '#field_prefix' => '<div class="container-inline">', '#field_suffix' => '</div>', '#description' => t('The minimum allowed image size expressed as WIDTHxHEIGHT (e.g. 640x480). Leave blank for no restriction. If a smaller image is uploaded, it will be rejected.')); $element['min_resolution']['x'] = array('#type' => 'number', '#title' => t('Minimum width'), '#title_display' => 'invisible', '#default_value' => $min_resolution[0], '#min' => 1, '#field_suffix' => ' x '); $element['min_resolution']['y'] = array('#type' => 'number', '#title' => t('Minimum height'), '#title_display' => 'invisible', '#default_value' => $min_resolution[1], '#min' => 1, '#field_suffix' => ' ' . t('pixels')); // Remove the description option. unset($element['description_field']); // Add title and alt configuration options. $element['alt_field'] = array('#type' => 'checkbox', '#title' => t('Enable <em>Alt</em> field'), '#default_value' => $settings['alt_field'], '#description' => t('The alt attribute may be used by search engines, screen readers, and when the image cannot be loaded.'), '#weight' => 9); $element['alt_field_required'] = array('#type' => 'checkbox', '#title' => t('<em>Alt</em> field required'), '#default_value' => $settings['alt_field_required'], '#weight' => 10, '#states' => array('visible' => array(':input[name="instance[settings][alt_field]"]' => array('checked' => TRUE)))); $element['title_field'] = array('#type' => 'checkbox', '#title' => t('Enable <em>Title</em> field'), '#default_value' => $settings['title_field'], '#description' => t('The title attribute is used as a tooltip when the mouse hovers over the image.'), '#weight' => 11); $element['title_field_required'] = array('#type' => 'checkbox', '#title' => t('<em>Title</em> field required'), '#default_value' => $settings['title_field_required'], '#weight' => 12, '#states' => array('visible' => array(':input[name="instance[settings][title_field]"]' => array('checked' => TRUE)))); // Add default_image element. static::defaultImageForm($element, $settings); $element['default_image']['#description'] = t("If no image is uploaded, this image will be shown on display and will override the field's default image."); return $element; }