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