diff options
Diffstat (limited to 'imagecache_auto.module')
-rw-r--r-- | imagecache_auto.module | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/imagecache_auto.module b/imagecache_auto.module index f55fcd5..e022fa5 100644 --- a/imagecache_auto.module +++ b/imagecache_auto.module @@ -14,9 +14,9 @@ function imagecache_auto_menu() { $items = array(); - $items['admin/settings/imagecache/auto'] = array( - 'title' => 'ImageCache Auto Configuration', - 'description' => 'Adjust ImageCache Auto settings.', + $items['admin/build/imagecache/auto'] = array( + 'title' => 'ImageCache Auto', + 'description' => 'ImageCache Auto settings.', 'page callback' => 'drupal_get_form', 'page arguments' => array('imagecache_auto_admin_settings'), 'access arguments' => array('administer site configuration'), @@ -27,7 +27,7 @@ function imagecache_auto_menu() { $items[file_directory_path() .'/imagecache_auto'] = array( 'page callback' => 'imagecache_auto', 'access callback' => TRUE, - 'type' => MENU_CALLBACK + 'type' => MENU_CALLBACK, ); return $items; @@ -35,24 +35,32 @@ function imagecache_auto_menu() { /** * Automatically create ImageCache presets. - * - * @todo - * Specify maximum and minimum dimensions. */ function imagecache_auto() { include_once('imagecache_auto.inc'); - $args = func_get_args(); - $options = array( + $max_width = variable_get('imagecache_auto_max_width', '10000'); + $max_height = variable_get('imagecache_auto_max_height', '10000'); + $args = func_get_args(); + $options = array( 'width' => (int) check_plain(array_shift($args)), 'height' => (int) check_plain(array_shift($args)), 'path' => implode('/', $args), ); + // Validation. + if ($options['width'] == NULL || $options['width'] < 0 || $options['width'] > $max_width) { + drupal_not_found(); + } + else if ($options['height'] == NULL || $options['height'] < 0 || $options['height'] > $max_height) { + drupal_not_found(); + } + // Make sure that the preset exists. imagecache_auto_create_preset($options); // Redirect to the image cache image version. - $path = file_directory_path() .'/imagecache/'. $options['width'] .'x'. $options['height'] .'/'. $options['path']; + $preset = $options['width'] .'x'. $options['height']; + $path = file_directory_path() .'/imagecache/'. $preset .'/'. $options['path']; drupal_goto($path); } |