Index: blockreference.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/blockreference/blockreference.module,v
retrieving revision 1.1.4.9
diff -u -p -r1.1.4.9 blockreference.module
--- blockreference.module	5 Jun 2009 00:03:25 -0000	1.1.4.9
+++ blockreference.module	30 Aug 2009 08:30:46 -0000
@@ -43,6 +43,9 @@ function blockreference_theme() {
     'blockreference_formatter_plain' => array(
       'arguments' => array('element'),
     ),
+    'blockreference_formatter_title' => array(
+      'arguments' => array('element'),
+    ),
   );
 }
 
@@ -158,6 +161,11 @@ function blockreference_field_formatter_
       'field types' => array('blockreference'),
       'multiple values' => CONTENT_HANDLE_CORE,
     ),
+    'title' => array(
+      'label' => t('Title only'),
+      'field types' => array('blockreference'),
+      'multiple values' => CONTENT_HANDLE_CORE,
+    ),
   );
 }
 
@@ -199,6 +207,27 @@ function theme_blockreference_formatter_
 }
 
 /**
+ * Theme function for 'title' blockreference field formatter.
+ */
+function theme_blockreference_formatter_title($element) {
+  $field_name = $element['#field_name'];
+  $field = content_fields($field_name);
+  $output = '';
+  if (!empty($element['#item']['bid']) && is_numeric($element['#item']['bid'])) {
+    $block = db_fetch_object(db_query(db_rewrite_sql("SELECT * FROM {blocks} WHERE bid = ".$element['#item']['bid'], 'blocks', 'bid')));
+    $block->enabled = TRUE;
+    $block->status = TRUE;
+    $block->page_match = TRUE;
+    $block_view = module_invoke($block->module, 'block', 'view', $block->delta);
+    $subject = $block->title ? $block->title : $block_view['subject'];
+    if ($block_view['content']) {
+      $output = check_plain($subject);
+    }
+  }
+  return $output;
+}
+
+/**
  * Implementation of hook_widget_info().
  *
  * We need custom handling of multiple values for the blockreference_select
