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;
}