← All changes
|
app/Services/FormBuilder/Components/Container.php
+57
-44
3.6.51
→
6.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 | } |