PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 3.1.1
JetFormBuilder — Dynamic Blocks Form Builder v3.1.1
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 / classes / builder-helper.php
jetformbuilder / includes / classes Last commit date
arguments 2 years ago arrayable 2 years ago filters 2 years ago http 2 years ago macro-constants 2 years ago post 2 years ago resources 2 years ago theme 2 years ago attributes-trait.php 2 years ago base-attributes-trait.php 2 years ago builder-helper.php 2 years ago compatibility.php 2 years ago date-tools.php 2 years ago gallery.php 2 years ago get-icon-trait.php 2 years ago get-template-trait.php 2 years ago html-attributes-trait.php 2 years ago instance-trait.php 2 years ago macros-parser.php 2 years ago regexp-tools.php 2 years ago tools.php 2 years ago
builder-helper.php
185 lines
1 <?php
2
3
4 namespace Jet_Form_Builder\Classes;
5
6 use Jet_Form_Builder\Blocks\Module;
7 use Jet_Form_Builder\Plugin;
8
9 if ( ! defined( 'WPINC' ) ) {
10 die;
11 }
12
13 class Builder_Helper {
14
15 private static $html_ids = array();
16
17 private static $styled_form_ids = array();
18
19 /**
20 * @param $object_id
21 * @param $args
22 * @param false $checked
23 *
24 * @return string
25 */
26 public function get_custom_template( $object_id, $args, $checked = false ) {
27 if ( ! Compatibility::has_jet_engine() ) {
28 return __( 'Please install JetEngine', 'jet-form-builder' ) . '<br>';
29 }
30
31 $listing_id = ! empty( $args['custom_item_template_id'] ) ? $args['custom_item_template_id'] : false;
32 $listing_id = absint( $listing_id );
33
34 if ( ! $listing_id ) {
35 return __( 'Please select template', 'jet-form-builder' ) . '<br>';
36 }
37
38 global $wp_query;
39 $default_object = $wp_query->queried_object;
40
41 $options_from = ! empty( $args['field_options_from'] ) ? $args['field_options_from'] : 'posts';
42
43 if ( 'terms' === $options_from ) {
44 $object = get_term( $object_id );
45 } else {
46 $object = get_post( $object_id );
47 }
48
49 $classes = array(
50 'jet-form-builder__field-template',
51 'jet-listing-dynamic-post-' . $object_id,
52 );
53
54 if ( $checked ) {
55 $classes[] = 'jet-form-builder__field-template--checked';
56 }
57
58 $wp_query->queried_object = $object;
59 jet_engine()->listings->data->set_current_object( $object );
60
61 jet_engine()->frontend->set_listing( $listing_id );
62
63 ob_start();
64 $content = jet_engine()->frontend->get_listing_item( $object );
65
66 $content .= ob_get_clean();
67
68 wp_enqueue_script( Module::LISTING_OPTIONS_HANDLE );
69
70 $result = sprintf(
71 '<div class="%3$s" data-value="%1$d">%2$s</div>',
72 esc_attr( $object_id ),
73 apply_filters( 'jet-form-builder/custom-template-content', $content, $object_id, $listing_id ),
74 join( ' ', $classes )
75 );
76
77 $wp_query->queried_object = $default_object;
78 jet_engine()->listings->data->set_current_object( $wp_query->queried_object );
79
80 return $result;
81 }
82
83 /**
84 * @param string $html_id
85 * @param string $for_html
86 *
87 * @return string
88 */
89 public static function get_unique_id( string $html_id, string $for_html = 'input' ): string {
90 if ( ! array_key_exists( $html_id, self::$html_ids ) ) {
91 self::$html_ids[ $html_id ] = array();
92 }
93
94 if ( ! isset( self::$html_ids[ $html_id ][ $for_html ] ) ) {
95 self::$html_ids[ $html_id ][ $for_html ] = 0;
96
97 return $html_id;
98 }
99
100 return sprintf( '%1$s_%2$d', $html_id, ++ self::$html_ids[ $html_id ][ $for_html ] );
101 }
102
103 /**
104 * @since 3.1.0 Add support for WP 5.6
105 * @since 3.0.3
106 *
107 * @see https://github.com/Crocoblock/issues-tracker/issues/2636
108 */
109 public static function enqueue_global_styles() {
110 // support for WP 5.6
111 if ( function_exists( 'wp_enqueue_global_styles' ) ) {
112 wp_enqueue_global_styles();
113 }
114 wp_enqueue_style( 'wp-block-library' );
115 wp_enqueue_style( 'jet-form-builder-frontend' );
116 }
117
118 /**
119 * @param string|int $form_id
120 *
121 * @since 3.0.4
122 */
123 public static function enqueue_style_form( $form_id ) {
124 if ( self::is_enqueued_form_style( $form_id ) ) {
125 return;
126 }
127
128 $form_id = absint( $form_id );
129
130 $result = wp_add_inline_style(
131 'jet-form-builder-frontend',
132 Plugin::instance()->post_type->maybe_get_jet_sm_ready_styles( $form_id )
133 );
134
135 do_action( 'jet-form-builder/enqueue-style' );
136
137 if ( $result ) {
138 self::$styled_form_ids[ $form_id ] = 1;
139 }
140 }
141
142 /**
143 * @param string|int $form_id
144 *
145 * @since 3.0.4
146 */
147 public static function is_enqueued_form_style( $form_id ): bool {
148 $form_id = absint( $form_id );
149
150 return isset( self::$styled_form_ids[ $form_id ] );
151 }
152
153 /**
154 * @since 3.1.0
155 *
156 * @param array<array<string, string>> $attributes
157 *
158 * @return string
159 */
160 public static function attrs( array $attributes ): string {
161 return implode(
162 ' ',
163 self::filter_attrs( $attributes )
164 );
165 }
166
167 /**
168 * @param array<array<string, string>> $attributes
169 *
170 * @return array
171 */
172 public static function filter_attrs( array $attributes ): array {
173 $attributes_stack = array();
174
175 foreach ( $attributes as list( $name, $value ) ) {
176 if ( ! $value ) {
177 continue;
178 }
179 $attributes_stack[] = sprintf( '%1$s="%2$s"', $name, $value );
180 }
181
182 return $attributes_stack;
183 }
184 }
185