You are here

protected function YamlFormElementBase::build in YAML Form 8

Build an element as text or HTML.

Parameters

string $format: Format of the element, text or html.

array $element: An element.

array|mixed $value: A value.

array $options: An array of options.

Return value

array A render array representing an element as text or HTML.

3 calls to YamlFormElementBase::build()
Table::build in src/Plugin/YamlFormElement/Table.php
Build an element as text or HTML.
YamlFormElementBase::buildHtml in src/YamlFormElementBase.php
Build an element as HTML element.
YamlFormElementBase::buildText in src/YamlFormElementBase.php
Build an element as text element.
2 methods override YamlFormElementBase::build()
ContainerBase::build in src/Plugin/YamlFormElement/ContainerBase.php
Build an element as text or HTML.
Table::build in src/Plugin/YamlFormElement/Table.php
Build an element as text or HTML.

File

src/YamlFormElementBase.php, line 586

Class

YamlFormElementBase
Provides a base class for a form element.

Namespace

Drupal\yamlform

Code

protected function build($format, array &$element, $value, array $options = []) {
  $options['multiline'] = $this
    ->isMultiline($element);
  $format_function = 'format' . ucfirst($format);
  $formatted_value = $this
    ->{$format_function}($element, $value, $options);

  // Return NULL for empty formatted value.
  if ($formatted_value === '') {
    return NULL;
  }

  // Convert string to renderable #markup.
  if (is_string($formatted_value)) {
    $formatted_value = [
      '#markup' => $formatted_value,
    ];
  }
  return [
    '#theme' => 'yamlform_element_base_' . $format,
    '#element' => $element,
    '#value' => $formatted_value,
    '#options' => $options,
  ];
}