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