Index: modules/search/search.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/search/search.module,v
retrieving revision 1.185
diff -u -r1.185 search.module
--- modules/search/search.module	31 Jul 2006 11:25:54 -0000	1.185
+++ modules/search/search.module	2 Aug 2006 22:39:49 -0000
@@ -240,6 +240,49 @@
 }
 
 /**
+ * Implementation of hook_form_alter().
+ */
+function search_form_alter($form_id, &$form) {
+  $theme = arg(4);  
+  if ('system_theme_settings' == $form_id && empty($theme)) {
+    $settings = theme_get_settings('');
+    if (!isset($settings['search_result_display_settings'])) {
+      $display_settings = array('date', 'author', 'content_type', 'extras');
+    }
+    else {
+      $display_settings = array();
+      foreach ($settings['search_result_display_settings'] as $key => $value) {
+        if ($value) {
+          $display_settings[] = $key;
+        }
+      }
+    }
+
+    // Display settings:  
+    $form['search_result_settings'] = array(
+      '#type' => 'fieldset',
+      '#title' => t('Show in search results'),
+      '#description' => t('Select which additional information, besides title and teaser, should be displayed for each search result.'),
+      '#collapsible' => FALSE,
+      '#collapsed' => FALSE,
+      '#weight' => -1,
+      '#prefix' => '<div class="theme-settings-right">',
+      '#suffix' => '</div>' 
+    );
+    $form['search_result_settings']['search_result_display_settings'] = array(
+      '#type' => 'checkboxes',
+      '#default_value' => $display_settings,
+      '#options' => array(
+        'date' => t('Date'),
+        'author' => t('Author'),
+        'content_type' => t('Content type'),
+        'extras' => t('Module-provided fields')
+      )
+    );
+  }
+}
+
+/**
  * Menu callback: confirm wiping of the index.
  */
 function search_wipe_confirm() {
@@ -1228,16 +1271,30 @@
 function theme_search_item($item, $type) {
   $output = ' <dt class="title"><a href="'. check_url($item['link']) .'">'. check_plain($item['title']) .'</a></dt>';
   $info = array();
-  if ($item['type']) {
+  
+  $settings = theme_get_settings('');
+  if (!isset($settings['search_result_display_settings'])) {
+    $display_settings = array('date', 'author', 'content_type', 'extras');
+  }
+  else {
+    $display_settings = array();
+    foreach ($settings['search_result_display_settings'] as $key => $value) {
+      if ($value) {
+        $display_settings[] = $key;
+      }
+    }
+  }
+
+  if ($item['type'] && in_array('content_type', $display_settings)) {
     $info[] = $item['type'];
   }
-  if ($item['user']) {
+  if ($item['user'] && in_array('author', $display_settings)) {
     $info[] = $item['user'];
   }
-  if ($item['date']) {
+  if ($item['date'] && in_array('date', $display_settings)) {
     $info[] = format_date($item['date'], 'small');
   }
-  if (is_array($item['extra'])) {
+  if (is_array($item['extra']) && in_array('extras', $display_settings)) {
     $info = array_merge($info, $item['extra']);
   }
   $output .= ' <dd>'. ($item['snippet'] ? '<p>'. $item['snippet'] . '</p>' : '') . '<p class="search-info">' . implode(' - ', $info) .'</p></dd>';
