You are here

function efq_views_handler_field_entity::render in EntityFieldQuery Views Backend 7

Maps the entity keys to real returned data (for example: entity_id => nid, for node).

Overrides views_handler_field::render

File

handlers/efq_views_handler_field_entity.inc, line 64

Class

efq_views_handler_field_entity
Field handler for entity keys.

Code

function render($values) {
  if ($this->field == 'entity_type') {
    return $values->entity_type;
  }
  $entity_info = entity_get_info($values->entity_type);
  $id_map = array(
    'entity_id' => $entity_info['entity keys']['id'],
    'revision_id' => $entity_info['entity keys']['revision'],
    'bundle' => $entity_info['entity keys']['bundle'],
  );
  if ($this->field == 'bundle_label') {
    $value = $values->{$id_map['bundle']};
    if (isset($entity_info['bundles'][$value]['label'])) {
      $value = $entity_info['bundles'][$value]['label'];
    }
  }
  else {
    $value = $values->{$id_map[$this->field]};
  }
  return $this
    ->render_link(check_plain($value), $values);
}