PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 1.2.5
JetFormBuilder — Dynamic Blocks Form Builder v1.2.5
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 / repeater-field-render.php
jetformbuilder / includes / blocks / render Last commit date
base-select-radio-check.php 4 years ago base.php 4 years ago calculated-field-render.php 4 years ago checkbox-field-render.php 4 years ago conditional-block-render.php 4 years ago date-field-render.php 4 years ago datetime-field-render.php 4 years ago form-break-field-render.php 4 years ago form-builder.php 4 years ago group-break-field-render.php 4 years ago heading-field-render.php 4 years ago hidden-field-render.php 4 years ago media-field-render.php 4 years ago number-field-render.php 4 years ago radio-field-render.php 4 years ago range-field-render.php 4 years ago repeater-field-render.php 4 years ago select-field-render.php 4 years ago submit-field-render.php 4 years ago text-field-render.php 4 years ago textarea-field-render.php 4 years ago time-field-render.php 4 years ago wysiwyg-field-render.php 4 years ago
repeater-field-render.php
124 lines
1 <?php
2
3 namespace Jet_Form_Builder\Blocks\Render;
4
5 // If this file is called directly, abort.
6 use Jet_Form_Builder\Live_Form;
7 use Jet_Form_Builder\Plugin;
8
9 if ( ! defined( 'WPINC' ) ) {
10 die;
11 }
12
13 /**
14 * Define text field renderer class
15 */
16 class Repeater_Field_Render extends Base {
17
18 public $current_repeater_i = false;
19 public $current_repeater;
20
21 public function get_name() {
22 return 'repeater-field';
23 }
24
25 public function render( $wp_block = null, $template = null ) {
26 if ( empty( $wp_block['innerBlocks'] ) ) {
27 return;
28 }
29
30 $this->current_repeater = $this->block_type->block_attrs;
31 $this->add_attribute( 'class', 'jet-form-builder-repeater jet-form-builder__field' );
32 $this->add_attribute( 'class', $this->maybe_get_error_class( $this->block_type->block_attrs ) );
33 $this->add_attribute( 'class', $this->block_type->block_attrs['class_name'] );
34
35 $template = sprintf(
36 '<template class="jet-form-builder-repeater__initial">%1$s</template>',
37 $this->render_repeater_row( $wp_block, false )
38 );
39
40 $html = '<div class="jet-form-builder__field-wrap">';
41
42 $html .= sprintf(
43 '<div %5$s data-repeater="1"
44 data-field-name="%1$s" name="%1$s" data-settings="%2$s" %3$s>%4$s',
45 $this->block_type->block_attrs['name'],
46 $this->block_type->settings,
47 $this->block_type->calc_dataset,
48 $template,
49 $this->get_attributes_string()
50 );
51
52 $html .= '<div class="jet-form-builder-repeater__items">';
53
54 if ( ! empty( $this->current_repeater['default'] ) && is_array( $this->current_repeater['default'] ) ) {
55 $i = 0;
56 foreach ( $this->current_repeater['default'] as $item ) {
57 $this->current_repeater['values'] = $item;
58 $html .= $this->render_repeater_row( $wp_block, $i );
59 $i ++;
60 }
61 $this->current_repeater['values'] = false;
62 }
63
64 $html .= '</div>';
65
66 if ( 'manually' === $this->block_type->manage_items ) {
67 $html .= sprintf(
68 '<div class="jet-form-builder-repeater__actions">
69 <button type="button" class="jet-form-builder-repeater__new">%1$s</button>
70 </div>',
71 $this->block_type->new_item_label
72 );
73 }
74
75 $html .= '</div>';
76 $html .= $this->maybe_render_error( $this->block_type->block_attrs );
77 $html .= '</div>';
78
79 $this->current_repeater = false;
80
81 return parent::render( null, $html );
82 }
83
84 /**
85 * Render current repeater row
86 *
87 * @param $wp_block
88 * @param bool $index
89 *
90 * @return string
91 */
92 public function render_repeater_row( $wp_block, $index = false ) {
93
94 if ( false !== $index ) {
95 $this->current_repeater_i = $index;
96 } else {
97 $index = 0;
98 }
99
100 $html = '<div class="jet-form-builder-repeater__row" data-repeater-row="1" data-index="' . $index . '"' . $this->block_type->calc_dataset . '>';
101 $html .= '<div class="jet-form-builder-repeater__row-fields">';
102
103 Live_Form::instance()->set_repeater( $this->current_repeater, $this->current_repeater_i );
104
105 foreach ( $wp_block['innerBlocks'] as $block ) {
106 $html .= render_block( $block );
107 }
108
109 $html .= '</div>';
110
111 Live_Form::instance()->set_repeater( false );
112
113 if ( 'manually' === $this->block_type->manage_items ) {
114 $html .= '<div class="jet-form-builder-repeater__row-remove">';
115 $html .= '<button type="button" class="jet-form-builder-repeater__remove">&times;</button>';
116 $html .= '</div>';
117 }
118
119 return $html . '</div>';
120 }
121
122
123 }
124