protected function WebformCompositeBase::formatCustomItem in Webform 6.x
Same name and namespace in other branches
- 8.5 src/Plugin/WebformElement/WebformCompositeBase.php \Drupal\webform\Plugin\WebformElement\WebformCompositeBase::formatCustomItem()
Format an element's item using custom HTML or plain text.
Parameters
string $type: The format type, HTML or Text.
array $element: An element.
\Drupal\webform\WebformSubmissionInterface $webform_submission: A webform submission.
array $options: An array of options.
array $context: (optional) Context to be passed to inline Twig template.
Return value
array|string The element's item formatted as plain text or a render array.
Overrides WebformElementBase::formatCustomItem
2 calls to WebformCompositeBase::formatCustomItem()
- WebformCompositeBase::formatHtmlItem in src/
Plugin/ WebformElement/ WebformCompositeBase.php - Format an element's value as HTML.
- WebformCompositeBase::formatTextItem in src/
Plugin/ WebformElement/ WebformCompositeBase.php - Format an element's value as text.
File
- src/
Plugin/ WebformElement/ WebformCompositeBase.php, line 363
Class
- WebformCompositeBase
- Provides a base for composite elements.
Namespace
Drupal\webform\Plugin\WebformElementCode
protected function formatCustomItem($type, array &$element, WebformSubmissionInterface $webform_submission, array $options = [], array $context = []) {
$name = strtolower($type);
// Parse element.composite_key from template and add composite element
// to context.
$template = trim($element['#format_' . $name]);
if (preg_match_all("/element(?:\\[['\"]|\\.)([a-zA-Z0-9-_:]+)/", $template, $matches)) {
$composite_elements = $this
->getInitializedCompositeElement($element);
$composite_keys = array_unique($matches[1]);
$item_function = 'format' . $type;
$context['element'] = [];
foreach ($composite_keys as $composite_key) {
if (isset($composite_elements[$composite_key])) {
$context['element'][$composite_key] = $this
->{$item_function}([
'#format' => NULL,
] + $element, $webform_submission, [
'composite_key' => $composite_key,
] + $options);
}
}
}
return parent::formatCustomItem($type, $element, $webform_submission, $options, $context);
}