PluginProbe
The Innovative Form Builder – IvyForms / 1.5.1
The Innovative Form Builder – IvyForms v1.5.1
1.5.1 1.5 1.4.1 1.4 trunk 0.1.2 0.2 0.2.1 0.3 0.3.1 0.4 0.5 0.6 0.6.1 0.6.1-backup 0.6.1.1 0.7 0.8 0.8.1 0.8.2 0.9 0.9.1 1.0 1.1 1.1.1 All 27 releases
ivyforms / backend / src / Services / Form / Style / FormTextStyleGenerator.php

FormTextStyleGenerator.php in The Innovative Form Builder – IvyForms 1.5.1, at backend/src/Services/Form/Style/FormTextStyleGenerator.php

134 lines 4.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * @copyright © Melograno Venture Studio. All rights reserved.
5 * @licence See LICENCE.md for license details.
6 */
7
8 namespace IvyForms\Services\Form\Style;
9
10 // phpcs:disable PSR1.Files.SideEffects
11
12 if (!defined('ABSPATH')) {
13 exit; // Exit if accessed directly
14 }
15
16 /**
17 * Class FormTextStyleGenerator
18 *
19 * Generates CSS for form title and description
20 *
21 * @package IvyForms\Services\Form\StyleHelpers
22 */
23 class FormTextStyleGenerator implements StyleGeneratorInterface
24 {
25 /**
26 * Generate form title and description styles
27 *
28 * @param CssBuilder $css
29 * @param StyleContext $context
30 * @return void
31 */
32 public function generate(CssBuilder $css, StyleContext $context): void
33 {
34 $this->addFormTitleStyles($css, $context);
35 $this->addFormDescriptionStyles($css, $context);
36 }
37
38 /**
39 * Add form title styles
40 *
41 * @param CssBuilder $css
42 * @param StyleContext $context
43 * @return void
44 */
45 private function addFormTitleStyles(CssBuilder $css, StyleContext $context): void
46 {
47 $styleSettings = $context->getStyleSettings();
48 $advanced = $styleSettings['advancedMode'] ?? [];
49 $titleData = $advanced['formTitle'] ?? ($styleSettings['formTitle'] ?? []);
50 $activeColors = $context->getActiveColors();
51 $activeStyles = $context->getActiveStyles();
52 $styles = [];
53
54 if (!empty($titleData['fontSize'])) {
55 $styles[] = ' font-size: ' . esc_attr($titleData['fontSize']) . ';';
56 }
57
58 if (!empty($activeColors['formTitleColor'])) {
59 $styles[] = ' color: ' . esc_attr($activeColors['formTitleColor']) . ' !important;';
60 }
61
62 if (!empty($titleData['fontWeight'])) {
63 $styles[] = ' font-weight: ' . esc_attr($titleData['fontWeight']) . ';';
64 }
65
66 // Add padding styles
67 $paddingLeftRight = $activeStyles['formTitlePaddingLeftRight'] ?? ($titleData['paddingLeftRight'] ?? null);
68 if (!empty($paddingLeftRight)) {
69 $styles[] = ' padding-left: ' . esc_attr($paddingLeftRight) . ';';
70 $styles[] = ' padding-right: ' . esc_attr($paddingLeftRight) . ';';
71 }
72
73 $paddingTopBottom = $activeStyles['formTitlePaddingTopBottom'] ?? ($titleData['paddingTopBottom'] ?? null);
74 if (!empty($paddingTopBottom)) {
75 $styles[] = ' padding-top: ' . esc_attr($paddingTopBottom) . ';';
76 $styles[] = ' padding-bottom: ' . esc_attr($paddingTopBottom) . ';';
77 }
78
79 if (!empty($styles)) {
80 $selector = $context->getBaseSelector() . ' .ivyforms-form-title-' . $context->getFormId();
81 $css->addRule($selector, $styles);
82 }
83 }
84
85 /**
86 * Add form description styles
87 *
88 * @param CssBuilder $css
89 * @param StyleContext $context
90 * @return void
91 */
92 private function addFormDescriptionStyles(CssBuilder $css, StyleContext $context): void
93 {
94 $styleSettings = $context->getStyleSettings();
95 $advanced = $styleSettings['advancedMode'] ?? [];
96 $descData = $advanced['formDescription'] ?? ($styleSettings['formDescription'] ?? []);
97 $activeColors = $context->getActiveColors();
98 $activeStyles = $context->getActiveStyles();
99 $styles = [];
100
101 if (!empty($descData['fontSize'])) {
102 $styles[] = ' font-size: ' . esc_attr($descData['fontSize']) . ';';
103 }
104
105 if (!empty($activeColors['formDescriptionColor'])) {
106 $styles[] = ' color: ' . esc_attr($activeColors['formDescriptionColor']) . ' !important;';
107 }
108
109 if (!empty($descData['fontWeight'])) {
110 $styles[] = ' font-weight: ' . esc_attr($descData['fontWeight']) . ';';
111 }
112
113 // Add padding styles
114 $paddingLeftRight = $activeStyles['formDescriptionPaddingLeftRight']
115 ?? ($descData['paddingLeftRight'] ?? null);
116 if (!empty($paddingLeftRight)) {
117 $styles[] = ' padding-left: ' . esc_attr($paddingLeftRight) . ';';
118 $styles[] = ' padding-right: ' . esc_attr($paddingLeftRight) . ';';
119 }
120
121 $paddingTopBottom = $activeStyles['formDescriptionPaddingTopBottom']
122 ?? ($descData['paddingTopBottom'] ?? null);
123 if (!empty($paddingTopBottom)) {
124 $styles[] = ' padding-top: ' . esc_attr($paddingTopBottom) . ';';
125 $styles[] = ' padding-bottom: ' . esc_attr($paddingTopBottom) . ';';
126 }
127
128 if (!empty($styles)) {
129 $selector = $context->getBaseSelector() . ' .ivyforms-form-description-' . $context->getFormId();
130 $css->addRule($selector, $styles);
131 }
132 }
133 }
134