/** @inheritdoc */ public static function displayForm($value, &$settings, $model) { if (!is_array($value)) { $value = array('src' => $value); } $metadata = $model->metadata(); $settings = static::settings($settings); $settings['label'] = isset($settings['label']) ? $settings['label'] : true; $settings['required'] = isset($settings['required']) ? $settings['required'] : false; $settings['errors'] = $model->getErrorsForField($settings['mapping']['fieldName']); $settings['has_errors'] = count($settings['errors']) > 0; $settings['model'] = $metadata->name; $preview_value = isset($value) && isset($value['src']) ? str_replace($settings['path'], '', $value['src']) : ''; // Prepare the crop settings if ($settings['crop'] === true) { $settings['crop'] = array('main' => array('title' => 'Main Crop')); } if (is_array($settings['crop'])) { $crop_options = array(); foreach ($settings['crop'] as $crop_id => $crop_settings) { if (is_string($crop_settings)) { $crop_settings = array('title' => $crop_settings); } $crop_settings['id'] = $crop_id; $crop_options[] = $crop_settings; } $settings['crop'] = $crop_options; } $content = strval(\View::forge('admin/fields/image.twig', array('settings' => $settings, 'value' => $value, 'preview_value' => $preview_value), false)); $attributes = array('class' => 'field-type-file image controls control-group' . ($settings['has_errors'] ? ' error' : ''), 'data-field-name' => $settings['mapping']['fieldName'], 'id' => 'field-' . \CMF::fieldId($settings['mapping']['fieldName'])); if (!(isset($settings['wrap']) && $settings['wrap'] === false)) { $content = html_tag('div', $attributes, $content); } $output = array('content' => $content, 'widget' => false); $output['js_data'] = $settings; return $output; }