44
55use Drupal \os2forms_cpr_lookup \CPR \CprServiceResult ;
66use Drupal \webform \WebformSubmissionInterface ;
7+ use Drupal \Core \Entity \EntityTypeManagerInterface ;
8+ use Drupal \Core \Render \Renderer ;
79
810/**
911 * Webform helper.
1012 */
1113final class WebformHelper {
1214
15+ /**
16+ * The entity type manager.
17+ *
18+ * @var \Drupal\Core\Entity\EntityTypeManagerInterface
19+ */
20+ protected $ entityTypeManager ;
21+
22+ /**
23+ * The drupal renderer.
24+ *
25+ * @var Drupal\Core\Render\Renderer
26+ */
27+ protected $ renderer ;
28+
29+ /**
30+ * Constructor.
31+ */
32+ public function __construct (EntityTypeManagerInterface $ entity_type_manager , Renderer $ renderer ) {
33+ $ this ->entityTypeManager = $ entity_type_manager ;
34+ $ this ->renderer = $ renderer ;
35+ }
36+
1337 /**
1438 * Get template context.
1539 */
1640 public function getTemplateContext (WebformSubmissionInterface $ webformSubmission , CprServiceResult $ cprServiceResult , array $ configuration = []) {
17-
18- $ elements = [];
19- $ blacklistedElements = $ configuration ['blacklist_elements_for_template ' ] ?? [];
20- $ submissionData = $ webformSubmission ->getData ();
2141 $ webform = $ webformSubmission ->getWebform ();
22- foreach ($ submissionData as $ key => $ value ) {
23- if (array_key_exists ($ key , $ blacklistedElements )) {
24- continue ;
25- }
26-
27- $ element = $ webform ->getElement ($ key );
2842
29- $ elements [] = [
30- 'name ' => $ element ['#title ' ],
31- 'value ' => $ element ['#return_value ' ] ?? $ value ,
32- ];
33- }
43+ $ view_builder = $ this ->entityTypeManager ->getViewBuilder ('webform_submission ' );
44+ $ pre_render = $ view_builder ->view ($ webformSubmission , 'HTML ' );
45+ $ webformSubmissionRendered = $ this ->renderer ->renderPlain ($ pre_render );
3446
3547 // We cannot use “side” (from address lookup via cpr) as “suiteIdentifier”
3648 // when sending digital port. Therefore we append it to “floor” instead.
@@ -51,8 +63,8 @@ public function getTemplateContext(WebformSubmissionInterface $webformSubmission
5163
5264 return [
5365 'label ' => $ webform ->label (),
54- 'elements ' => $ elements ,
5566 'recipient ' => $ recipient ,
67+ 'submission ' => $ webformSubmissionRendered
5668 ];
5769 }
5870
0 commit comments