Index: imagefield/imagefield.module =================================================================== --- imagefield/imagefield.module (revision 10) +++ imagefield/imagefield.module (working copy) @@ -164,7 +164,7 @@ // 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. @@ -186,6 +186,10 @@ ); } + // add info for the imagecache settings + $element['#default_value']['data']['use_preset'] = $field['widget']['use_preset']; + $element['#default_value']['data']['preset_name'] = $field['widget']['preset_name']; + return $element; } @@ -271,11 +275,18 @@ } function theme_imagefield_admin_thumbnail($item = null) { - if (is_null($item) || empty($item['filepath'])) { - return ''; +// print_r($item); + 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 ''; } - $thumb_path = imagefield_file_admin_thumb_path($item); - return ''; + } /** * @} End defgroup "Theme Callbacks". Index: imagefield/imagefield_widget.inc =================================================================== --- imagefield/imagefield_widget.inc (revision 10) +++ imagefield/imagefield_widget.inc (working copy) @@ -1,5 +1,5 @@ t('This value will be used as the image title by default.'), '#suffix' => theme('token_help', 'file'), ); + + // 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; } @@ -113,7 +142,12 @@ function imagefield_widget_settings_save($widget) { // TODO: Rename custom_alt and custom_title to alt_custom and title_custom. $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')); + if (module_exists('imagecache')) { + return array_merge($filefield_settings, array('max_resolution', 'min_resolution', 'alt', 'custom_alt', 'title', 'custom_title', 'use_preset', 'preset_name')); + } else + { + return array_merge($filefield_settings, array('max_resolution', 'min_resolution', 'alt', 'custom_alt', 'title', 'custom_title')); + } } /** @@ -124,10 +158,14 @@ 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; } @@ -141,10 +179,6 @@ $element['#theme'] = 'imagefield_widget_item'; - if (isset($element['preview']) && $element['#value']['fid'] != 0) { - $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'] || ($file['status'] == 0 && empty($file['data']['alt']))); if ($default_alt && function_exists('token_replace')) { @@ -180,6 +214,22 @@ $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'], + ); + //print_r($element); + } + return $element; }