public function CodemirrorEditorFormatter::viewElements in The CodeMirror Editor 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/ CodemirrorEditorFormatter.php, line 61
Class
- CodemirrorEditorFormatter
- Plugin implementation of the 'Codemirror' formatter.
Namespace
Drupal\codemirror_editor\Plugin\Field\FieldFormatterCode
public function viewElements(FieldItemListInterface $items, $langcode) {
$element = [];
$settings = $this
->getSettings();
$settings['mode'] = self::normalizeMode($settings['mode']);
$settings['readOnly'] = TRUE;
$settings['toolbar'] = FALSE;
foreach ($items as $delta => $item) {
$element[$delta]['#markup'] = new FormattableMarkup('<code data-codemirror="@codemirror" class="cme-code">@value</code>', [
'@codemirror' => json_encode($settings),
'@value' => "\n{$item->value}\n",
]);
}
$element['#attached']['library'][] = 'codemirror_editor/formatter';
return $element;
}