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 / BlockStylesRenderer.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
BlockStylesRenderer.php
121 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\WP\Functions as WPFunctions;
9
10 class BlockStylesRenderer {
11 /** @var WPFunctions */
12 private $wp;
13
14 public function __construct(
15 WPFunctions $wp
16 ) {
17 $this->wp = $wp;
18 }
19
20 public function renderForTextInput(array $styles, array $formSettings = []): string {
21 $rules = [];
22 if (isset($styles['full_width']) && intval($styles['full_width'])) {
23 $rules[] = 'width:100%;';
24 $rules[] = 'box-sizing:border-box;'; // to avoid a larger width increased by padding
25 }
26 if (isset($styles['background_color']) && empty($styles['gradient'])) {
27 $rules[] = "background-color:{$styles['background_color']};";
28 }
29 if (isset($styles['border_size']) || isset($styles['border_radius']) || isset($styles['border_color'])) {
30 $rules[] = "border-style:solid;";
31 }
32 if (isset($styles['border_radius'])) {
33 $rules[] = "border-radius:" . intval($styles['border_radius']) . "px !important;";
34 }
35 if (isset($styles['border_size'])) {
36 $rules[] = "border-width:" . intval($styles['border_size']) . "px;";
37 }
38 if (isset($styles['border_color'])) {
39 $rules[] = "border-color:{$styles['border_color']};";
40 }
41 if (isset($styles['padding'])) {
42 $rules[] = "padding:{$styles['padding']}px;";
43 } elseif (isset($formSettings['input_padding'])) {
44 $rules[] = "padding:{$formSettings['input_padding']}px;";
45 }
46 if (isset($formSettings['alignment'])) {
47 $rules[] = $this->convertAlignmentToMargin($formSettings['alignment']);
48 }
49 if (isset($styles['font_family'])) {
50 $rules[] = "font-family:'{$styles['font_family']}';" ;
51 } elseif (isset($formSettings['font_family'])) {
52 $rules[] = "font-family:'{$formSettings['font_family']}';" ;
53 }
54 if (isset($styles['font_size'])) {
55 $rules[] = "font-size:" . $styles['font_size'] . (is_numeric($styles['font_size']) ? "px;" : ";");
56 }
57 if (isset($formSettings['fontSize']) && !isset($styles['font_size'])) {
58 $rules[] = "font-size:" . $formSettings['fontSize'] . (is_numeric($formSettings['fontSize']) ? "px;" : ";");
59 }
60 if (isset($formSettings['fontSize']) || isset($styles['font_size'])) {
61 $rules[] = "line-height:1.5;";
62 $rules[] = "height:auto;";
63 }
64 if (isset($styles['font_color'])) {
65 $rules[] = "color:{$styles['font_color']};";
66 }
67 return implode('', $rules);
68 }
69
70 public function renderForButton(array $styles, array $formSettings = []): string {
71 $rules = [];
72 if (!isset($styles['border_color'])) {
73 $rules[] = "border-color:transparent;";
74 }
75 if (!empty($styles['gradient'])) {
76 $rules[] = "background: {$styles['gradient']};";
77 }
78 if (isset($styles['bold']) && $styles['bold'] === '1') {
79 $rules[] = "font-weight:bold;";
80 }
81 return $this->renderForTextInput($styles, $formSettings) . implode('', $rules);
82 }
83
84 public function renderForSelect(array $styles, array $formSettings = []): string {
85 $rules = [];
86 if (isset($formSettings['input_padding'])) {
87 $rules[] = "padding:{$formSettings['input_padding']}px;";
88 }
89 if (isset($formSettings['alignment'])) {
90 $rules[] = $this->convertAlignmentToMargin($formSettings['alignment']);
91 }
92 return implode('', $rules);
93 }
94
95 private function convertAlignmentToMargin(string $alignment): string {
96 if ($alignment === 'right') {
97 return 'margin: 0 0 0 auto;';
98 }
99 if ($alignment === 'center') {
100 return 'margin: 0 auto;';
101 }
102 return 'margin: 0 auto 0 0;';
103 }
104
105 public function renderPlaceholderStyles(array $block, string $selector): string {
106 if (
107 isset($block['params']['label_within'])
108 && $block['params']['label_within']
109 && isset($block['styles']['font_color'])
110 ) {
111 return '<style>'
112 . $selector . '::placeholder{'
113 . 'color:' . $this->wp->escAttr($block['styles']['font_color']) . ';'
114 . 'opacity: 1;'
115 . '}'
116 . '</style>';
117 }
118 return '';
119 }
120 }
121