PluginProbe ʕ •ᴥ•ʔ
MailPoet – Newsletters, Email Marketing, and Automation / 5.36.1
MailPoet – Newsletters, Email Marketing, and Automation v5.36.1
5.36.1 5.36.0 5.35.1 5.35.0 5.34.3 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 month ago Listing 2 months ago RestApi 2 months ago Templates 1 month ago Util 1 month ago ApiDataSanitizer.php 1 month ago AssetsController.php 1 month ago BlockStylesRenderer.php 3 years ago BlockWrapperRenderer.php 3 years ago BlocksRenderer.php 1 week ago DisplayFormInWPContent.php 3 months ago FormHtmlSanitizer.php 2 months ago FormMessageController.php 4 years ago FormSaveController.php 2 years ago FormsRepository.php 1 year ago PreviewPage.php 3 months ago PreviewWidget.php 1 year ago Renderer.php 3 months ago Widget.php 3 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