You are here

function blockreference_field_formatter_view in Block reference 7.2

Same name and namespace in other branches
  1. 7 blockreference.module \blockreference_field_formatter_view()

Implements hook_field_formatter_view().

File

./blockreference.field.inc, line 181

Code

function blockreference_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
  $element = array();
  $formatter = str_replace('blockreference_', '', $display['type']);
  foreach ($items as $delta => $item) {
    $vars = array(
      'entity_type' => $entity_type,
      'entity' => $entity,
      'field' => $field,
      'instance' => $instance,
      'langcode' => $langcode,
      'item' => $item,
      'display' => $display,
    );
    $element[$delta] = array(
      '#theme' => 'blockreference_formatter_' . $formatter,
      '#element' => $vars,
    );

    // To hide potentially empty/broken/missing block references, pre-render it immediately and check the output.
    if (!$display['settings']['show_empty_blocks']) {
      $html = trim(render($element[$delta]));
      if ($html) {
        $element[$delta] = array(
          '#markup' => $html,
          '#blockreference_vars' => $vars,
        );
      }
      else {
        unset($element[$delta]);
      }
    }
  }
  return $element;
}