PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / trunk
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More vtrunk
6.35 6.34 6.33.1 6.33 6.32.1 6.32 6.31 6.25 6.25.1 6.26 6.26.1 6.27 6.28 6.29 6.3 6.3.1 6.3.2 6.30 6.4 6.4.1 6.4.2 6.5 6.5.1 6.5.2 6.5.3 All 141 releases
formidable / classes / views / frm-forms / add_field_links.php

add_field_links.php in Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More trunk, at classes/views/frm-forms/add_field_links.php

250 lines 9.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) {
3 die( 'You are not allowed to call this page directly.' );
4 }
5 ?>
6 <div class="frm-right-panel frm-settings-panel frm-scrollbar-wrapper">
7 <div class="frm_field_list">
8 <div class="frm-style-tabs-wrapper">
9 <div class="frm-tabs-delimiter">
10 <span class="frm-tabs-active-underline"></span>
11 </div>
12
13 <div class="frm-tabs-navs">
14 <ul class="frm-flex-box">
15 <li class="frm-active">
16 <a href="#frm-insert-fields" id="frm_insert_fields_tab">
17 <?php esc_html_e( 'Add Fields', 'formidable' ); ?>
18 </a>
19 </li>
20 <li class="hide-if-no-js">
21 <a href="#frm-options-panel" id="frm-options-panel-tab">
22 <?php esc_html_e( 'Field Options', 'formidable' ); ?>
23 </a>
24 </li>
25 <?php do_action( 'frm_extra_form_instruction_tabs' ); ?>
26 </ul>
27 </div>
28
29 <div class="frm-tabs-container">
30 <div class="frm-tabs-slide-track frm-flex-box">
31 <div class="frm-active">
32 <div id="frm-insert-fields" class="tabs-panel">
33 <?php
34 FrmAppHelper::show_search_box(
35 array(
36 'input_id' => 'field-list',
37 'placeholder' => __( 'Search Fields', 'formidable' ),
38 'tosearch' => 'frmbutton',
39 )
40 );
41 ?>
42 <ul class="field_type_list frm_grid_container">
43 <?php
44 $field_sections = array();
45
46 foreach ( $frm_field_selection as $field_key => $field_type ) {
47 if ( ! is_array( $field_type ) ) {
48 continue;
49 }
50
51 // Skip showing field if it's in a section.
52 if ( isset( $field_type['section'] ) ) {
53 if ( ! isset( $field_sections[ $field_type['section'] ] ) ) {
54 $field_sections[ $field_type['section'] ] = array();
55 }
56
57 // Mark this field as available when showing in later sections.
58 $field_type['is_available'] = true;
59
60 $field_sections[ $field_type['section'] ][ $field_key ] = $field_type;
61 continue;
62 }
63
64 $field_type['key'] = $field_key;
65 FrmFieldsHelper::show_add_field_link( $field_type );
66 unset( $field_key, $field_type );
67 }//end foreach
68 ?>
69 </ul>
70 <div class="clear"></div>
71 <?php
72 FrmTipsHelper::pro_tip( 'get_builder_tip' );
73
74 $no_allow_class = apply_filters( 'frm_noallow_class', 'frm_noallow' );
75
76 if ( $no_allow_class === 'frm_noallow' ) {
77 $no_allow_class .= ' frm_show_upgrade';
78 }
79
80 $pro_fields = FrmField::pro_field_selection();
81
82 FrmField::remove_moved_field_types_from_pro( $pro_fields );
83
84 foreach ( $pro_fields as $field_key => $field_type ) {
85 if ( ! is_array( $field_type ) || ! isset( $field_type['section'] ) ) {
86 continue;
87 }
88
89 if ( ! isset( $field_sections[ $field_type['section'] ] ) ) {
90 $field_sections[ $field_type['section'] ] = array();
91 }
92 $field_sections[ $field_type['section'] ][ $field_key ] = $field_type;
93 }
94
95 $section_labels = FrmField::field_section_labels();
96
97 foreach ( $field_sections as $section => $section_fields ) {
98 ?>
99 <h3 class="frm-with-line">
100 <span><?php echo esc_html( $section_labels[ $section ] ?? ucwords( $section ) ); ?></span>
101 <span style="padding-left: 0;">
102 <?php
103 if ( ! FrmAppHelper::pro_is_installed() ) {
104 FrmAppHelper::show_pill_text();
105 }
106 ?>
107 </span>
108 </h3>
109 <ul class="field_type_list frm_grid_container">
110 <?php
111 foreach ( $section_fields as $field_key => $field_type ) {
112 if ( ! empty( $field_type['is_available'] ) ) {
113 $field_type['key'] = $field_key;
114 FrmFieldsHelper::show_add_field_link( $field_type );
115 } else {
116 FrmFieldsHelper::show_add_field_buttons( compact( 'field_key', 'field_type', 'id', 'no_allow_class' ) );
117 }
118 unset( $field_key, $field_type );
119 }
120 ?>
121 </ul>
122 <div class="clear"></div>
123 <?php
124 }//end foreach
125 ?>
126
127 <h3 class="frm-with-line">
128 <span><?php esc_html_e( 'Advanced Fields', 'formidable' ); ?></span>
129 </h3>
130 <ul class="field_type_list frm_grid_container">
131 <?php
132 foreach ( $pro_fields as $field_key => $field_type ) {
133 if ( isset( $field_type['section'] ) ) {
134 continue;
135 }
136
137 if ( is_array( $field_type ) && isset( $field_type['switch_from'] ) ) {
138 continue;
139 }
140
141 if ( is_array( $field_type ) && isset( $field_type['types'] ) ) {
142 _deprecated_argument( 'Field with sub types', '4.0' );
143 $field_label = $field_type['name'];
144 ?>
145 <li class="frmbutton frm6 <?php echo esc_attr( $no_allow_class . ' frm_t' . $field_key ); ?> dropdown" id="<?php echo esc_attr( $field_key ); ?>">
146 <a href="#" id="frm-<?php echo esc_attr( $field_key ); ?>Drop" class="frm-dropdown-toggle" data-toggle="dropdown" title="<?php echo esc_attr( $field_label ); ?>" role="button" aria-label="<?php echo esc_attr( $field_label ); ?>">
147 <?php FrmAppHelper::icon_by_class( FrmFormsHelper::get_field_link_icon( $field_type ) ); ?>
148 <span><?php echo esc_html( $field_label ); ?> <b class="caret"></b></span>
149 </a>
150
151 <ul class="frm-dropdown-menu" role="menu" aria-labelledby="frm-<?php echo esc_attr( $field_key ); ?>Drop">
152 <?php foreach ( $field_type['types'] as $k => $type ) { ?>
153 <li class="frm_t<?php echo esc_attr( $field_key ); ?>" id="<?php echo esc_attr( $field_key ); ?>|<?php echo esc_attr( $k ); ?>">
154 <?php FrmAppHelper::kses_echo( apply_filters( 'frmpro_field_links', $type, $id, $field_key . '|' . $k ), array( 'a', 'i', 'span' ) ); ?>
155 </li>
156 <?php
157 unset( $k, $type );
158 }
159 ?>
160 </ul>
161 </li>
162 <?php
163 } else {
164 FrmFieldsHelper::show_add_field_buttons( compact( 'field_key', 'field_type', 'id', 'no_allow_class' ) );
165 }//end if
166
167 unset( $field_key, $field_type, $field_label );
168 }//end foreach
169 ?>
170 </ul>
171 <div class="clear"></div>
172 </div>
173 <?php do_action( 'frm_extra_form_instructions' ); ?>
174 </div>
175
176 <div>
177 <div id="frm-options-panel" class="tabs-panel">
178 <div class="frm-single-settings">
179 <div class="frm-embed-field-placeholder">
180 <div class="frm-embed-message">
181 <img src="<?php echo esc_url( FrmAppHelper::plugin_url() . '/images/page-skeleton/empty-state.svg' ); ?>" alt="<?php esc_attr_e( 'Empty State', 'formidable' ); ?>" />
182 <span><?php esc_html_e( 'Select a field to see the options', 'formidable' ); ?></span>
183 <button type="button" id="frm-form-add-field" class="frm-button-secondary frm-cursor-pointer frm-mt-xs">
184 <?php FrmAppHelper::icon_by_class( 'frmfont frm_plus_icon', array( 'aria-label' => __( 'Add Fields', 'formidable' ) ) ); ?>
185 <span><?php esc_html_e( 'Add Fields', 'formidable' ); ?></span>
186 </button>
187 </div>
188 </div>
189 </div>
190 <form method="post" id="new_fields">
191 <input type="hidden" name="frm_action" value="update" />
192 <input type="hidden" name="action" value="update" />
193 <input type="hidden" name="id" id="form_id" value="<?php echo esc_attr( $values['id'] ); ?>" />
194 <input type="hidden" name="draft_fields" id="draft_fields" value="<?php echo esc_attr( implode( ',', FrmFieldsHelper::get_all_draft_field_ids( $values['id'] ) ) ); ?>" />
195 <?php wp_nonce_field( 'frm_save_form_nonce', 'frm_save_form' ); ?>
196 <input type="hidden" id="frm-end-form-marker" name="frm_end" value="1" />
197
198 <?php
199 FrmFieldsHelper::inline_modal(
200 array(
201 'callback' => array( 'FrmFieldsHelper', 'smart_values' ),
202 'id' => 'frm-smart-values-box',
203 'dismiss-icon' => false,
204 )
205 );
206
207 FrmFieldsHelper::inline_modal(
208 array(
209 'callback' => array( 'FrmFieldsHelper', 'layout_classes' ),
210 'id' => 'frm-layout-classes-box',
211 'dismiss-icon' => false,
212 )
213 );
214
215 FrmFieldsHelper::inline_modal(
216 array(
217 'callback' => array( 'FrmFieldsHelper', 'input_mask' ),
218 'id' => 'frm-input-mask-box',
219 'dismiss-icon' => false,
220 )
221 );
222 ?>
223 </form>
224 </div>
225 </div>
226 <?php
227 if ( isset( $form ) ) {
228 /**
229 * Hook in so people can include additional tab content.
230 * Used along with frm_extra_form_instruction_tabs which is used to
231 * include the tabs.
232 *
233 * @since 6.31
234 *
235 * @param stdClass $form The form object.
236 */
237 do_action( 'frm_extra_form_instruction_tabs_content', $form );
238 }
239 ?>
240 </div>
241 </div>
242 </div>
243 </div>
244
245 <form method="post" id="frm_js_build_form">
246 <input type="hidden" id="frm_compact_fields" name="frm_compact_fields" value="" />
247 <button class="frm_submit_form frm_submit_<?php echo esc_attr( ! empty( $values['ajax_load'] ) ? '' : 'no_' ); ?>ajax frm_hidden frm_button_submit" type="button" id="frm_submit_side"><?php esc_html_e( 'Update', 'formidable' ); ?></button>
248 </form>
249 </div>
250