? imagefield-402014.patch Index: imagefield.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/imagefield/imagefield.module,v retrieving revision 1.103 diff -u -p -r1.103 imagefield.module --- imagefield.module 28 Aug 2009 03:53:15 -0000 1.103 +++ imagefield.module 29 Mar 2010 20:50:46 -0000 @@ -164,7 +164,7 @@ function imagefield_widget(&$form, &$for // Add default values to items. // TODO: use CCK's default value callback. if (empty($items[$delta])) { - $items[$delta] = array('alt' => '', 'title' => ''); + $items[$delta] = array('alt' => '', 'title' => '', 'use_preset' => FALSE, 'preset_name' => ''); } // Start with the FileField widget as a basic start. @@ -173,6 +173,9 @@ function imagefield_widget(&$form, &$for // Add ImageField specific validators. $element['#upload_validators'] = array_merge($element['#upload_validators'], imagefield_widget_upload_validators($field)); + + $element['#default_value']['data']['use_preset'] = $field['widget']['use_preset']; + $element['#default_value']['data']['preset_name'] = $field['widget']['preset_name']; return $element; } @@ -327,12 +330,17 @@ function theme_imagefield_widget_item($e return theme('filefield_widget_item', $element); } -function theme_imagefield_admin_thumbnail($item = NULL) { - if (is_null($item) || empty($item['filepath'])) { - return ''; - } - $thumb_path = imagefield_file_admin_thumb_path($item); - return ''; +function theme_imagefield_admin_thumbnail($item = NULL) { + if (module_exists('imagecache') && isset($item['data']['use_preset']) && isset($item['data']['preset_name'])) { + return theme('imagecache', $item['data']['preset_name'], $item['filepath']); + } else + { + if (is_null($item) || empty($item['filepath'])) { + return ''; + } + $thumb_path = imagefield_file_admin_thumb_path($item); + return ''; + } } /** * @} End defgroup "Theme Callbacks". Index: imagefield_widget.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/imagefield/imagefield_widget.inc,v retrieving revision 1.40 diff -u -p -r1.40 imagefield_widget.inc --- imagefield_widget.inc 18 Sep 2009 15:30:18 -0000 1.40 +++ imagefield_widget.inc 29 Mar 2010 20:51:46 -0000 @@ -123,6 +123,34 @@ function imagefield_widget_settings_form '#type' => 'value', '#value' => $widget['default_image'], ); + + // imagecache module presets + if (module_exists('imagecache')) { + $image_sizes = imagecache_presets(); + foreach ($image_sizes as $key => $size) { + $preview_presets_list[$size['presetname']] = t('Image size') .': ' .$size['presetname']; + } + $form['imagecache_settings'] = array( + '#type' => 'fieldset', + '#title' => t('Imagecache settings'), + '#collapsible' => true, + '#collapsed' => true, + '#weight' => 8, + ); + $form['imagecache_settings']['use_preset'] = array( + '#type' => 'checkbox', + '#title' => t('Use Imagecache Preset'), + '#description' => t('Use imagecache for preview.'), + '#default_value' => !empty($widget['use_preset']) ? $widget['use_preset'] : '', + ); + $form['imagecache_settings']['preset_name'] = array( + '#type' => 'select', + '#title' => t('Imagecache Preset'), + '#description' => t('This imagecache preset will be used to creeate the thumbnail.'), + '#options' => $preview_presets_list, // @str_replace: returns correct node type + '#default_value' => !empty($widget['preset_name']) ? $widget['preset_name'] : '', + ); + } return $form; } @@ -189,7 +217,12 @@ function imagefield_widget_settings_vali */ function imagefield_widget_settings_save($widget) { $filefield_settings = module_invoke('filefield', 'widget_settings', 'save', $widget); - return array_merge($filefield_settings, array('max_resolution', 'min_resolution', 'alt', 'custom_alt', 'title', 'custom_title', 'title_type', 'default_image', 'use_default_image')); + if (module_exists('imagecache')) { + return array_merge($filefield_settings, array('max_resolution', 'min_resolution', 'alt', 'custom_alt', 'title', 'custom_title', 'title_type', 'default_image', 'use_default_image', 'use_preset', 'preset_name')); + } else + { + return array_merge($filefield_settings, array('max_resolution', 'min_resolution', 'alt', 'custom_alt', 'title', 'custom_title', 'title_type', 'default_image', 'use_default_image')); + } } /** @@ -200,10 +233,14 @@ function imagefield_widget_value($elemen if ($edit) { $item['alt'] = isset($edit['alt']) ? $edit['alt'] : ''; $item['title'] = isset($edit['title']) ? $edit['title'] : ''; + $item['use_preset'] = isset($edit['use_preset']) ? $edit['use_preset'] : ''; + $item['preset_name'] = isset($edit['preset_name']) ? $edit['preset_name'] : ''; } else { $item['alt'] = ''; $item['title'] = ''; + $item['use_preset'] = ''; + $item['preset_name'] = ''; } return $item; } @@ -218,9 +255,10 @@ function imagefield_widget_process($elem $element['#theme'] = 'imagefield_widget_item'; if (isset($element['preview']) && $element['#value']['fid'] != 0) { - $element['preview']['#value'] = theme('imagefield_widget_preview', $element['#value']); + $element['preview']['#value'] = theme('imagefield_widget_preview', $element['#value']); } + // Check if using the default alt text and replace tokens. $default_alt = (!$field['widget']['custom_alt'] || (empty($file['status']) && empty($file['data']['alt']))); if ($default_alt && function_exists('token_replace')) { @@ -265,6 +303,21 @@ function imagefield_widget_process($elem if ($default_title) { $element['data']['title']['#value'] = $field['widget']['title']; } + + if (module_exists('imagecache')) { + $element['data']['use_preset'] = array( + '#type' => 'value', + '#title' => t('Use Imagecache Preset'), + '#default_value' => $field['widget']['use_preset'], + '#value' => $field['widget']['use_preset'], + ); + $element['data']['preset_name'] = array( + '#type' => 'value', + '#title' => t('Preview Image Preset'), + '#default_value' => $field['widget']['preset_name'], + '#value' => $field['widget']['preset_name'], + ); + } return $element; }