You are here

public function BatOptionsPrice::viewElements in Booking and Availability Management Tools for Drupal 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

modules/bat_options/src/Plugin/Field/FieldFormatter/BatOptionsPrice.php, line 27
Contains \Drupal\bat_options\Plugin\Field\FieldFormatter\BatOptionsPrice.

Class

BatOptionsPrice
Plugin annotation @FieldFormatter( id = "bat_options_price", label = @Translation("Bat Options Price"), field_types = { "bat_options", } )

Namespace

Drupal\bat_options\Plugin\Field\FieldFormatter

Code

public function viewElements(FieldItemListInterface $items, $langcode) {
  $element = [];
  $currency_symbol = '$';
  foreach ($items as $delta => $item) {
    $price = t('@currency_symbol@amount', [
      '@currency_symbol' => $currency_symbol,
      '@amount' => number_format($item->value, 2, '.', ''),
    ]);
    if ($item->value > 0) {
      $element[$delta] = [
        '#markup' => "{$item->quantity} x {$item->name} - {$price}",
      ];
    }
    else {
      $element[$delta] = [
        '#markup' => "{$item->quantity} x {$item->name}",
      ];
    }
  }
  return $element;
}