You are here

public function BillingPeriodDefaultFormatter::viewElements in Commerce Recurring Framework 8

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/BillingPeriodDefaultFormatter.php, line 28

Class

BillingPeriodDefaultFormatter
Provides the default billing period formatter.

Namespace

Drupal\commerce_recurring\Plugin\Field\FieldFormatter

Code

public function viewElements(FieldItemListInterface $items, $langcode) {
  $build = [];

  /** @var \Drupal\commerce_recurring\Plugin\Field\FieldType\BillingPeriodItem $item */
  foreach ($items as $delta => $item) {
    $billing_period = $item
      ->toBillingPeriod();
    $start_date = $billing_period
      ->getStartDate()
      ->format('M jS Y H:i:s');
    $end_date = $billing_period
      ->getEndDate()
      ->format('M jS Y H:i:s');
    $build[$delta] = [
      '#plain_text' => $start_date . ' - ' . $end_date,
    ];
  }
  return $build;
}