PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 1.2.0
JetFormBuilder — Dynamic Blocks Form Builder v1.2.0
3.6.3.1 3.6.3 3.6.2.2 3.6.2.1 3.6.2 3.6.1.1 3.6.1 3.6.0.1 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.1.0 2.1.1 2.1.10 2.1.11 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 3.0.0 3.0.0.1 3.0.0.2 3.0.0.3 3.0.1 3.0.1.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.0.1 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.3.2 3.3.3 3.3.3.1 3.3.4 3.3.4.1 3.3.4.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.5.1 3.4.5.2 3.4.6 3.4.7 3.4.7.1 3.5.0 3.5.1 3.5.1.1 3.5.1.2 3.5.2 3.5.2.1 3.5.3 3.5.4 3.5.5 3.5.6 3.5.6.1 3.5.6.2 3.5.6.3 3.6.0
jetformbuilder / includes / blocks / render / base.php
jetformbuilder / includes / blocks / render Last commit date
base-select-radio-check.php 5 years ago base.php 5 years ago calculated-field-render.php 5 years ago checkbox-field-render.php 5 years ago conditional-block-render.php 5 years ago date-field-render.php 5 years ago datetime-field-render.php 5 years ago form-break-field-render.php 5 years ago form-builder.php 5 years ago group-break-field-render.php 5 years ago heading-field-render.php 5 years ago hidden-field-render.php 5 years ago media-field-render.php 5 years ago number-field-render.php 5 years ago radio-field-render.php 5 years ago range-field-render.php 5 years ago repeater-field-render.php 5 years ago select-field-render.php 5 years ago submit-field-render.php 5 years ago text-field-render.php 5 years ago textarea-field-render.php 5 years ago time-field-render.php 5 years ago wysiwyg-field-render.php 5 years ago
base.php
200 lines
1 <?php
2
3 namespace Jet_Form_Builder\Blocks\Render;
4
5
6 use Jet_Form_Builder\Blocks\Modules\Fields_Errors\Error_Handler;
7 use Jet_Form_Builder\Classes\Attributes_Trait;
8 use Jet_Form_Builder\Classes\Get_Template_Trait;
9 use Jet_Form_Builder\Classes\Tools;
10 use Jet_Form_Builder\Live_Form;
11 use Jet_Form_Builder\Plugin;
12 use Jet_Form_Builder\Presets\Preset_Manager;
13
14 // If this file is called directly, abort.
15
16 if ( ! defined( 'WPINC' ) ) {
17 die;
18 }
19
20 /**
21 * Define Base_Type class
22 */
23 abstract class Base {
24
25 use Attributes_Trait;
26 use Get_Template_Trait;
27
28 public $form_id;
29 public $block_type;
30 public $content;
31 public $live_form;
32
33 const FIELD_ERROR_CLASS = 'field-has-error';
34
35
36 public function __construct( $block_type ) {
37 $this->form_id = Live_Form::instance()->form_id;
38
39 $this->set_live_form();
40 $this->set_block_type( $block_type );
41 }
42
43 abstract public function get_name();
44
45 public function set_live_form() {
46 $this->live_form = Live_Form::instance();
47 }
48
49 public function set_block_type( $block_type ) {
50 $this->block_type = $block_type;
51 }
52
53 private function is_field( $needle ) {
54 return Plugin::instance()->form->is_field( $this->block_type->block_attrs['blockName'], $needle );
55 }
56
57 public function maybe_add_error_class( $args ) {
58 if ( $this->has_error( $args ) ) {
59 $this->add_attribute( 'class', self::FIELD_ERROR_CLASS );
60 }
61 }
62
63 public function maybe_render_error( $args ) {
64 if ( $this->has_error( $args ) ) {
65 return "<div class='error-message'>" . Error_Handler::instance()->error_by_name( $args['name'] ) . "</div>";
66 }
67
68 return '';
69 }
70
71 public function maybe_get_error_class( $args ) {
72 if ( $this->has_error( $args ) ) {
73 return self::FIELD_ERROR_CLASS;
74 }
75
76 return '';
77 }
78
79 private function has_error( $args ) {
80 return Error_Handler::instance()->has_error_by_name( $args['name'] );
81 }
82
83
84 /**
85 * Returns field label
86 *
87 * @return [type] [description]
88 */
89 public function get_field_label() {
90
91 ob_start();
92 if ( ! empty( $this->block_type->block_attrs['label'] ) && $this->label_allowed() ) {
93 $args = $this->block_type->block_attrs;
94 include $this->block_type->get_common_template( 'field-label.php' );
95 }
96
97 return ob_get_clean();
98
99 }
100
101 /**
102 * Returns field description
103 *
104 * @return [type] [description]
105 */
106 public function get_field_desc() {
107
108 ob_start();
109 if ( ! empty( $this->block_type->block_attrs['desc'] ) && $this->label_allowed() ) {
110 $args = $this->block_type->block_attrs;
111 include $this->block_type->get_common_template( 'field-description.php' );
112 }
113
114 return ob_get_clean();
115
116 }
117
118 /**
119 * Defines if this form control supports label
120 *
121 * @return [type] [description]
122 */
123 public function label_allowed() {
124 return true;
125 }
126
127 public function render( $wp_block = null, $template = null ) {
128
129 if ( ! $this->live_form->form_id ) {
130 return;
131 }
132
133 $defaults = array(
134 'default' => '',
135 'name' => '',
136 'placeholder' => '',
137 'required' => false,
138 );
139
140 $sanitized_args = array();
141
142 foreach ( $this->block_type->block_attrs as $key => $value ) {
143 $sanitized_args[ $key ] = $value;
144 }
145 $args = wp_parse_args( $sanitized_args, $defaults );
146
147 $template_name = $this->get_name();
148
149 $this->maybe_add_error_class( $args );
150
151 if ( is_null( $template ) ) {
152 $template = $this->block_type->get_field_template( $template_name . '.php' );
153 }
154
155 $label = $this->get_field_label();
156 $desc = $this->get_field_desc();
157 $layout = $this->live_form ? $this->live_form->spec_data->fields_layout : 'column';
158
159 $args = apply_filters( "jet-form-builder/render/{$args['type']}", $args, $this );
160
161 if ( 'hidden-field' === $args['type'] ) {
162 ob_start();
163 include $template;
164 $result_field = ob_get_clean();
165
166 } else if ( 'column' === $layout ) {
167 ob_start();
168 include $this->block_type->get_common_template( 'field-column.php' );
169 $result_field = ob_get_clean();
170 } else {
171 ob_start();
172 include $this->block_type->get_common_template( 'field-row.php' );
173 $result_field = ob_get_clean();
174 }
175
176 return $result_field;
177 }
178
179 public function render_disabled_message_form_break( $args ) {
180 $format = '<div class="jet-form-builder__next-page-msg" %2$s>%1$s</div>';
181
182 if ( ! empty( $args['page_break_disabled'] ) && ! Tools::is_editor() ) {
183 return sprintf( $format, $args['page_break_disabled'], '' );
184
185 } elseif ( Tools::is_editor() ) {
186
187 $message = ! empty( $args['page_break_disabled'] ) ? $args['page_break_disabled'] : 'Disabled message';
188
189 return sprintf( $format, $message, $this->get_style_attrs( array( 'display:block' ) ) );
190 }
191
192 return '';
193 }
194
195 public function get_style_attrs( $style ) {
196 return 'style=' . implode( ';', $style );
197 }
198
199 }
200