PluginProbe
Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder / 6.2.14
Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder v6.2.14
6.2.14 6.2.13 6.2.12 6.2.10 6.2.11 6.2.9 6.2.8 6.2.7 6.2.6 6.2.5 6.2.4 6.2.3 6.2.2 3.6.22 3.6.31 3.6.40 3.6.41 3.6.42 3.6.50 3.6.51 3.6.60 3.6.61 3.6.62 3.6.64 3.6.65 All 196 releases
← All changes | app/Services/FormBuilder/Components/Container.php +57 -44 3.6.516.2.14 View file →
@@ -5,65 +5,78 @@
5 5 use FluentForm\Framework\Helpers\ArrayHelper;
6 6
7 7 class Container extends BaseComponent
8 8 {
9 - /**
10 - * Max columns for container
11 - * @var integer
12 - */
13 - protected $maxColumns = 12;
9 + /**
10 + * Max columns for container
11 + *
12 + * @var integer
13 + */
14 + protected $maxColumns = 12;
14 15
15 - /**
16 - * Container column class
17 - * @var string
18 - */
19 - protected $columnClass = 'ff-t-cell';
16 + /**
17 + * Container column class
18 + *
19 + * @var string
20 + */
21 + protected $columnClass = 'ff-t-cell';
20 22
21 - /**
22 - * Container wrapper class
23 - * @var string
24 - */
25 - protected $wrapperClass = 'ff-t-container ff-column-container';
23 + /**
24 + * Container wrapper class
25 + *
26 + * @var string
27 + */
28 + protected $wrapperClass = 'ff-t-container ff-column-container';
26 29
27 - /**
28 - * Compile and echo the html element
29 - * @param array $data [element data]
30 - * @param stdClass $form [Form Object]
31 - * @return viod
32 - */
33 - public function compile($data, $form)
34 - {
30 + /**
31 + * Compile and echo the html element
32 + *
33 + * @param array $data [element data]
34 + * @param \stdClass $form [Form Object]
35 + *
36 + * @return void
37 + */
38 + public function compile($data, $form)
39 + {
35 40 $elementName = $data['element'];
36 - $data = apply_filters('fluenform_rendering_field_data_'.$elementName, $data, $form);
41 +
37 42
43 + $data = apply_filters('fluentform/rendering_field_data_' . $elementName, $data, $form);
44 +
38 45 $containerClass = ArrayHelper::get($data, 'settings.container_class');
39 46
40 -
41 47 $hasConditions = $this->hasConditions($data) ? 'has-conditions ' : '';
42 - $containerClass .= ' '.$hasConditions;
48 + $containerClass .= ' ' . $hasConditions;
43 49
44 - $container_css_class = $this->wrapperClass.' ff_columns_total_'.count($data['columns']);
45 - if($containerClass) {
46 - $container_css_class = $container_css_class.' '.strip_tags($containerClass);
50 + $container_css_class = $this->wrapperClass . ' ff_columns_total_' . count($data['columns']);
51 + if ($containerClass) {
52 + $container_css_class = $container_css_class . ' ' . wp_strip_all_tags($containerClass);
47 53 }
48 54
49 55 $atts = $this->buildAttributes(
50 - \FluentForm\Framework\Helpers\ArrayHelper::except($data['attributes'], 'name')
56 + ArrayHelper::except($data['attributes'], 'name')
51 57 );
52 58
53 59 $columnClass = $this->columnClass;
54 - echo "<div ".$atts." class='".$container_css_class."'>";
55 - if (isset($data['settings']['label'])) {
56 - echo "<strong>{$data['settings']['label']}</strong>";
60 + echo '<div ' . $atts . " class='" . esc_attr($container_css_class) . "'>"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $atts is escaped before being passed in.
61 + if (isset($data['settings']['label'])) {
62 + echo '<strong>' . fluentform_sanitize_html($data['settings']['label']) . '</strong>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Escaped using fluentform_sanitize_html
57 63 }
58 - foreach ($data['columns'] as $columnIndex => $column) {
59 - $newColumnClass = $columnClass.' ff-t-column-'.($columnIndex + 1);
60 - echo "<div class='{$newColumnClass}'>";
61 - foreach ($column['fields'] as $item) {
62 - $item = apply_filters('fluentform_before_render_item', $item, $form);
63 - do_action('fluentform_render_item_'.$item['element'], $item, $form);
64 - }
65 - echo "</div>";
66 - }
67 - echo "</div>";
68 - }
64 + foreach ($data['columns'] as $columnIndex => $column) {
65 + if (! isset($column['width'])) {
66 + $column['width'] = ceil(100 / count($data['columns']));
67 + }
68 +
69 + $newColumnClass = $columnClass . ' ff-t-column-' . ($columnIndex + 1);
70 + echo "<div class='" . esc_attr($newColumnClass) . "' style='flex-basis: " . esc_attr($column['width']) . "%;'>";
71 +
72 + foreach ($column['fields'] as $item) {
73 +
74 + $item = apply_filters('fluentform/before_render_item', $item, $form);
75 +
76 + do_action('fluentform/render_item_' . $item['element'], $item, $form);
77 + }
78 + echo '</div>';
79 + }
80 + echo '</div>';
81 + }
69 82 }