Index: image.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/image/image.module,v retrieving revision 1.290 diff -u -p -r1.290 image.module --- image.module 18 Jan 2009 00:31:35 -0000 1.290 +++ image.module 18 Jan 2009 03:53:15 -0000 @@ -303,29 +303,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' => 'select', + '#title' => t('Latest images to display'), + '#maxlength' => 2, + '#options' => image_block_display_range(), + '#default_value' => variable_get('image_latest_num_images', 1), + ); + return $form; + + case 1: + $form['randon_num_images'] = array( + '#type' => 'select', + '#title' => t('Random images to display'), + '#maxlength' => 2, + '#options' => image_block_display_range(), + '#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) { + case 0: + variable_set('image_latest_num_images', $edit['latest_num_images']); + break; + + case 1: + variable_set('image_random_num_images', $edit['randon_num_images']); + break; + } } } @@ -674,14 +712,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 = ''; + 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 = ''; + foreach ($images as $image) { + $output .= l(image_display($image, $size), 'node/'. $image->nid, array('html' => TRUE)); + } + return $output; } /** @@ -1041,3 +1087,14 @@ function image_views_api() { ); } +/** + * Latest and random image blocks can only display 0-99 images + */ +function image_block_display_range() { + $options = array(); + for ($i = 0; $i < 100; $i++) { + $options[$i] = $i; + } + return $options; +} + Index: image.install =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/image/image.install,v retrieving revision 1.19 diff -u -p -r1.19 image.install --- image.install 18 Jan 2009 00:31:35 -0000 1.19 +++ image.install 18 Jan 2009 03:53:16 -0000 @@ -55,6 +55,8 @@ function image_uninstall() { variable_del('image_updated'); variable_del('image_default_path'); variable_del('image_sizes'); + variable_del('image_latest_num_images'); + variable_del('image_random_num_images'); } /**