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');
 }
 
 /**
