You are here

public function PaymentLineItemOverview::viewElements in Payment 8.2

Builds a renderable array for a field value.

Parameters

\Drupal\Core\Field\FieldItemListInterface $items: The field values to be rendered.

string $langcode: The language that should be used to render the field.

Return value

array A renderable array for $items, as an array of child elements keyed by consecutive numeric indexes starting from 0.

Overrides FormatterInterface::viewElements

File

src/Plugin/Field/FieldFormatter/PaymentLineItemOverview.php, line 26

Class

PaymentLineItemOverview
A payment line item field formatter.

Namespace

Drupal\payment\Plugin\Field\FieldFormatter

Code

public function viewElements(FieldItemListInterface $items, $langcode) {
  $payment_line_items = new LineItemCollection();

  /** @var \Drupal\plugin\Plugin\Field\FieldType\PluginCollectionItemInterface $item */
  foreach ($items as $delta => $item) {
    $payment_line_items
      ->setLineItem($item
      ->getContainedPluginInstance());
  }
  $entity = $items
    ->getEntity();
  if ($entity instanceof LineItemCollectionInterface) {
    $payment_line_items
      ->setCurrencyCode($entity
      ->getCurrencyCode());
  }
  $build[0] = array(
    '#payment_line_items' => $payment_line_items,
    '#type' => 'payment_line_items_display',
  );
  return $build;
}