aboutsummaryrefslogtreecommitdiff
path: root/imagecache_auto.module
diff options
context:
space:
mode:
Diffstat (limited to 'imagecache_auto.module')
-rw-r--r--imagecache_auto.module28
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);
}