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