@@ -44,12 +44,26 @@ public function render(array $itemData, array $additionalData = []) : string
44
44
}
45
45
$ eavData = $ this ->eavAttributeLoader ->load ($ itemData ['entityId ' ]);
46
46
47
- $ newsletterClasses = $ eavData [ ' css_classes ' ] ?? ' ' ;
48
- $ newsletterButtonText = $ eavData[ ' button_text ' ] ?? ' ' ;
49
- $ newsletterLabel = $ eavData [ ' label ' ] ?? '' ;
50
- $ newsletterTitle = $ eavData [ ' title ' ] ?? '' ;
51
- $ newsletterPlaceHolder = $ eavData [ ' placeholder ' ] ?? '' ;
47
+ $ rootElementHtml = ' <div data-element="main" data-role="html" data-appearance="default"> ' ;
48
+ $ rootElementHtml . = $ this -> getNewsletterHtml ( $ itemData , $ eavData) . ' </div> ' ;
49
+
50
+ return $ rootElementHtml ;
51
+ }
52
52
53
+ /**
54
+ * get the html for the newsletter
55
+ *
56
+ * @param array $itemData
57
+ * @param array $eavData
58
+ * @return string
59
+ */
60
+ private function getNewsletterHtml (array $ itemData , array $ eavData ): string
61
+ {
62
+ $ newsletterButtonText = $ eavData ['button_text ' ] ?? __ ('Subscribe ' );
63
+ $ newsletterLabel = $ eavData ['label ' ] ?? __ ('Sign Up for Our Newsletter: ' );
64
+ $ newsletterTitle = $ eavData ['title ' ] ?? __ ('Newsletter ' );
65
+ $ newsletterPlaceHolder = $ eavData ['placeholder ' ] ?? __ ('Enter your email address ' );
66
+ $ newsletterClasses = $ eavData ['css_classes ' ] ?? '' ;
53
67
$ newsletterStyles = '' ;
54
68
if (isset ($ itemData ['formData ' ])) {
55
69
$ justifyContent = '' ;
@@ -69,18 +83,29 @@ public function render(array $itemData, array $additionalData = []) : string
69
83
}
70
84
}
71
85
72
- $ newsletterHtml = "{{block class= \"Magento\Newsletter\Block\Subscribe \" " .
73
- "template= \"Magento_PageBuilder::content_type/newsletter.phtml \" " .
74
- "placeholder= \"$ newsletterPlaceHolder \" " .
75
- "classes= \"$ newsletterClasses \" " .
76
- "styles= \"$ newsletterStyles \" " .
77
- "button_text= \"$ newsletterButtonText \" " .
78
- "label_text= \"$ newsletterLabel \" " .
79
- "title= \"$ newsletterTitle \"}} " ;
86
+ $ newsletterHtml = '<div class=" ' . $ newsletterClasses . '" style=" ' . $ newsletterStyles . '"> ' .
87
+ '<div class="block newsletter"><div class="title"><strong> ' . $ newsletterTitle . '</strong></div> ' .
88
+ '<div class="content"> ' .
89
+ '<form class="form subscribe" novalidate method="post" ' .
90
+ 'action="{{store direct_url= \'newsletter/subscriber/new \' _secure=1}}" ' .
91
+ 'data-mage-init= \'{"validation": {"errorClass": "mage-error"}} \'> ' .
92
+ '<div class="field newsletter"> ' .
93
+ '<label class="label" for="newsletter- ' . $ itemData ['entityId ' ] . '"> ' .
94
+ '<span> ' . $ newsletterLabel . '</span> ' .
95
+ '</label> ' .
96
+ '<div class="control"> ' .
97
+ '<input name="email" type="email" id="newsletter- ' . $ itemData ['entityId ' ] . '" ' .
98
+ 'placeholder=" ' . $ newsletterPlaceHolder . '" ' .
99
+ 'data-mage-init= \'{"mage/trim-input":{}} \' ' .
100
+ 'data-validate="{required:true, \'validate-email \':true}"/> ' .
101
+ '</div></div> ' .
102
+ '<div class="actions"> ' .
103
+ '<button class="action subscribe primary" title=" ' . $ newsletterButtonText . '" type="submit"> ' .
104
+ '<span> ' . $ newsletterButtonText . '</span> ' .
105
+ '</button> ' .
106
+ '</div></form></div></div></div> ' ;
80
107
81
- $ rootElementHtml = '<div data-element="main" data-role="html" data-appearance="default"> ' ;
82
- $ rootElementHtml .= $ newsletterHtml . '</div> ' ;
83
108
84
- return $ rootElementHtml ;
109
+ return $ newsletterHtml ;
85
110
}
86
111
}
0 commit comments