public function CustomEntityField::getItems in CiviCRM Entity 8.3
Gets an array of items for the field.
Parameters
\Drupal\views\ResultRow $values: The result row object containing the values.
Return value
array An array of items for the field.
Overrides EntityField::getItems
File
- src/
Plugin/ views/ field/ CustomEntityField.php, line 166
Class
- CustomEntityField
- A field that displays entity field data for custom fields.
Namespace
Drupal\civicrm_entity\Plugin\views\fieldCode
public function getItems(ResultRow $values) {
$display = [
'type' => $this->options['type'],
'settings' => $this->options['settings'],
'label' => 'hidden',
];
if (($entity = $this
->getEntity($values)) && isset($entity->{$this->definition['field_name']})) {
$entity = $this
->createEntity($entity);
if (isset($this->aliases['id']) && isset($values->{$this->aliases['id']})) {
$values->delta = $this
->getDelta($values->{$this->aliases['id']});
}
$build_list = $entity->{$this->definition['field_name']}
->view($display);
}
else {
$build_list = NULL;
}
if (!$build_list) {
return [];
}
if ($this->options['field_api_classes']) {
return [
[
'rendered' => $this->renderer
->render($build_list),
],
];
}
$items = [];
$bubbleable = BubbleableMetadata::createFromRenderArray($build_list);
foreach (Element::children($build_list) as $delta) {
BubbleableMetadata::createFromRenderArray($build_list[$delta])
->merge($bubbleable)
->applyTo($build_list[$delta]);
$items[$delta] = [
'rendered' => $build_list[$delta],
'raw' => $build_list['#items'][$delta],
];
}
return $items;
}