You are here

function flipping_book_reference_field_formatter_prepare_view in Flipping Book 7

Implements hook_field_formatter_prepare_view().

Preload all flipping_books referenced by items using 'full entity' formatters.

File

./flipping_book_reference.module, line 253
Defines a field type for referencing one flipping_book from a node.

Code

function flipping_book_reference_field_formatter_prepare_view($entity_type, $entities, $field, $instances, $langcode, &$items, $displays) {

  // Load the referenced flipping books, except for the
  // 'flipping_book_reference_fbid' which does not need full objects.
  // Collect ids to load.
  $ids = array();
  foreach ($displays as $id => $display) {
    if ($display['type'] != 'flipping_book_reference_fbid') {
      foreach ($items[$id] as $delta => $item) {
        $ids[$item['fbid']] = $item['fbid'];
      }
    }
  }
  $flipping_books = flipping_book_load_multiple($ids);

  // Add the loaded flipping_books to the items.
  foreach ($displays as $id => $display) {
    if ($display['type'] != 'flipping_book_reference_fbid') {
      foreach ($items[$id] as $delta => $item) {
        $items[$id][$delta]['flipping_book'] = $flipping_books[$item['fbid']];
      }
    }
  }
}