| 1 field.block.inc | FieldBlock::getContent() | 
Sets block content on block view.
Overrides Block::getContent
File
- core/modules/ field/ field.block.inc, line 76 
Class
- FieldBlock
- FieldBlock extends Block
Code
function getContent() {
  $settings = $this->settings;
  // Get a shortcut to the entity.
  list($entity_type, $field_name) = explode('-', $this->childDelta);
  $entity = $this->contexts[$entity_type]->data;
  // If the entity is not an EntityInterface object, try to get one.
  if (!is_a($entity, 'EntityInterface')) {
    $info = entity_get_info($entity_type);
    $id_key = $info['entity keys']['id'];
    // Unable to load an entity without an id property value.
    if (!isset($entity->{$id_key})) {
      return NULL;
    }
    $entity = $info['load hook']($entity->{$id_key});
    // Either there is a problem with this entity type definition,
    //  or the entity does not exist or is failing to load for some reason.
    if (!is_a($entity, 'EntityInterface')) {
      return NULL;
    }
    // Save the EntityInterface object for future use.
    $this->contexts[$entity_type]->setData($entity);
  }
  // Load the entity type's information for this field.
  $field = field_info_instance($entity_type, $field_name, $entity->bundle());
  // Do not render if the entity type does not have this field.
  if (empty($field)) {
    return NULL;
  }
  $language = field_language($entity_type, $entity, $field_name);
  $field_settings = array(
    'type' => $settings['formatter'],
    'settings' => $settings['formatter_settings'],
    'label' => $settings['label'],
  );
  $all_values = field_get_items($entity_type, $entity, $field_name, $language);
  if (!is_array($all_values)) {
    // Do not render if the field is empty.
    return NULL;
  }
  // Reverse values.
  if ($settings['delta_reversed']) {
    $all_values = array_reverse($all_values, TRUE);
  }
  if (isset($settings['delta_limit'])) {
    $offset = intval($settings['delta_offset']);
    $limit = !empty($settings['delta_limit']) ? $settings['delta_limit'] : NULL;
    $all_values = array_slice($all_values, $offset, $limit, TRUE);
  }
  $clone = clone $entity;
  $clone->{$field_name}[$language] = $all_values;
  $field_output = field_view_field($entity_type, $clone, $field_name, $field_settings, $language);
  return $field_output;
}
