PluginProbe ʕ •ᴥ•ʔ
MailPoet – Newsletters, Email Marketing, and Automation / 5.34.2
MailPoet – Newsletters, Email Marketing, and Automation v5.34.2
5.34.2 5.34.1 5.34.0 5.33.1 5.33.0 5.32.0 5.31.0 5.30.0 5.29.0 5.28.1 5.28.0 5.27.0 5.26.0 5.26.1 5.25.0 5.24.0 4.43.0 4.43.1 4.44.0 4.44.1 4.45.0 4.46.0 4.47.0 4.48.0 4.48.1 4.48.2 4.49.0 4.49.1 4.5.0 4.5.1 4.5.2 4.50.0 4.50.1 4.51.0 4.51.1 4.51.2 4.52.0 4.53.0 4.54.0 4.55.0 4.56.0 4.57.0 4.58.0 4.58.1 4.58.2 4.6.0 4.6.1 4.6.2 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 5.0.0 5.0.1 5.0.2 5.1.0 5.1.1 5.10.0 5.10.1 5.11.0 5.12.0 5.12.1 5.12.10 5.12.11 5.12.12 5.12.13 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.13.0 5.13.1 5.13.2 5.14.0 5.14.1 5.14.2 5.14.3 5.15.0 5.15.1 5.16.0 5.16.1 5.16.2 5.16.3 5.16.4 5.17.0 5.17.1 5.17.2 5.17.3 5.17.4 5.17.5 5.17.6 5.18.0 5.19.0 5.2.0 5.2.1 5.2.2 5.2.3 5.20.0 5.21.0 5.21.1 5.21.2 5.21.3 5.22.0 5.22.1 5.22.2 5.22.3 5.22.4 5.23.0 5.23.1 5.23.2 5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.3.7 5.4.0 5.4.1 5.4.2 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.6.3 5.6.4 5.7.0 5.7.1 5.8.0 5.8.1 5.9.0 3.0.0-beta.15 3.7.1 3.0.0-beta.16 3.7.2 3.0.0-beta.17 3.7.3 3.0.0-beta.18 3.7.4 3.0.0-beta.19 3.7.5 3.0.0-beta.2 3.7.6 3.0.0-beta.20 3.7.8 3.0.0-beta.21 3.70.0 3.0.0-beta.22 3.71.0 3.0.0-beta.23 3.71.1 3.0.0-beta.23.1 3.71.2 3.0.0-beta.23.2 3.71.3 3.0.0-beta.24 3.72.0 3.0.0-beta.25 3.73.0 3.0.0-beta.26 3.73.1 3.0.0-beta.27 3.73.2 3.0.0-beta.28 3.74.0 3.0.0-beta.29 3.74.1 3.0.0-beta.3 3.74.2 3.0.0-beta.30 3.74.3 3.0.0-beta.31 3.75.0 3.0.0-beta.32 3.75.1 3.0.0-beta.33 3.76.0 3.0.0-beta.33.1 3.77.0 3.0.0-beta.34.0.0 3.77.1 3.0.0-beta.36.0.0 3.78.0 3.0.0-beta.36.0.1 3.79.0 3.0.0-beta.36.2.0 3.8 3.0.0-beta.36.3.0 3.8.1 3.0.0-beta.36.3.1 3.8.2 3.0.0-beta.37.0.0 3.8.3 3.0.0-beta.4 3.8.4 3.0.0-beta.5 3.8.5 3.0.0-beta.6 3.8.6 3.0.0-beta.7 3.80.0 3.0.0-beta.7.1 3.81.0 3.0.0-beta.8 3.82.0 3.0.0-beta.9 3.83.0 3.0.0-rc.1.0.0 3.84.0 3.0.0-rc.1.0.1 3.84.1 3.0.0-rc.1.0.2 3.85.0 3.0.0-rc.1.0.3 3.85.1 3.0.0-rc.1.0.4 3.86.0 3.0.0-rc.2.0.0 3.87.0 3.0.0-rc.2.0.1 3.87.1 3.0.0-rc.2.0.2 3.87.2 3.0.0-rc.2.0.3 3.88.0 3.0.1 3.88.1 3.0.2 3.88.2 3.0.3 3.89.0 3.0.4 3.89.1 3.0.5 3.89.2 3.0.6 3.89.3 3.0.7 3.89.4 3.0.8 3.9.0 3.0.9 3.9.1 3.1.0 3.90.0 3.10 3.90.1 3.10.1 3.90.2 3.100.0 3.91.0 3.100.1 3.91.1 3.100.2 3.92.0 3.101.0 3.92.1 3.101.1 3.93.0 3.102.0 3.93.1 3.102.1 3.94.0 3.103.0 3.95.0 3.103.1 3.95.1 3.11.0 3.96.0 3.11.1 3.96.1 3.11.2 3.97.0 3.11.3 3.98.0 3.11.4 3.98.1 3.11.5 3.99.0 3.12.0 3.99.1 3.12.1 4.0.0 3.13.0 4.0.1 3.14.0 4.1.0 3.14.1 4.1.1 3.15.0 4.10.0 3.16.0 4.11.0 3.16.1 4.11.1 3.16.2 4.12.0 3.16.3 4.12.1 3.17.0 4.12.2 3.17.1 4.13.0 3.17.2 4.14.0 3.18.0 4.15.0 3.18.1 4.16.0 3.18.2 4.17.0 3.19.0 4.17.1 3.19.1 4.18.0 3.19.2 4.18.1 3.19.3 4.19.0 3.2.0 4.2.0 3.2.1 4.20.0 3.2.2 4.20.1 3.2.3 4.20.2 3.2.4 4.21.0 3.2.5 4.22.0 3.20.0 4.22.1 3.21.0 4.22.2 3.21.1 4.23.0 3.22.0 4.24.0 3.23.0 4.25.0 3.23.1 4.26.0 3.23.2 4.26.1 3.24.0 4.27.0 3.25.0 4.28.0 3.25.1 4.29.0 3.26.0 4.3.0 3.26.1 4.3.1 3.27.0 4.30.0 3.28.0 4.31.0 3.29.0 4.31.1 3.3.0 4.32.0 3.3.1 4.33.0 3.3.2 4.34.0 3.3.3 4.35.0 3.3.4 4.35.1 3.3.5 4.36.0 3.3.6 4.37.0 3.30.0 4.38.0 3.31.0 4.39.0 3.31.1 4.4.0 3.32.0 4.40.0 3.32.1 4.41.0 3.32.2 4.41.1 3.33.0 4.41.2 3.34.0 4.41.3 3.34.1 4.42.0 3.34.2 4.42.1 3.34.3 3.34.4 3.35.0 3.35.1 3.35.3 3.35.4 3.36.0 3.37.0 3.37.1 3.37.2 3.37.3 3.38.0 3.38.1 3.39.0 3.39.1 3.39.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.40.0 3.40.1 3.41.0 3.41.1 3.41.2 3.42.0 3.42.1 3.42.2 3.42.3 3.43.0 3.43.1 3.44.0 3.45.0 3.45.1 3.46.0 3.46.1 3.46.10 3.46.11 3.46.12 3.46.13 3.46.14 3.46.2 3.46.3 3.46.4 3.46.5 3.46.6 3.46.7 3.46.8 3.46.9 3.47.0 3.47.1 3.47.10 3.47.11 3.47.2 3.47.3 3.47.5 3.47.6 3.47.7 3.47.9 3.48.0 3.48.1 3.49.0 3.49.1 3.5.0 3.5.1 3.50.0 3.51.0 3.51.1 3.51.2 3.52.0 3.53.0 3.54.0 3.54.1 3.54.2 3.54.3 3.55.0 3.55.1 3.56.0 3.56.1 3.56.2 3.57.0 3.57.1 3.58.0 3.59.0 3.59.1 3.59.2 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.60.0 3.60.1 3.60.10 3.60.11 3.60.12 3.60.2 3.60.3 3.60.4 3.60.6 3.60.7 3.60.8 3.60.9 3.61.0 3.62.0 3.62.1 3.63.0 3.64.0 3.64.1 3.64.2 3.64.3 3.65.0 trunk 3.65.1 3.0.0 3.66.0 3.0.0-beta.1 3.67.0 3.0.0-beta.10 3.67.1 3.0.0-beta.11 3.68.0 3.0.0-beta.12 3.69.0 3.0.0-beta.13 3.69.1 3.0.0-beta.14 3.7.0
mailpoet / lib / Form / BlocksRenderer.php
mailpoet / lib / Form Last commit date
Block 1 week ago Listing 1 month ago RestApi 1 month ago Templates 2 years ago Util 2 months ago ApiDataSanitizer.php 2 weeks ago AssetsController.php 2 months ago BlockStylesRenderer.php 3 years ago BlockWrapperRenderer.php 3 years ago BlocksRenderer.php 1 week ago DisplayFormInWPContent.php 2 months ago FormHtmlSanitizer.php 1 month ago FormMessageController.php 4 years ago FormSaveController.php 1 year ago FormsRepository.php 1 year ago PreviewPage.php 2 months ago PreviewWidget.php 1 year ago Renderer.php 2 months ago Widget.php 2 months ago index.php 3 years ago
BlocksRenderer.php
194 lines
1 <?php // phpcs:ignore SlevomatCodingStandard.TypeHints.DeclareStrictTypes.DeclareStrictTypesMissing
2
3 namespace MailPoet\Form;
4
5 if (!defined('ABSPATH')) exit;
6
7
8 use MailPoet\Entities\FormEntity;
9 use MailPoet\Form\Block\Checkbox;
10 use MailPoet\Form\Block\Close;
11 use MailPoet\Form\Block\Column;
12 use MailPoet\Form\Block\Columns;
13 use MailPoet\Form\Block\Date;
14 use MailPoet\Form\Block\Divider;
15 use MailPoet\Form\Block\Heading;
16 use MailPoet\Form\Block\Html;
17 use MailPoet\Form\Block\Image;
18 use MailPoet\Form\Block\Paragraph;
19 use MailPoet\Form\Block\Radio;
20 use MailPoet\Form\Block\Segment;
21 use MailPoet\Form\Block\Select;
22 use MailPoet\Form\Block\Submit;
23 use MailPoet\Form\Block\Text;
24 use MailPoet\Form\Block\Textarea;
25 use MailPoet\Util\Security;
26
27 class BlocksRenderer {
28 /** @var Checkbox */
29 private $checkbox;
30
31 /** @var Close */
32 private $close;
33
34 /** @var Date */
35 private $date;
36
37 /** @var Divider */
38 private $divider;
39
40 /** @var Html */
41 private $html;
42
43 /** @var Image */
44 private $image;
45
46 /** @var Radio */
47 private $radio;
48
49 /** @var Segment */
50 private $segment;
51
52 /** @var Select */
53 private $select;
54
55 /** @var Submit */
56 private $submit;
57
58 /** @var Text */
59 private $text;
60
61 /** @var Textarea */
62 private $textarea;
63
64 /** @var Column */
65 private $column;
66
67 /** @var Columns */
68 private $columns;
69
70 /** @var Heading */
71 private $heading;
72
73 /** @var Paragraph */
74 private $paragraph;
75
76 public function __construct(
77 Checkbox $checkbox,
78 Close $close,
79 Column $column,
80 Columns $columns,
81 Date $date,
82 Divider $divider,
83 Html $html,
84 Image $image,
85 Heading $heading,
86 Paragraph $paragraph,
87 Radio $radio,
88 Segment $segment,
89 Select $select,
90 Submit $submit,
91 Text $text,
92 Textarea $textarea
93 ) {
94 $this->checkbox = $checkbox;
95 $this->close = $close;
96 $this->column = $column;
97 $this->columns = $columns;
98 $this->date = $date;
99 $this->divider = $divider;
100 $this->html = $html;
101 $this->image = $image;
102 $this->radio = $radio;
103 $this->segment = $segment;
104 $this->select = $select;
105 $this->submit = $submit;
106 $this->text = $text;
107 $this->textarea = $textarea;
108 $this->heading = $heading;
109 $this->paragraph = $paragraph;
110 }
111
112 public function renderBlock(array $block, array $formSettings, ?int $formId): string {
113 $html = '';
114 if ($formId) {
115 $formSettings['id'] = $formId;
116 }
117 // This is used to properly show validation message when
118 // the same form is rendered on a page multiple times
119 $block['validation_id'] = Security::generateRandomString();
120 switch ($block['type']) {
121 case FormEntity::HTML_BLOCK_TYPE:
122 $html .= $this->html->render($block, $formSettings);
123 break;
124
125 case FormEntity::HEADING_BLOCK_TYPE:
126 $html .= $this->heading->render($block);
127 break;
128
129 case FormEntity::IMAGE_BLOCK_TYPE:
130 $html .= $this->image->render($block);
131 break;
132
133 case FormEntity::PARAGRAPH_BLOCK_TYPE:
134 $html .= $this->paragraph->render($block);
135 break;
136
137 case FormEntity::DIVIDER_BLOCK_TYPE:
138 $html .= $this->divider->render($block);
139 break;
140
141 case FormEntity::CHECKBOX_BLOCK_TYPE:
142 $html .= $this->checkbox->render($block, $formSettings, $formId);
143 break;
144
145 case FormEntity::RADIO_BLOCK_TYPE:
146 $html .= $this->radio->render($block, $formSettings, $formId);
147 break;
148
149 case FormEntity::SEGMENT_SELECTION_BLOCK_TYPE:
150 $html .= $this->segment->render($block, $formSettings, $formId);
151 break;
152
153 case FormEntity::DATE_BLOCK_TYPE:
154 $html .= $this->date->render($block, $formSettings, $formId);
155 break;
156
157 case FormEntity::SELECT_BLOCK_TYPE:
158 $html .= $this->select->render($block, $formSettings, $formId);
159 break;
160
161 case FormEntity::TEXT_BLOCK_TYPE:
162 $html .= $this->text->render($block, $formSettings, $formId);
163 break;
164
165 case FormEntity::TEXTAREA_BLOCK_TYPE:
166 $html .= $this->textarea->render($block, $formSettings, $formId);
167 break;
168
169 case FormEntity::SUBMIT_BLOCK_TYPE:
170 $html .= $this->submit->render($block, $formSettings);
171 break;
172
173 case FormEntity::CLOSE_BLOCK_TYPE:
174 $html .= $this->close->render($block, $formSettings);
175 break;
176 }
177 return $html;
178 }
179
180 public function renderContainerBlock(array $block, string $content) {
181 $html = '';
182 switch ($block['type']) {
183 case FormEntity::COLUMNS_BLOCK_TYPE:
184 $html .= $this->columns->render($block, $content);
185 break;
186
187 case FormEntity::COLUMN_BLOCK_TYPE:
188 $html .= $this->column->render($block, $content);
189 break;
190 }
191 return $html;
192 }
193 }
194