You are here

function user_badge_build_content in User Badges 7.4

Builds a structured array representing the user_badge's content.

Parameters

UserBadge $user_badge: A user_badge object.

string $view_mode: View mode, e.g. 'full', 'teaser'...

string $langcode: (optional) A language code to use for rendering. Defaults to the global content language of the current request.

1 call to user_badge_build_content()
user_badge_view in ./user_badges.module
Generates an array for rendering the given user_badge.

File

./user_badges.module, line 432
Hooks and other stuff related to user badge.

Code

function user_badge_build_content($user_badge, $view_mode = 'full', $langcode = NULL) {
  if (!isset($langcode)) {
    $langcode = $GLOBALS['language_content']->language;
  }

  // Remove previously built content, if exists.
  $user_badge->content = array();

  // Allow modules to change the view mode.
  $context = array(
    'entity_type' => 'user_badge',
    'entity' => $user_badge,
    'langcode' => $langcode,
  );
  drupal_alter('entity_view_mode', $view_mode, $context);

  // Build fields content.
  // In case of a multiple view, user_badge_view_multiple() already ran the
  // 'prepare_view' step. An internal flag prevents the operation from running
  // twice.
  field_attach_prepare_view('user_badge', array(
    $user_badge->bid => $user_badge,
  ), $view_mode, $langcode);
  entity_prepare_view('user_badge', array(
    $user_badge->bid => $user_badge,
  ), $langcode);
  $user_badge->content += field_attach_view('user_badge', $user_badge, $view_mode, $langcode);

  // Allow modules to make their own additions to the user_badge.
  module_invoke_all('user_badge_view', $user_badge, $view_mode, $langcode);
  module_invoke_all('entity_view', $user_badge, 'user_badge', $view_mode, $langcode);

  // Make sure the current view mode is stored if no module has already
  // populated the related key.
  $user_badge->content += array(
    '#view_mode' => $view_mode,
  );
}