You are here

function imagecache_form_alter in ImageCache 5.2

Add imagecache pipelining to the the image.module size derivatives form

File

./imagecache_image.module, line 12
Provide Integration for the image.module and imagecache.

Code

function imagecache_form_alter($form_id, &$form) {
  if ($form_id == 'image_admin_settings') {

    // Sneak in our own little setting alongside the usual image dimensions
    // UI layout is not perfect, but image.module hard-coded their table formatting.
    // I want to over-ride theme_image_settings_sizes_form()
    //
    // image.module also slightly changed this structure and its API at one point
    // this code against 1.209.2.51 2008/01/06
    // test against other image.module releases
    $sizes = function_exists('image_get_sizes') ? image_get_sizes() : _image_get_sizes();
    $presets = imagecache_presets();
    $imagecache_options = array(
      0 => "(no imagecache process)",
    );
    foreach ($presets as $preset) {
      $imagecache_options[$preset['presetid']] = $preset['presetname'];
    }
    foreach (element_children($form['image_sizes']) as $key) {
      $form['image_sizes'][$key]['imagecache'] = array(
        '#type' => 'select',
        '#default_value' => $sizes[$key]['imagecache'],
        '#options' => $imagecache_options,
      );
      $form['image_sizes'][$key]['operation']['#type'] = 'hidden';
      $form['image_sizes'][$key]['width']['#type'] = 'hidden';
      $form['image_sizes'][$key]['height']['#type'] = 'hidden';
    }
    $form['image_sizes']['#description'] .= t('<p>Note: \'Original\' dimensions
      will only be used to resize images when they are first uploaded. Existing
      originals will not be modified. Choose an <a href="!imagecache_settings">imagecache preset</a>
      to use to generate this derivative image. </p>', array(
      '!imagecache_settings' => url('admin/build/imagecache'),
    ));
    $form['image_sizes']['#theme'] = 'imagecache_image_settings_sizes_form';

    // Capture the form submission so we can save this setting
    $form['#submit']['imagecache_save_image_size_settings'] = array();
  }
}