diff --git a/includes/ScaldAtomController.inc b/includes/ScaldAtomController.inc index cd1f898..c7fdf4d 100644 --- a/includes/ScaldAtomController.inc +++ b/includes/ScaldAtomController.inc @@ -37,6 +37,37 @@ class ScaldAtomController extends DrupalDefaultEntityController { } /** + * Returns the default description for a file or image field for an atom type. + */ + public static function getFieldDescription($type, $field_name = 'scald_thumbnail') { + $description = ''; + $field = field_info_field($field_name); + $instance = field_info_instance('scald_atom', $field_name, $type); + if ($field && $instance) { + $description = $instance['description']; + } + return $description; + } + + /** + * Returns the default upload validators for a file or image field for an atom type. + */ + public static function getFieldUploadValidators($type, $field_name = 'scald_thumbnail') { + $upload_validators = array(); + $field = field_info_field($field_name); + $instance = field_info_instance('scald_atom', $field_name, $type); + if ($field && $instance) { + // Add upload file validation. + $upload_validators = file_field_widget_upload_validators($field, $instance); + if ($type === 'image' && (!empty($instance['settings']['max_resolution']) || !empty($instance['settings']['min_resolution']))) { + // Add upload image validation. + $upload_validators['file_validate_image_resolution'] = array($instance['settings']['max_resolution'], $instance['settings']['min_resolution']); + } + } + return $upload_validators; + } + + /** * Add a Scald unified type. * * This function create a new type if it does not already exist. It can be diff --git a/modules/providers/scald_image/scald_image.module b/modules/providers/scald_image/scald_image.module index d3dad57..f104bc1 100644 --- a/modules/providers/scald_image/scald_image.module +++ b/modules/providers/scald_image/scald_image.module @@ -33,13 +33,18 @@ function scald_image_scald_wysiwyg_context_list_alter(&$contexts) { */ function scald_image_scald_add_form(&$form, &$form_state) { $defaults = scald_atom_defaults('image'); + $defaults->description = ScaldAtomController::getFieldDescription('image'); + $defaults->upload_validators = ScaldAtomController::getFieldUploadValidators('image'); $type = scald_type_load('image'); $form['file'] = array( '#type' => $defaults->upload_type, '#title' => check_plain(scald_type_property_translate($type)), '#upload_location' => ScaldAtomController::getThumbnailPath('image'), - '#upload_validators' => array('file_validate_extensions' => array('jpg jpeg png gif')), + '#upload_validators' => $defaults->upload_validators, ); + if ($defaults->upload_type === 'managed_file') { + $form['file']['#description'] = theme('file_upload_help', array('description' => $defaults->description, 'upload_validators' => $defaults->upload_validators)); + } if ($defaults->upload_type == 'plupload') { $form['scald_authors'] = array( '#type' => 'textfield',