Index: image.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/image/image.module,v retrieving revision 1.279 diff -u -p -r1.279 image.module --- image.module 22 Dec 2008 22:04:29 -0000 1.279 +++ image.module 23 Dec 2008 13:24:53 -0000 @@ -305,29 +305,67 @@ function image_link($type, $node, $main * * Offers 2 blocks: latest image and random image */ -function image_block($op = 'list', $delta = 0) { +function image_block($op = 'list', $delta = 0, $edit = array()) { switch ($op) { case 'list': $block[0]['info'] = t('Latest image'); $block[1]['info'] = t('Random image'); return $block; + case 'configure': + if (user_access('administer blocks')) { + switch ($delta) { + case 0: + $form['latest_num_images'] = array( + '#type' => 'textfield', + '#title' => t('Latest images to display'), + '#size' => 5, + '#maxlength' => 2, + '#default_value' => variable_get('image_latest_num_images', 1), + ); + return $form; + case 1: + $form['randon_num_images'] = array( + '#type' => 'textfield', + '#title' => t('Random images to display'), + '#size' => 5, + '#maxlength' => 2, + '#default_value' => variable_get('image_random_num_images', 1), + ); + return $form; + } + } case 'view': if (user_access('access content')) { switch ($delta) { case 0: - $images = image_get_latest(); + $images = image_get_latest(variable_get('image_latest_num_images', 1)); $block['subject'] = t('Latest image'); $block['content'] = theme('image_block_latest', $images, IMAGE_THUMBNAIL); break; case 1: - $images = image_get_random(); + $images = image_get_random(variable_get('image_random_num_images', 1)); $block['subject'] = t('Random image'); $block['content'] = theme('image_block_random', $images, IMAGE_THUMBNAIL); break; } } return $block; + case 'save': + switch ($delta) { + // Ensure submitted value is an integer. Don't ever show more then 99 images. + case 0: + $edit['latest_num_images'] = intval($edit['latest_num_images']); + $edit['latest_num_images'] = ($edit['latest_num_images'] > 99) ? 99 : $edit['latest_num_images']; + variable_set('image_latest_num_images', $edit['latest_num_images']); + break; + case 1: + $edit['random_num_images'] = intval($edit['randon_num_images']); + $edit['randon_num_images'] = ($edit['random_num_images'] > 99) ? 99 : $edit['random_num_images']; + variable_set('image_random_num_images', $edit['random_num_images']); + break; + } + } } @@ -676,14 +714,22 @@ function theme_image_display($node, $lab * Theme a random block */ function theme_image_block_random($images, $size) { - return l(image_display($images[0], $size), 'node/'. $images[0]->nid, array('html' => TRUE)); + $output = null; + foreach ($images as $image) { + $output .= l(image_display($image, $size), 'node/'. $image->nid, array('html' => TRUE)); + } + return $output; } /** * Theme a latest block */ function theme_image_block_latest($images, $size) { - return l(image_display($images[0], $size), 'node/'. $images[0]->nid, array('html' => TRUE)); + $output = null; + foreach ($images as $image) { + $output .= l(image_display($image, $size), 'node/'. $image->nid, array('html' => TRUE)); + } + return $output; } /**