Version Description
- Add option to Import forms on the listing page and in the new form process.
- Improve performance on the settings page when default values are used in fields.
- Update the base migrator class for more flexibility.
- Fix: Prevent a few PHP warnings.
Download this release
Release Info
Developer | sswells |
Plugin | Formidable Forms – Form Builder for WordPress |
Version | 4.04.03 |
Comparing to | |
See all releases |
Code changes from version 4.04.02 to 4.04.03
- classes/controllers/FrmAddonsController.php +3 -3
- classes/controllers/FrmFieldsController.php +1 -1
- classes/helpers/FrmAppHelper.php +8 -2
- classes/helpers/FrmFieldsHelper.php +6 -2
- classes/models/FrmDb.php +6 -2
- classes/models/FrmEntry.php +1 -1
- classes/models/FrmEntryValidate.php +5 -0
- classes/models/FrmFormMigrator.php +235 -55
- classes/models/FrmStyle.php +1 -1
- classes/views/frm-entries/list.php +4 -0
- classes/views/frm-fields/back-end/smart-values.php +1 -1
- classes/views/frm-forms/list-templates.php +8 -0
- classes/views/frm-forms/list.php +3 -2
- classes/views/shared/admin-header.php +6 -1
- classes/views/xml/import_form.php +1 -0
- css/frm_admin.css +5 -0
- formidable.php +1 -1
- js/formidable.js +24 -0
- js/formidable.min.js +22 -22
- js/formidable_admin.js +23 -21
- languages/formidable.pot +510 -508
- readme.txt +233 -148
classes/controllers/FrmAddonsController.php
CHANGED
@@ -16,8 +16,8 @@ class FrmAddonsController {
|
|
16 |
if ( ! FrmAppHelper::pro_is_installed() ) {
|
17 |
add_submenu_page(
|
18 |
'formidable',
|
19 |
-
'Formidable | ' . __( 'Upgrade
|
20 |
-
'<span style="color:#fe5a1d">' . __( 'Upgrade
|
21 |
'frm_view_forms',
|
22 |
'formidable-pro-upgrade',
|
23 |
'FrmAddonsController::upgrade_to_pro'
|
@@ -85,7 +85,7 @@ class FrmAddonsController {
|
|
85 |
private static function fallback_plugin_list() {
|
86 |
return array(
|
87 |
'formidable-pro' => array(
|
88 |
-
'title' => 'Formidable
|
89 |
'link' => 'pricing/',
|
90 |
'docs' => '',
|
91 |
'excerpt' => 'Enhance your basic Formidable forms with a plethora of Pro field types and features. Create advanced forms and data-driven applications in minutes.',
|
16 |
if ( ! FrmAppHelper::pro_is_installed() ) {
|
17 |
add_submenu_page(
|
18 |
'formidable',
|
19 |
+
'Formidable | ' . __( 'Upgrade', 'formidable' ),
|
20 |
+
'<span style="color:#fe5a1d">' . __( 'Upgrade', 'formidable' ) . '</span>',
|
21 |
'frm_view_forms',
|
22 |
'formidable-pro-upgrade',
|
23 |
'FrmAddonsController::upgrade_to_pro'
|
85 |
private static function fallback_plugin_list() {
|
86 |
return array(
|
87 |
'formidable-pro' => array(
|
88 |
+
'title' => 'Formidable Forms',
|
89 |
'link' => 'pricing/',
|
90 |
'docs' => '',
|
91 |
'excerpt' => 'Enhance your basic Formidable forms with a plethora of Pro field types and features. Create advanced forms and data-driven applications in minutes.',
|
classes/controllers/FrmFieldsController.php
CHANGED
@@ -584,7 +584,7 @@ class FrmFieldsController {
|
|
584 |
$is_placeholder_field = FrmFieldsHelper::is_placeholder_field_type( $field['type'] );
|
585 |
$is_combo_field = in_array( $field['type'], array( 'address', 'credit_card' ) );
|
586 |
|
587 |
-
$placeholder = $field['placeholder'];
|
588 |
if ( empty( $placeholder ) && $is_placeholder_field && ! $is_combo_field ) {
|
589 |
$placeholder = self::get_default_value_from_name( $field );
|
590 |
}
|
584 |
$is_placeholder_field = FrmFieldsHelper::is_placeholder_field_type( $field['type'] );
|
585 |
$is_combo_field = in_array( $field['type'], array( 'address', 'credit_card' ) );
|
586 |
|
587 |
+
$placeholder = isset( $field['placeholder'] ) ? $field['placeholder'] : '';
|
588 |
if ( empty( $placeholder ) && $is_placeholder_field && ! $is_combo_field ) {
|
589 |
$placeholder = self::get_default_value_from_name( $field );
|
590 |
}
|
classes/helpers/FrmAppHelper.php
CHANGED
@@ -11,7 +11,7 @@ class FrmAppHelper {
|
|
11 |
/**
|
12 |
* @since 2.0
|
13 |
*/
|
14 |
-
public static $plug_version = '4.04.
|
15 |
|
16 |
/**
|
17 |
* @since 1.07.02
|
@@ -886,6 +886,9 @@ class FrmAppHelper {
|
|
886 |
if ( ! isset( $atts['close'] ) || empty( $atts['close'] ) ) {
|
887 |
$atts['close'] = admin_url( 'admin.php?page=formidable' );
|
888 |
}
|
|
|
|
|
|
|
889 |
|
890 |
include( self::plugin_path() . '/classes/views/shared/admin-header.php' );
|
891 |
}
|
@@ -1560,7 +1563,10 @@ class FrmAppHelper {
|
|
1560 |
private static function prepare_field_arrays( $fields, $record, array &$values, $args ) {
|
1561 |
if ( ! empty( $fields ) ) {
|
1562 |
foreach ( (array) $fields as $field ) {
|
1563 |
-
|
|
|
|
|
|
|
1564 |
$args['parent_form_id'] = isset( $args['parent_form_id'] ) ? $args['parent_form_id'] : $field->form_id;
|
1565 |
self::fill_field_defaults( $field, $record, $values, $args );
|
1566 |
}
|
11 |
/**
|
12 |
* @since 2.0
|
13 |
*/
|
14 |
+
public static $plug_version = '4.04.03';
|
15 |
|
16 |
/**
|
17 |
* @since 1.07.02
|
886 |
if ( ! isset( $atts['close'] ) || empty( $atts['close'] ) ) {
|
887 |
$atts['close'] = admin_url( 'admin.php?page=formidable' );
|
888 |
}
|
889 |
+
if ( ! isset( $atts['import_link'] ) ) {
|
890 |
+
$atts['import_link'] = false;
|
891 |
+
}
|
892 |
|
893 |
include( self::plugin_path() . '/classes/views/shared/admin-header.php' );
|
894 |
}
|
1563 |
private static function prepare_field_arrays( $fields, $record, array &$values, $args ) {
|
1564 |
if ( ! empty( $fields ) ) {
|
1565 |
foreach ( (array) $fields as $field ) {
|
1566 |
+
if ( ! self::is_admin_page() ) {
|
1567 |
+
// Don't prep default values on the form settings page.
|
1568 |
+
$field->default_value = apply_filters( 'frm_get_default_value', $field->default_value, $field, true );
|
1569 |
+
}
|
1570 |
$args['parent_form_id'] = isset( $args['parent_form_id'] ) ? $args['parent_form_id'] : $field->form_id;
|
1571 |
self::fill_field_defaults( $field, $record, $values, $args );
|
1572 |
}
|
classes/helpers/FrmFieldsHelper.php
CHANGED
@@ -1128,13 +1128,17 @@ class FrmFieldsHelper {
|
|
1128 |
* @return array $other_args
|
1129 |
*/
|
1130 |
public static function prepare_other_input( $args, &$other_opt, &$checked ) {
|
|
|
|
|
|
|
|
|
|
|
1131 |
//Check if this is an "Other" option
|
1132 |
if ( ! self::is_other_opt( $args['opt_key'] ) ) {
|
1133 |
-
return;
|
1134 |
}
|
1135 |
|
1136 |
$other_opt = true;
|
1137 |
-
$other_args = array();
|
1138 |
|
1139 |
self::set_other_name( $args, $other_args );
|
1140 |
self::set_other_value( $args, $other_args );
|
1128 |
* @return array $other_args
|
1129 |
*/
|
1130 |
public static function prepare_other_input( $args, &$other_opt, &$checked ) {
|
1131 |
+
$other_args = array(
|
1132 |
+
'name' => '',
|
1133 |
+
'value' => '',
|
1134 |
+
);
|
1135 |
+
|
1136 |
//Check if this is an "Other" option
|
1137 |
if ( ! self::is_other_opt( $args['opt_key'] ) ) {
|
1138 |
+
return $other_args;
|
1139 |
}
|
1140 |
|
1141 |
$other_opt = true;
|
|
|
1142 |
|
1143 |
self::set_other_name( $args, $other_args );
|
1144 |
self::set_other_value( $args, $other_args );
|
classes/models/FrmDb.php
CHANGED
@@ -615,7 +615,9 @@ class FrmDb {
|
|
615 |
*/
|
616 |
public static function save_json_post( $settings ) {
|
617 |
global $wp_filter;
|
618 |
-
|
|
|
|
|
619 |
|
620 |
// Remove the balanceTags filter in case WordPress is trying to validate the XHTML
|
621 |
remove_all_filters( 'content_save_pre' );
|
@@ -623,7 +625,9 @@ class FrmDb {
|
|
623 |
$post = wp_insert_post( $settings );
|
624 |
|
625 |
// add the content filters back for views or posts
|
626 |
-
|
|
|
|
|
627 |
|
628 |
return $post;
|
629 |
}
|
615 |
*/
|
616 |
public static function save_json_post( $settings ) {
|
617 |
global $wp_filter;
|
618 |
+
if ( isset( $wp_filter['content_save_pre'] ) ) {
|
619 |
+
$filters = $wp_filter['content_save_pre'];
|
620 |
+
}
|
621 |
|
622 |
// Remove the balanceTags filter in case WordPress is trying to validate the XHTML
|
623 |
remove_all_filters( 'content_save_pre' );
|
625 |
$post = wp_insert_post( $settings );
|
626 |
|
627 |
// add the content filters back for views or posts
|
628 |
+
if ( isset( $filters ) ) {
|
629 |
+
$wp_filter['content_save_pre'] = $filters;
|
630 |
+
}
|
631 |
|
632 |
return $post;
|
633 |
}
|
classes/models/FrmEntry.php
CHANGED
@@ -292,7 +292,7 @@ class FrmEntry {
|
|
292 |
public static function maybe_get_entry( &$entry ) {
|
293 |
if ( $entry && is_numeric( $entry ) ) {
|
294 |
$entry = self::getOne( $entry );
|
295 |
-
} elseif ( empty( $entry ) ) {
|
296 |
$entry = false;
|
297 |
}
|
298 |
}
|
292 |
public static function maybe_get_entry( &$entry ) {
|
293 |
if ( $entry && is_numeric( $entry ) ) {
|
294 |
$entry = self::getOne( $entry );
|
295 |
+
} elseif ( empty( $entry ) || 'false' === $entry ) {
|
296 |
$entry = false;
|
297 |
}
|
298 |
}
|
classes/models/FrmEntryValidate.php
CHANGED
@@ -79,6 +79,11 @@ class FrmEntryValidate {
|
|
79 |
|
80 |
self::maybe_clear_value_for_default_blank_setting( $posted_field, $value );
|
81 |
|
|
|
|
|
|
|
|
|
|
|
82 |
if ( ! is_array( $value ) ) {
|
83 |
$value = trim( $value );
|
84 |
}
|
79 |
|
80 |
self::maybe_clear_value_for_default_blank_setting( $posted_field, $value );
|
81 |
|
82 |
+
$should_trim = is_array( $value ) && count( $value ) == 1 && isset( $value[0] ) && $posted_field->type !== 'checkbox';
|
83 |
+
if ( $should_trim ) {
|
84 |
+
$value = reset( $value );
|
85 |
+
}
|
86 |
+
|
87 |
if ( ! is_array( $value ) ) {
|
88 |
$value = trim( $value );
|
89 |
}
|
classes/models/FrmFormMigrator.php
CHANGED
@@ -11,6 +11,10 @@ abstract class FrmFormMigrator {
|
|
11 |
public $response = array();
|
12 |
public $tracking = 'frm_forms_imported';
|
13 |
|
|
|
|
|
|
|
|
|
14 |
/**
|
15 |
* Define required properties.
|
16 |
*/
|
@@ -19,6 +23,10 @@ abstract class FrmFormMigrator {
|
|
19 |
return;
|
20 |
}
|
21 |
|
|
|
|
|
|
|
|
|
22 |
$this->source_active = is_plugin_active( $this->path );
|
23 |
if ( ! $this->source_active ) {
|
24 |
// if source plugin is not installed, do nothing
|
@@ -34,27 +42,31 @@ abstract class FrmFormMigrator {
|
|
34 |
}
|
35 |
|
36 |
private function maybe_add_to_import_page() {
|
37 |
-
|
38 |
-
add_action( $menu_name . '_page_formidable-import', array( $this, 'import_page' ), 1 );
|
39 |
add_action( 'wp_ajax_frm_import_' . $this->slug, array( $this, 'import_forms' ) );
|
40 |
}
|
41 |
|
42 |
public function import_page() {
|
43 |
?>
|
44 |
<div class="wrap">
|
|
|
|
|
45 |
<div class="welcome-panel" id="welcome-panel">
|
46 |
-
<h2><?php echo esc_html( $this->name ); ?> Importer</h2>
|
47 |
<div class="welcome-panel-content" style="text-align:center;margin-bottom:10px;">
|
48 |
<p class="about-description">
|
49 |
-
Import forms and settings automatically from <?php echo esc_html( $this->name ); ?>. <br/>
|
50 |
Select the forms to import.
|
51 |
</p>
|
52 |
-
<form
|
53 |
action="<?php echo esc_url( admin_url( 'admin-ajax.php' ) ); ?>">
|
54 |
<?php wp_nonce_field( 'nonce', 'frm_ajax' ); ?>
|
55 |
<input type="hidden" name="slug" value="<?php echo esc_attr( $this->slug ); ?>" />
|
56 |
<input type="hidden" name="action" value="frm_import_<?php echo esc_attr( $this->slug ); ?>" />
|
57 |
<div style="margin:10px auto;max-width:400px;text-align:left;">
|
|
|
|
|
|
|
|
|
|
|
58 |
<?php foreach ( $this->get_forms() as $form_id => $name ) { ?>
|
59 |
<p>
|
60 |
<label>
|
@@ -73,7 +85,7 @@ abstract class FrmFormMigrator {
|
|
73 |
</div>
|
74 |
<button type="submit" class="button button-primary button-hero">Start Import</button>
|
75 |
</form>
|
76 |
-
<div id="frm-importer-process" class="frm_hidden">
|
77 |
|
78 |
<p class="process-count">
|
79 |
<span class="frm-wait" aria-hidden="true"></span>
|
@@ -130,7 +142,10 @@ abstract class FrmFormMigrator {
|
|
130 |
|
131 |
$source_form = $this->get_form( $source_id );
|
132 |
$source_form_name = $this->get_form_name( $source_form );
|
133 |
-
$source_fields = $this->get_form_fields( $
|
|
|
|
|
|
|
134 |
|
135 |
// If form does not contain fields, bail.
|
136 |
if ( empty( $source_fields ) ) {
|
@@ -149,7 +164,12 @@ abstract class FrmFormMigrator {
|
|
149 |
|
150 |
$this->prepare_form( $source_form, $form );
|
151 |
|
152 |
-
|
|
|
|
|
|
|
|
|
|
|
153 |
}
|
154 |
|
155 |
protected function prepare_new_form( $source_id, $source_form_name ) {
|
@@ -169,7 +189,9 @@ abstract class FrmFormMigrator {
|
|
169 |
|
170 |
protected function prepare_fields( $fields, &$form ) {
|
171 |
$field_order = 1;
|
|
|
172 |
foreach ( $fields as $field ) {
|
|
|
173 |
|
174 |
$label = $this->get_field_label( $field );
|
175 |
$type = $this->get_field_type( $field );
|
@@ -185,15 +207,39 @@ abstract class FrmFormMigrator {
|
|
185 |
continue;
|
186 |
}
|
187 |
|
188 |
-
$
|
|
|
|
|
189 |
$new_field['name'] = $label;
|
190 |
$new_field['field_order'] = $field_order;
|
191 |
$new_field['original'] = $type;
|
192 |
|
193 |
$this->prepare_field( $field, $new_field );
|
|
|
|
|
|
|
|
|
|
|
|
|
194 |
$form['fields'][] = $new_field;
|
195 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
196 |
$field_order ++;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
197 |
}
|
198 |
}
|
199 |
|
@@ -201,59 +247,107 @@ abstract class FrmFormMigrator {
|
|
201 |
// customize this function
|
202 |
}
|
203 |
|
204 |
-
|
205 |
-
|
|
|
|
|
|
|
|
|
|
|
206 |
}
|
207 |
|
208 |
/**
|
209 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
210 |
*
|
211 |
-
* @since
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
212 |
*
|
213 |
* @param array $form Form to import.
|
214 |
* @param array $upgrade_omit No field alternative
|
215 |
*/
|
216 |
-
|
217 |
|
218 |
// Create empty form so we have an ID to work with.
|
219 |
-
$form_id =
|
220 |
-
array(
|
221 |
-
'name' => $form['name'],
|
222 |
-
'description' => $form['description'],
|
223 |
-
'options' => $form['options'],
|
224 |
-
'form_key' => $form['name'],
|
225 |
-
'status' => 'published',
|
226 |
-
)
|
227 |
-
);
|
228 |
|
229 |
if ( empty( $form_id ) ) {
|
230 |
-
return
|
231 |
-
'error' => true,
|
232 |
-
'name' => sanitize_text_field( $form['settings']['form_title'] ),
|
233 |
-
'msg' => esc_html__( 'There was an error while creating a new form.', 'formidable' ),
|
234 |
-
);
|
235 |
}
|
236 |
|
237 |
-
|
238 |
-
$new_field['form_id'] = $form_id;
|
239 |
-
$form['fields'][ $key ]['id'] = FrmField::create( $new_field );
|
240 |
-
}
|
241 |
|
242 |
-
|
243 |
-
foreach ( $form['actions'] as $action ) {
|
244 |
-
$action_control = FrmFormActionsController::get_form_actions( $action['type'] );
|
245 |
-
unset( $action['type'] );
|
246 |
-
$new_action = $action_control->prepare_new( $form_id );
|
247 |
-
foreach ( $action as $key => $value ) {
|
248 |
-
if ( $key === 'post_title' ) {
|
249 |
-
$new_action->post_title = $value;
|
250 |
-
} else {
|
251 |
-
$new_action->post_content[ $key ] = $this->replace_smart_tags( $value, $form['fields'] );
|
252 |
-
}
|
253 |
-
}
|
254 |
-
|
255 |
-
$action_control->save_settings( $new_action );
|
256 |
-
}
|
257 |
|
258 |
$this->track_import( $form['import_form_id'], $form_id );
|
259 |
|
@@ -266,6 +360,81 @@ abstract class FrmFormMigrator {
|
|
266 |
);
|
267 |
}
|
268 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
269 |
/**
|
270 |
* After a form has been successfully imported we track it, so that in the
|
271 |
* future we can alert users if they try to import a form that has already
|
@@ -274,7 +443,7 @@ abstract class FrmFormMigrator {
|
|
274 |
* @param int $source_id Imported plugin form ID
|
275 |
* @param int $new_form_id Formidable form ID
|
276 |
*/
|
277 |
-
|
278 |
|
279 |
$imported = $this->get_tracked_import();
|
280 |
|
@@ -298,8 +467,14 @@ abstract class FrmFormMigrator {
|
|
298 |
private function is_imported( $source_id ) {
|
299 |
$imported = $this->get_tracked_import();
|
300 |
$new_form_id = 0;
|
301 |
-
if ( isset( $imported[ $this->slug ] )
|
302 |
-
$new_form_id
|
|
|
|
|
|
|
|
|
|
|
|
|
303 |
}
|
304 |
|
305 |
return $new_form_id;
|
@@ -329,7 +504,7 @@ abstract class FrmFormMigrator {
|
|
329 |
return array();
|
330 |
}
|
331 |
|
332 |
-
|
333 |
$skip_pro_fields = $this->skip_pro_fields();
|
334 |
|
335 |
return ( ! FrmAppHelper::pro_is_installed() && in_array( $type, $skip_pro_fields, true ) );
|
@@ -370,7 +545,7 @@ abstract class FrmFormMigrator {
|
|
370 |
}
|
371 |
|
372 |
/**
|
373 |
-
* @param object|array
|
374 |
*
|
375 |
* @return array
|
376 |
*/
|
@@ -379,20 +554,25 @@ abstract class FrmFormMigrator {
|
|
379 |
}
|
380 |
|
381 |
/**
|
382 |
-
* @param
|
383 |
*
|
384 |
* @return string
|
385 |
*/
|
386 |
protected function get_field_type( $field ) {
|
387 |
-
return
|
388 |
}
|
389 |
|
390 |
/**
|
391 |
-
* @param
|
392 |
*
|
393 |
* @return string
|
394 |
*/
|
395 |
protected function get_field_label( $field ) {
|
|
|
|
|
|
|
|
|
|
|
396 |
$type = $this->get_field_type( $field );
|
397 |
$label = sprintf(
|
398 |
/* translators: %1$s - field type */
|
11 |
public $response = array();
|
12 |
public $tracking = 'frm_forms_imported';
|
13 |
|
14 |
+
protected $fields_map = array();
|
15 |
+
protected $current_source_form = null;
|
16 |
+
protected $current_section = array();
|
17 |
+
|
18 |
/**
|
19 |
* Define required properties.
|
20 |
*/
|
23 |
return;
|
24 |
}
|
25 |
|
26 |
+
if ( ! function_exists( 'is_plugin_active' ) ) {
|
27 |
+
require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
|
28 |
+
}
|
29 |
+
|
30 |
$this->source_active = is_plugin_active( $this->path );
|
31 |
if ( ! $this->source_active ) {
|
32 |
// if source plugin is not installed, do nothing
|
42 |
}
|
43 |
|
44 |
private function maybe_add_to_import_page() {
|
45 |
+
add_action( 'frm_import_settings', array( $this, 'import_page' ) );
|
|
|
46 |
add_action( 'wp_ajax_frm_import_' . $this->slug, array( $this, 'import_forms' ) );
|
47 |
}
|
48 |
|
49 |
public function import_page() {
|
50 |
?>
|
51 |
<div class="wrap">
|
52 |
+
<h2 class="frm-h2"><?php echo esc_html( $this->name ); ?> Importer</h2>
|
53 |
+
<p class="howto">Import forms and settings automatically from <?php echo esc_html( $this->name ); ?>.</p>
|
54 |
<div class="welcome-panel" id="welcome-panel">
|
|
|
55 |
<div class="welcome-panel-content" style="text-align:center;margin-bottom:10px;">
|
56 |
<p class="about-description">
|
|
|
57 |
Select the forms to import.
|
58 |
</p>
|
59 |
+
<form class="frm_form_importer" method="post"
|
60 |
action="<?php echo esc_url( admin_url( 'admin-ajax.php' ) ); ?>">
|
61 |
<?php wp_nonce_field( 'nonce', 'frm_ajax' ); ?>
|
62 |
<input type="hidden" name="slug" value="<?php echo esc_attr( $this->slug ); ?>" />
|
63 |
<input type="hidden" name="action" value="frm_import_<?php echo esc_attr( $this->slug ); ?>" />
|
64 |
<div style="margin:10px auto;max-width:400px;text-align:left;">
|
65 |
+
<?php
|
66 |
+
if ( empty( $this->get_forms() ) ) {
|
67 |
+
esc_html_e( 'No Forms Found.', 'formidable' );
|
68 |
+
}
|
69 |
+
?>
|
70 |
<?php foreach ( $this->get_forms() as $form_id => $name ) { ?>
|
71 |
<p>
|
72 |
<label>
|
85 |
</div>
|
86 |
<button type="submit" class="button button-primary button-hero">Start Import</button>
|
87 |
</form>
|
88 |
+
<div id="frm-importer-process" class="frm-importer-process frm_hidden">
|
89 |
|
90 |
<p class="process-count">
|
91 |
<span class="frm-wait" aria-hidden="true"></span>
|
142 |
|
143 |
$source_form = $this->get_form( $source_id );
|
144 |
$source_form_name = $this->get_form_name( $source_form );
|
145 |
+
$source_fields = $this->get_form_fields( $source_form );
|
146 |
+
$this->maybe_add_end_fields( $source_fields );
|
147 |
+
|
148 |
+
$this->current_source_form = $source_form;
|
149 |
|
150 |
// If form does not contain fields, bail.
|
151 |
if ( empty( $source_fields ) ) {
|
164 |
|
165 |
$this->prepare_form( $source_form, $form );
|
166 |
|
167 |
+
$response = $this->add_form( $form );
|
168 |
+
|
169 |
+
// reset
|
170 |
+
$this->current_source_form = null;
|
171 |
+
|
172 |
+
return $response;
|
173 |
}
|
174 |
|
175 |
protected function prepare_new_form( $source_id, $source_form_name ) {
|
189 |
|
190 |
protected function prepare_fields( $fields, &$form ) {
|
191 |
$field_order = 1;
|
192 |
+
|
193 |
foreach ( $fields as $field ) {
|
194 |
+
$field = (array) $field;
|
195 |
|
196 |
$label = $this->get_field_label( $field );
|
197 |
$type = $this->get_field_type( $field );
|
207 |
continue;
|
208 |
}
|
209 |
|
210 |
+
$new_type = $this->convert_field_type( $type, $field );
|
211 |
+
|
212 |
+
$new_field = FrmFieldsHelper::setup_new_vars( $new_type );
|
213 |
$new_field['name'] = $label;
|
214 |
$new_field['field_order'] = $field_order;
|
215 |
$new_field['original'] = $type;
|
216 |
|
217 |
$this->prepare_field( $field, $new_field );
|
218 |
+
|
219 |
+
$in_section = ! empty( $this->current_section ) && ! in_array( $new_type, $this->fields_with_end() ) && $new_type !== 'break';
|
220 |
+
if ( $in_section ) {
|
221 |
+
$new_field['field_options']['in_section'] = $this->current_section['id'];
|
222 |
+
}
|
223 |
+
|
224 |
$form['fields'][] = $new_field;
|
225 |
|
226 |
+
if ( in_array( $new_type, $this->fields_with_end() ) ) {
|
227 |
+
$this->current_section = $field;
|
228 |
+
} elseif ( $new_type === 'break' || $new_type === 'end_divider' ) {
|
229 |
+
$this->current_section = array();
|
230 |
+
}
|
231 |
+
|
232 |
+
// This may occassionally skip one level/order e.g. after adding a
|
233 |
+
// list field, as field_order would already be prepared to be used.
|
234 |
$field_order ++;
|
235 |
+
|
236 |
+
if ( isset( $new_field['fields'] ) && is_array( $new_field['fields'] ) && ! empty( $new_field['fields'] ) ) {
|
237 |
+
// we have (inner) fields to merge
|
238 |
+
|
239 |
+
$form['fields'] = array_merge( $form['fields'], $new_field['fields'] );
|
240 |
+
// set the new field_order as it would have changed
|
241 |
+
$field_order = $new_field['current_order'];
|
242 |
+
}
|
243 |
}
|
244 |
}
|
245 |
|
247 |
// customize this function
|
248 |
}
|
249 |
|
250 |
+
/**
|
251 |
+
* Add any field types that will need an end section field.
|
252 |
+
*
|
253 |
+
* @since 4.04.03
|
254 |
+
*/
|
255 |
+
protected function fields_with_end() {
|
256 |
+
return array( 'divider' );
|
257 |
}
|
258 |
|
259 |
/**
|
260 |
+
* @since 4.04.03
|
261 |
+
*/
|
262 |
+
protected function maybe_add_end_fields( &$fields ) {
|
263 |
+
$with_end = $this->fields_with_end();
|
264 |
+
if ( empty( $with_end ) ) {
|
265 |
+
return;
|
266 |
+
}
|
267 |
+
|
268 |
+
$open = array();
|
269 |
+
|
270 |
+
$order = 0;
|
271 |
+
foreach ( $fields as $field ) {
|
272 |
+
$order ++;
|
273 |
+
$type = $this->get_field_type( $field );
|
274 |
+
$new_type = $this->convert_field_type( $type, $field );
|
275 |
+
if ( ! in_array( $new_type, $with_end ) && $new_type !== 'break' ) {
|
276 |
+
continue;
|
277 |
+
}
|
278 |
+
|
279 |
+
if ( ! empty( $open ) ) {
|
280 |
+
$this->insert_end_section( $fields, $order );
|
281 |
+
$open = array();
|
282 |
+
}
|
283 |
+
|
284 |
+
if ( in_array( $new_type, $with_end ) ) {
|
285 |
+
$open = $field;
|
286 |
+
}
|
287 |
+
}
|
288 |
+
|
289 |
+
if ( ! empty( $open ) ) {
|
290 |
+
$this->insert_end_section( $fields, $order );
|
291 |
+
}
|
292 |
+
}
|
293 |
+
|
294 |
+
/**
|
295 |
+
* @since 4.04.03
|
296 |
+
*/
|
297 |
+
protected function insert_end_section( &$fields, &$order ) {
|
298 |
+
$sub = FrmFieldsHelper::setup_new_vars( 'end_divider' );
|
299 |
+
$sub['name'] = __( 'Section Buttons', 'formidable' );
|
300 |
+
$subs = array( $sub );
|
301 |
+
$this->insert_fields_in_array( $subs, $order, 0, $fields );
|
302 |
+
$order ++;
|
303 |
+
}
|
304 |
+
|
305 |
+
/**
|
306 |
+
* Replace the original combo field with a group.
|
307 |
+
* This switches the name field to individual fields.
|
308 |
*
|
309 |
+
* @since 4.04.03
|
310 |
+
*/
|
311 |
+
protected function insert_fields_in_array( $subs, $start, $remove, &$fields ) {
|
312 |
+
array_splice( $fields, $start, $remove, $subs );
|
313 |
+
}
|
314 |
+
|
315 |
+
/**
|
316 |
+
* @param string $type
|
317 |
+
* @param array $field
|
318 |
+
* @param string $use Which field type to prefer to consider $field as.
|
319 |
+
* This also eases the recursive use of the method,
|
320 |
+
* particularly the overrides in child classes, as
|
321 |
+
* there will be no need to rebuild the converter
|
322 |
+
* array at usage locations.
|
323 |
+
*/
|
324 |
+
protected function convert_field_type( $type, $field = array(), $use = '' ) {
|
325 |
+
if ( empty( $field ) ) {
|
326 |
+
// For reverse compatability.
|
327 |
+
return $type;
|
328 |
+
}
|
329 |
+
|
330 |
+
return $use ? $use : $field['type'];
|
331 |
+
}
|
332 |
+
|
333 |
+
/**
|
334 |
+
* Add the new form to the database and return AJAX data.å
|
335 |
*
|
336 |
* @param array $form Form to import.
|
337 |
* @param array $upgrade_omit No field alternative
|
338 |
*/
|
339 |
+
protected function add_form( $form, $upgrade_omit = array() ) {
|
340 |
|
341 |
// Create empty form so we have an ID to work with.
|
342 |
+
$form_id = $this->create_form( $form );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
343 |
|
344 |
if ( empty( $form_id ) ) {
|
345 |
+
return $this->form_creation_error_response( $form );
|
|
|
|
|
|
|
|
|
346 |
}
|
347 |
|
348 |
+
$this->create_fields( $form_id, $form );
|
|
|
|
|
|
|
349 |
|
350 |
+
$this->create_emails( $form, $form_id );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
351 |
|
352 |
$this->track_import( $form['import_form_id'], $form_id );
|
353 |
|
360 |
);
|
361 |
}
|
362 |
|
363 |
+
/**
|
364 |
+
* @since 4.04.03
|
365 |
+
*
|
366 |
+
* @param array $form parameters for the new form to be created. Only
|
367 |
+
* the name key is a must. The keys are the column
|
368 |
+
* names of the forms table in the DB.
|
369 |
+
*
|
370 |
+
* @return int The ID of the newly created form.
|
371 |
+
*/
|
372 |
+
protected function create_form( $form ) {
|
373 |
+
$form['form_key'] = $form['name'];
|
374 |
+
$form['status'] = 'published';
|
375 |
+
|
376 |
+
return FrmForm::create( $form );
|
377 |
+
}
|
378 |
+
|
379 |
+
/**
|
380 |
+
* @since 4.04.03
|
381 |
+
*/
|
382 |
+
protected function form_creation_error_response( $form ) {
|
383 |
+
return array(
|
384 |
+
'error' => true,
|
385 |
+
'name' => sanitize_text_field( $form['name'] ),
|
386 |
+
'msg' => esc_html__( 'There was an error while creating a new form.', 'formidable' ),
|
387 |
+
);
|
388 |
+
}
|
389 |
+
|
390 |
+
/**
|
391 |
+
* @since 4.04.03
|
392 |
+
*
|
393 |
+
* @param int $form_id
|
394 |
+
* @param array $form
|
395 |
+
*/
|
396 |
+
protected function create_fields( $form_id, &$form ) {
|
397 |
+
foreach ( $form['fields'] as $key => $new_field ) {
|
398 |
+
$new_field['form_id'] = $form_id;
|
399 |
+
$form['fields'][ $key ]['id'] = FrmField::create( $new_field );
|
400 |
+
}
|
401 |
+
}
|
402 |
+
|
403 |
+
/**
|
404 |
+
* @since 4.04.03
|
405 |
+
*
|
406 |
+
* @param array $form
|
407 |
+
*/
|
408 |
+
protected function create_emails( $form, $form_id ) {
|
409 |
+
foreach ( $form['actions'] as $action ) {
|
410 |
+
$this->save_action( $action, $form, $form_id );
|
411 |
+
}
|
412 |
+
}
|
413 |
+
|
414 |
+
/**
|
415 |
+
* @since 4.04.03
|
416 |
+
*
|
417 |
+
* @param array $form
|
418 |
+
*/
|
419 |
+
protected function save_action( $action, $form, $form_id ) {
|
420 |
+
$action_control = FrmFormActionsController::get_form_actions( $action['type'] );
|
421 |
+
unset( $action['type'] );
|
422 |
+
$new_action = $action_control->prepare_new( $form_id );
|
423 |
+
foreach ( $action as $key => $value ) {
|
424 |
+
if ( $key === 'post_title' ) {
|
425 |
+
$new_action->post_title = $value;
|
426 |
+
} elseif ( $key === 'the_post_title' ) {
|
427 |
+
$new_action->post_content['post_title'] = $value;
|
428 |
+
} elseif ( is_string( $value ) ) {
|
429 |
+
$new_action->post_content[ $key ] = $this->replace_smart_tags( $value, $form['fields'] );
|
430 |
+
} else {
|
431 |
+
$new_action->post_content[ $key ] = $value;
|
432 |
+
}
|
433 |
+
}
|
434 |
+
|
435 |
+
return $action_control->save_settings( $new_action );
|
436 |
+
}
|
437 |
+
|
438 |
/**
|
439 |
* After a form has been successfully imported we track it, so that in the
|
440 |
* future we can alert users if they try to import a form that has already
|
443 |
* @param int $source_id Imported plugin form ID
|
444 |
* @param int $new_form_id Formidable form ID
|
445 |
*/
|
446 |
+
protected function track_import( $source_id, $new_form_id ) {
|
447 |
|
448 |
$imported = $this->get_tracked_import();
|
449 |
|
467 |
private function is_imported( $source_id ) {
|
468 |
$imported = $this->get_tracked_import();
|
469 |
$new_form_id = 0;
|
470 |
+
if ( ! isset( $imported[ $this->slug ] ) || ! in_array( $source_id, $imported[ $this->slug ] ) ) {
|
471 |
+
return $new_form_id;
|
472 |
+
}
|
473 |
+
|
474 |
+
$new_form_id = array_search( $source_id, array_reverse( $imported[ $this->slug ], true ) );
|
475 |
+
if ( ! empty( $new_form_id ) && empty( FrmForm::get_key_by_id( $new_form_id ) ) ) {
|
476 |
+
// Allow reimport if the form was deleted.
|
477 |
+
$new_form_id = 0;
|
478 |
}
|
479 |
|
480 |
return $new_form_id;
|
504 |
return array();
|
505 |
}
|
506 |
|
507 |
+
protected function should_skip_field( $type ) {
|
508 |
$skip_pro_fields = $this->skip_pro_fields();
|
509 |
|
510 |
return ( ! FrmAppHelper::pro_is_installed() && in_array( $type, $skip_pro_fields, true ) );
|
545 |
}
|
546 |
|
547 |
/**
|
548 |
+
* @param object|array $source_form
|
549 |
*
|
550 |
* @return array
|
551 |
*/
|
554 |
}
|
555 |
|
556 |
/**
|
557 |
+
* @param array $field
|
558 |
*
|
559 |
* @return string
|
560 |
*/
|
561 |
protected function get_field_type( $field ) {
|
562 |
+
return $field['type'];
|
563 |
}
|
564 |
|
565 |
/**
|
566 |
+
* @param array $field
|
567 |
*
|
568 |
* @return string
|
569 |
*/
|
570 |
protected function get_field_label( $field ) {
|
571 |
+
$label = isset( $field['label'] ) ? $field['label'] : '';
|
572 |
+
if ( ! empty( $label ) ) {
|
573 |
+
return $label;
|
574 |
+
}
|
575 |
+
|
576 |
$type = $this->get_field_type( $field );
|
577 |
$label = sprintf(
|
578 |
/* translators: %1$s - field type */
|
classes/models/FrmStyle.php
CHANGED
@@ -450,7 +450,7 @@ class FrmStyle {
|
|
450 |
|
451 |
'progress_bg_color' => 'dddddd',
|
452 |
'progress_active_color' => 'ffffff',
|
453 |
-
'progress_active_bg_color' => '
|
454 |
'progress_color' => 'ffffff',
|
455 |
'progress_border_color' => 'dfdfdf',
|
456 |
'progress_border_size' => '2px',
|
450 |
|
451 |
'progress_bg_color' => 'dddddd',
|
452 |
'progress_active_color' => 'ffffff',
|
453 |
+
'progress_active_bg_color' => '4199FD',
|
454 |
'progress_color' => 'ffffff',
|
455 |
'progress_border_color' => 'dfdfdf',
|
456 |
'progress_border_size' => '2px',
|
classes/views/frm-entries/list.php
CHANGED
@@ -9,6 +9,7 @@
|
|
9 |
'label' => __( 'Form Entries', 'formidable' ),
|
10 |
'form' => $form,
|
11 |
'close' => $form ? admin_url( 'admin.php?page=formidable-entries&form=' . $form->id ) : '',
|
|
|
12 |
)
|
13 |
);
|
14 |
?>
|
@@ -24,6 +25,9 @@
|
|
24 |
)
|
25 |
);
|
26 |
?>
|
|
|
|
|
|
|
27 |
</h2>
|
28 |
<?php if ( ! FrmAppHelper::pro_is_installed() ) { ?>
|
29 |
<div class="clear"></div>
|
9 |
'label' => __( 'Form Entries', 'formidable' ),
|
10 |
'form' => $form,
|
11 |
'close' => $form ? admin_url( 'admin.php?page=formidable-entries&form=' . $form->id ) : '',
|
12 |
+
'import_link' => $form ? false : true,
|
13 |
)
|
14 |
);
|
15 |
?>
|
25 |
)
|
26 |
);
|
27 |
?>
|
28 |
+
<a href="<?php echo esc_url( admin_url( 'admin.php?page=formidable-import' ) ); ?>" class="button button-secondary frm-button-secondary frm_animate_bg">
|
29 |
+
<?php esc_html_e( 'Import', 'formidable' ); ?>
|
30 |
+
</a>
|
31 |
</h2>
|
32 |
<?php if ( ! FrmAppHelper::pro_is_installed() ) { ?>
|
33 |
<div class="clear"></div>
|
classes/views/frm-fields/back-end/smart-values.php
CHANGED
@@ -8,7 +8,7 @@
|
|
8 |
</p>
|
9 |
<p>
|
10 |
<a href="<?php echo esc_url( FrmAppHelper::admin_upgrade_link( $upgrade_link ) ); ?>" class="button button-primary frm-button-primary" target="_blank" rel="noopener noreferrer">
|
11 |
-
<?php esc_html_e( 'Upgrade
|
12 |
</a>
|
13 |
|
14 |
<a href="<?php echo esc_url( FrmAppHelper::make_affiliate_url( FrmAppHelper::admin_upgrade_link( $upgrade_link, 'knowledgebase/install-formidable-forms/' ) ) ); ?>" target="_blank" class="frm-link-secondary alignright">
|
8 |
</p>
|
9 |
<p>
|
10 |
<a href="<?php echo esc_url( FrmAppHelper::admin_upgrade_link( $upgrade_link ) ); ?>" class="button button-primary frm-button-primary" target="_blank" rel="noopener noreferrer">
|
11 |
+
<?php esc_html_e( 'Upgrade', 'formidable' ); ?>
|
12 |
</a>
|
13 |
|
14 |
<a href="<?php echo esc_url( FrmAppHelper::make_affiliate_url( FrmAppHelper::admin_upgrade_link( $upgrade_link, 'knowledgebase/install-formidable-forms/' ) ) ); ?>" target="_blank" class="frm-link-secondary alignright">
|
classes/views/frm-forms/list-templates.php
CHANGED
@@ -50,6 +50,14 @@
|
|
50 |
</a>
|
51 |
</li>
|
52 |
<?php } ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
</ul>
|
54 |
|
55 |
<?php
|
50 |
</a>
|
51 |
</li>
|
52 |
<?php } ?>
|
53 |
+
<li>
|
54 |
+
<a class="frm-featured-form" href="<?php echo esc_url( admin_url( 'admin.php?page=formidable-import' ) ); ?>">
|
55 |
+
<span class="frm-inner-circle" style="background-color:var(--orange)">
|
56 |
+
<?php FrmAppHelper::icon_by_class( 'frmfont frm_upload_icon' ); ?>
|
57 |
+
</span>
|
58 |
+
<h3><?php esc_html_e( 'Import', 'formidable' ); ?></h3>
|
59 |
+
</a>
|
60 |
+
</li>
|
61 |
</ul>
|
62 |
|
63 |
<?php
|
classes/views/frm-forms/list.php
CHANGED
@@ -2,8 +2,9 @@
|
|
2 |
<?php
|
3 |
FrmAppHelper::get_admin_header(
|
4 |
array(
|
5 |
-
'label'
|
6 |
-
'new_link'
|
|
|
7 |
)
|
8 |
);
|
9 |
?>
|
2 |
<?php
|
3 |
FrmAppHelper::get_admin_header(
|
4 |
array(
|
5 |
+
'label' => $params['template'] ? __( 'Templates', 'formidable' ) : __( 'Forms', 'formidable' ),
|
6 |
+
'new_link' => ( ! $params['template'] && current_user_can( 'frm_edit_forms' ) ) ? '?page=formidable&frm_action=add_new' : '',
|
7 |
+
'import_link' => true,
|
8 |
)
|
9 |
);
|
10 |
?>
|
classes/views/shared/admin-header.php
CHANGED
@@ -28,10 +28,15 @@
|
|
28 |
// Used when no form is currently selected.
|
29 |
?>
|
30 |
|
31 |
-
<div class="frm_top_left">
|
32 |
<h1>
|
33 |
<?php echo esc_html( $atts['label'] ); ?>
|
34 |
<?php FrmAppHelper::add_new_item_link( $atts ); ?>
|
|
|
|
|
|
|
|
|
|
|
35 |
<?php if ( isset( $atts['cancel_link'] ) ) { ?>
|
36 |
<a href="<?php echo esc_url( $atts['cancel_link'] ); ?>" class="button button-secondary frm-button-secondary frm_animate_bg">
|
37 |
<?php esc_html_e( 'Cancel', 'formidable' ); ?>
|
28 |
// Used when no form is currently selected.
|
29 |
?>
|
30 |
|
31 |
+
<div class="frm_top_left <?php echo esc_attr( $atts['import_link'] ? 'frm_top_wide' : '' ); ?>">
|
32 |
<h1>
|
33 |
<?php echo esc_html( $atts['label'] ); ?>
|
34 |
<?php FrmAppHelper::add_new_item_link( $atts ); ?>
|
35 |
+
<?php if ( $atts['import_link'] ) { ?>
|
36 |
+
<a href="<?php echo esc_url( admin_url( 'admin.php?page=formidable-import' ) ); ?>" class="button button-secondary frm-button-secondary frm_animate_bg">
|
37 |
+
<?php esc_html_e( 'Import', 'formidable' ); ?>
|
38 |
+
</a>
|
39 |
+
<?php } ?>
|
40 |
<?php if ( isset( $atts['cancel_link'] ) ) { ?>
|
41 |
<a href="<?php echo esc_url( $atts['cancel_link'] ); ?>" class="button button-secondary frm-button-secondary frm_animate_bg">
|
42 |
<?php esc_html_e( 'Cancel', 'formidable' ); ?>
|
classes/views/xml/import_form.php
CHANGED
@@ -35,6 +35,7 @@
|
|
35 |
</form>
|
36 |
<?php FrmTipsHelper::pro_tip( 'get_import_tip' ); ?>
|
37 |
|
|
|
38 |
<br/><br/>
|
39 |
<h2 class="frm-h2"><?php esc_html_e( 'Export', 'formidable' ); ?></h2>
|
40 |
<p class="howto">
|
35 |
</form>
|
36 |
<?php FrmTipsHelper::pro_tip( 'get_import_tip' ); ?>
|
37 |
|
38 |
+
<?php do_action( 'frm_import_settings' ); ?>
|
39 |
<br/><br/>
|
40 |
<h2 class="frm-h2"><?php esc_html_e( 'Export', 'formidable' ); ?></h2>
|
41 |
<p class="howto">
|
css/frm_admin.css
CHANGED
@@ -258,6 +258,10 @@ a .frmsvg,
|
|
258 |
text-overflow: ellipsis;
|
259 |
}
|
260 |
|
|
|
|
|
|
|
|
|
261 |
.frm-header-logo,
|
262 |
.edit-php.post-type-frm_display .frm-header-logo {
|
263 |
float: left;
|
@@ -972,6 +976,7 @@ p.frm_has_shortcodes {
|
|
972 |
|
973 |
h1 .frm-button-secondary,
|
974 |
h1 .frm-button-primary,
|
|
|
975 |
h2 .frm-button-primary {
|
976 |
font-size: 14px !important;
|
977 |
font-weight: normal;
|
258 |
text-overflow: ellipsis;
|
259 |
}
|
260 |
|
261 |
+
.frm_top_left.frm_top_wide {
|
262 |
+
max-width: 100%;
|
263 |
+
}
|
264 |
+
|
265 |
.frm-header-logo,
|
266 |
.edit-php.post-type-frm_display .frm-header-logo {
|
267 |
float: left;
|
976 |
|
977 |
h1 .frm-button-secondary,
|
978 |
h1 .frm-button-primary,
|
979 |
+
h2 .frm-button-secondary,
|
980 |
h2 .frm-button-primary {
|
981 |
font-size: 14px !important;
|
982 |
font-weight: normal;
|
formidable.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/*
|
3 |
Plugin Name: Formidable Forms
|
4 |
Description: Quickly and easily create drag-and-drop forms
|
5 |
-
Version: 4.04.
|
6 |
Plugin URI: https://formidableforms.com/
|
7 |
Author URI: https://formidableforms.com/
|
8 |
Author: Strategy11
|
2 |
/*
|
3 |
Plugin Name: Formidable Forms
|
4 |
Description: Quickly and easily create drag-and-drop forms
|
5 |
+
Version: 4.04.03
|
6 |
Plugin URI: https://formidableforms.com/
|
7 |
Author URI: https://formidableforms.com/
|
8 |
Author: Strategy11
|
js/formidable.js
CHANGED
@@ -120,6 +120,28 @@ function frmFrontFormJS(){
|
|
120 |
$form.find( 'input[type="submit"], input[type="button"], button[type="submit"]' ).removeAttr( 'disabled' );
|
121 |
}
|
122 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
function validateForm( object ) {
|
124 |
var errors = [];
|
125 |
|
@@ -629,6 +651,7 @@ function frmFrontFormJS(){
|
|
629 |
function showSubmitLoading( $object ) {
|
630 |
showLoadingIndicator( $object );
|
631 |
disableSubmitButton( $object );
|
|
|
632 |
}
|
633 |
|
634 |
function showLoadingIndicator( $object ) {
|
@@ -661,6 +684,7 @@ function frmFrontFormJS(){
|
|
661 |
|
662 |
if ( enable === 'enable' ) {
|
663 |
enableSubmitButton( loadingForm );
|
|
|
664 |
}
|
665 |
}
|
666 |
|
120 |
$form.find( 'input[type="submit"], input[type="button"], button[type="submit"]' ).removeAttr( 'disabled' );
|
121 |
}
|
122 |
|
123 |
+
/**
|
124 |
+
* Disable the save draft link for a given jQuery form object
|
125 |
+
*
|
126 |
+
* @since 4.04.03
|
127 |
+
*
|
128 |
+
* @param {object} $form
|
129 |
+
*/
|
130 |
+
function disableSaveDraft( $form ) {
|
131 |
+
$form.find( 'a.frm_save_draft' ).css( 'pointer-events', 'none' );
|
132 |
+
}
|
133 |
+
|
134 |
+
/**
|
135 |
+
* Enable the save draft link for a given jQuery form object
|
136 |
+
*
|
137 |
+
* @since 4.04.03
|
138 |
+
*
|
139 |
+
* @param {object} $form
|
140 |
+
*/
|
141 |
+
function enableSaveDraft( $form ) {
|
142 |
+
$form.find( 'a.frm_save_draft' ).css( 'pointer-events', '' );
|
143 |
+
}
|
144 |
+
|
145 |
function validateForm( object ) {
|
146 |
var errors = [];
|
147 |
|
651 |
function showSubmitLoading( $object ) {
|
652 |
showLoadingIndicator( $object );
|
653 |
disableSubmitButton( $object );
|
654 |
+
disableSaveDraft( $object );
|
655 |
}
|
656 |
|
657 |
function showLoadingIndicator( $object ) {
|
684 |
|
685 |
if ( enable === 'enable' ) {
|
686 |
enableSubmitButton( loadingForm );
|
687 |
+
enableSaveDraft( loadingForm );
|
688 |
}
|
689 |
}
|
690 |
|
js/formidable.min.js
CHANGED
@@ -1,32 +1,32 @@
|
|
1 |
function frmFrontFormJS(){var action="";var jsErrors=[];function maybeShowLabel(){var $field=jQuery(this);var $label=$field.closest(".frm_inside_container").find(".frm_primary_label");if($field.val().length>0)$label.addClass("frm_visible");else $label.removeClass("frm_visible")}function getFieldId(field,fullID){var fieldName="";if(field instanceof jQuery)fieldName=field.attr("name");else fieldName=field.name;if(typeof fieldName==="undefined")fieldName="";if(fieldName===""){if(field instanceof jQuery)fieldName=
|
2 |
field.data("name");else fieldName=field.getAttribute("data-name");if(typeof fieldName==="undefined")fieldName="";if(fieldName!==""&&fieldName)return fieldName;return 0}var nameParts=fieldName.replace("item_meta[","").replace("[]","").split("]");if(nameParts.length<1)return 0;nameParts=nameParts.filter(function(n){return n!==""});var field_id=nameParts[0];var isRepeating=false;if(nameParts.length===1)return field_id;if(nameParts[1]==="[form"||nameParts[1]==="[row_ids")return 0;if(jQuery('input[name="item_meta['+
|
3 |
field_id+'][form]"]').length){field_id=nameParts[2].replace("[","");isRepeating=true}if("other"===field_id)if(isRepeating)field_id=nameParts[3].replace("[","");else field_id=nameParts[1].replace("[","");if(fullID===true)if(field_id===nameParts[0])field_id=field_id+"-"+nameParts[1].replace("[","");else field_id=field_id+"-"+nameParts[0]+"-"+nameParts[1].replace("[","");return field_id}function disableSubmitButton($form){$form.find('input[type="submit"], input[type="button"], button[type="submit"]').attr("disabled",
|
4 |
-
"disabled")}function enableSubmitButton($form){$form.find('input[type="submit"], input[type="button"], button[type="submit"]').removeAttr("disabled")}function validateForm(object){var errors=[];var requiredFields=jQuery(object).find(".frm_required_field:visible input, .frm_required_field:visible select, .frm_required_field:visible textarea").filter(":not(.frm_optional)");
|
5 |
-
jQuery(object).find("input[type=email]").filter(":visible");var fields=jQuery(object).find("input,select,textarea");if(fields.length)for(var n=0,nl=fields.length;n<nl;n++){var field=fields[n];var value=field.value;if(value!=="")if(field.type==="hidden");else if(field.type==="number")errors=checkNumberField(field,errors);else if(field.type==="email")errors=checkEmailField(field,
|
6 |
-
return errors}function maybeValidateChange(field_id,field){if(field.type==="url")maybeAddHttpToUrl(field);if(jQuery(field).closest("form").hasClass("frm_js_validate"))validateField(field_id,field)}function maybeAddHttpToUrl(field){var url=field.value;var matches=url.match(/^(https?|ftps?|mailto|news|feed|telnet):/);if(field.value!==""&&matches===null)field.value="http://"+
|
7 |
-
|
8 |
-
function checkRequiredField(field,errors){var fileID=field.getAttribute("data-frmfile");if(field.type==="hidden"&&fileID===null)return errors;var val="";var fieldID="";if(field.type==="checkbox"||field.type==="radio"){var checkGroup=jQuery('input[name="'+field.name+'"]').closest(".frm_required_field").find("input:checked");jQuery(checkGroup).each(function(){val=
|
9 |
-
"")}if(typeof errors[fileID]==="undefined")val=getFileVals(fileID);fieldID=fileID}else{var fieldClasses=field.className;if(fieldClasses.indexOf("frm_pos_none")!==-1)return errors;val=jQuery(field).val();if(val===null)val="";else if(typeof val!=="string"){var tempVal=val;val="";for(var i=0;i<tempVal.length;i++)if(tempVal[i]!=="")val=tempVal[i]}if(fieldClasses.indexOf("frm_other_input")
|
10 |
-
-1)fieldID=fieldID.replace("-H","").replace("-m","");var placeholder=field.getAttribute("data-frmplaceholder");if(placeholder!==null&&val===placeholder)val=""}if(val===""){if(fieldID==="")fieldID=getFieldId(field,true);if(!(fieldID in errors))errors[fieldID]=getFieldValidationMessage(field,"data-reqmsg")}return errors}function getFileVals(fileID){var val="";var fileFields=jQuery('input[name="file'+
|
11 |
-
"")val=this.value});return val}function checkEmailField(field,errors,emailFields){var emailAddress=field.value;var fieldID=getFieldId(field,true);if(fieldID in errors)return errors;var isConf=fieldID.indexOf("conf_")===0;if(emailAddress!==""||isConf){var re=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/i;
|
12 |
-
false){errors[fieldID]=invalidMsg;if(isConf)errors[fieldID.replace("conf_","")]=""}else if(isConf){var confName=field.name.replace("conf_","");var match=emailFields.filter('[name="'+confName+'"]').val();if(match!==emailAddress){errors[fieldID]="";errors[fieldID.replace("conf_","")]=""}}}return errors}function checkNumberField(field,errors){var number=field.value;if(number!==""&&isNaN(number/
|
13 |
-
"data-invmsg")}return errors}function checkPatternField(field,errors){var text=field.value;var format=getFieldValidationMessage(field,"pattern");if(format!==""&&text!==""){var fieldID=getFieldId(field,true);if(!(fieldID in errors)){format=new RegExp("^"+format+"$","i");if(format.test(text)===false)errors[fieldID]=getFieldValidationMessage(field,"data-invmsg")}}return errors}function hasInvisibleRecaptcha(object){if(isGoingToPrevPage(object))return false;
|
14 |
-
if(recaptcha.length){var recaptchaID=recaptcha.data("rid");var alreadyChecked=grecaptcha.getResponse(recaptchaID);if(alreadyChecked.length===0)return recaptcha;else return false}else return false}function executeInvisibleRecaptcha(invisibleRecaptcha){var recaptchaID=invisibleRecaptcha.data("rid");grecaptcha.reset(recaptchaID);grecaptcha.execute(recaptchaID)}function validateRecaptcha(form,
|
15 |
-
var response=grecaptcha.getResponse(recaptchaID);if(response.length===0){var fieldContainer=$recaptcha.closest(".frm_form_field");var fieldID=fieldContainer.attr("id").replace("frm_field_","").replace("_container","");errors[fieldID]=""}}return errors}function getFieldValidationMessage(field,messageType){var msg=field.getAttribute(messageType);if(msg===null)msg="";return msg}function shouldJSValidate(object){var validate=
|
16 |
-
"undefined"&&(frmProForm.savingDraft(object)||frmProForm.goingToPreviousPage(object)))validate=false;return validate}function getFormErrors(object,action){if(typeof action==="undefined")jQuery(object).find('input[name="frm_action"]').val();var fieldset=jQuery(object).find(".frm_form_field");fieldset.addClass("frm_doing_ajax");jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:jQuery(object).serialize()+"&action=frm_entries_"+
|
17 |
-
{"content":"","errors":{},"pass":false};if(response===null)response=defaultResponse;response=response.replace(/^\s+|\s+$/g,"");if(response.indexOf("{")===0)response=jQuery.parseJSON(response);else response=defaultResponse;if(typeof response.redirect!=="undefined"){jQuery(document).trigger("frmBeforeFormRedirect",[object,response]);window.location=response.redirect}else if(response.content!==""){removeSubmitLoading(jQuery(object));
|
18 |
-
jQuery(object).find('input[name="form_id"]').val();response.content=response.content.replace(/ frm_pro_form /g," frm_pro_form frm_no_hide ");var replaceContent=jQuery(object).closest(".frm_forms");removeAddedScripts(replaceContent,formID);replaceContent.replaceWith(response.content);addUrlParam(response);if(typeof frmThemeOverride_frmAfterSubmit==="function"){var pageOrder=jQuery('input[name="frm_page_order_'+formID+'"]').val();
|
19 |
-
frmThemeOverride_frmAfterSubmit(formReturned,pageOrder,response.content,object)}afterFormSubmitted(object,response)}else if(Object.keys(response.errors).length){removeSubmitLoading(jQuery(object),"enable");var cont_submit=true;removeAllErrors();var show_captcha=false;var $fieldCont=null;for(var key in response.errors){$fieldCont=jQuery(object).find("#frm_field_"+key+"_container");if($fieldCont.length){if(!$fieldCont.is(":visible")){var inCollapsedSection
|
20 |
-
if(inCollapsedSection.length){var frmTrigger=inCollapsedSection.prev();if(!frmTrigger.hasClass("frm_trigger"))frmTrigger=frmTrigger.prev(".frm_trigger");frmTrigger.click()}}if($fieldCont.is(":visible")){addFieldError($fieldCont,key,response.errors);cont_submit=false;var $recaptcha=jQuery(object).find("#frm_field_"+key+"_container .frm-g-recaptcha, #frm_field_"+key+"_container .g-recaptcha");if($recaptcha.length){show_captcha=true;var recaptchaID=$recaptcha.data("rid");
|
21 |
-
else grecaptcha.reset()}}}}jQuery(document).trigger("frmFormErrors",[object,response]);fieldset.removeClass("frm_doing_ajax");scrollToFirstField(object);if(show_captcha!==true)replaceCheckedRecaptcha(object,false);if(cont_submit)object.submit();else jQuery(object).prepend(response.error_message)}else{showFileLoading(object);replaceCheckedRecaptcha(object,true);object.submit()}},error:function(){jQuery(object).find('input[type="submit"], input[type="button"]').removeAttr("disabled");
|
22 |
-
function afterFormSubmitted(object,response){var formCompleted=jQuery(response.content).find(".frm_message");if(formCompleted.length)jQuery(document).trigger("frmFormComplete",[object,response]);else jQuery(document).trigger("frmPageChanged",[object,response])}function removeAddedScripts(formContainer,formID){var endReplace=jQuery(".frm_end_ajax_"+formID);if(endReplace.length){formContainer.nextUntil(".frm_end_ajax_"+formID).remove();endReplace.remove()}}function addUrlParam(response){if(history.pushState&&
|
23 |
typeof response.page!=="undefined"){var url=addQueryVar("frm_page",response.page);window.history.pushState({"html":response.html},"","?"+url)}}function addQueryVar(key,value){key=encodeURI(key);value=encodeURI(value);var kvp=document.location.search.substr(1).split("&");var i=kvp.length;var x;while(i--){x=kvp[i].split("=");if(x[0]==key){x[1]=value;kvp[i]=x.join("=");break}}if(i<0)kvp[kvp.length]=[key,value].join("=");return kvp.join("&")}function addFieldError($fieldCont,key,jsErrors){if($fieldCont.length&&
|
24 |
$fieldCont.is(":visible")){$fieldCont.addClass("frm_blank_field");var input=$fieldCont.find("input, select, textarea"),id="frm_error_field_"+key,describedBy=input.attr("aria-describedby");if(typeof frmThemeOverride_frmPlaceError==="function")frmThemeOverride_frmPlaceError(key,jsErrors);else{$fieldCont.append('<div class="frm_error" id="'+id+'">'+jsErrors[key]+"</div>");if(typeof describedBy==="undefined")describedBy=id;else if(describedBy.indexOf(id)===-1)describedBy=describedBy+" "+id;input.attr("aria-describedby",
|
25 |
describedBy)}input.attr("aria-invalid",true);jQuery(document).trigger("frmAddFieldError",[$fieldCont,key,jsErrors])}}function removeFieldError($fieldCont){var errorMessage=$fieldCont.find(".frm_error"),errorId=errorMessage.attr("id"),input=$fieldCont.find("input, select, textarea"),describedBy=input.attr("aria-describedby");$fieldCont.removeClass("frm_blank_field has-error");errorMessage.remove();input.attr("aria-invalid",false);if(typeof describedBy!=="undefined"){describedBy=describedBy.replace(errorId,
|
26 |
-
"");input.attr("aria-describedby",describedBy)}}function removeAllErrors(){jQuery(".form-field").removeClass("frm_blank_field has-error");jQuery(".form-field .frm_error").replaceWith("");jQuery(".frm_error_style").remove()}function scrollToFirstField(object){var field=jQuery(object).find(".frm_blank_field:first");if(field.length)frmFrontForm.scrollMsg(field,object,true)}function showSubmitLoading($object){showLoadingIndicator($object);disableSubmitButton($object)}function showLoadingIndicator($object){if(!$object.hasClass("frm_loading_form")&&
|
27 |
!$object.hasClass("frm_loading_prev")){addLoadingClass($object);$object.trigger("frmStartFormLoading")}}function addLoadingClass($object){var loading_class=isGoingToPrevPage($object)?"frm_loading_prev":"frm_loading_form";$object.addClass(loading_class)}function isGoingToPrevPage($object){return typeof frmProForm!=="undefined"&&frmProForm.goingToPreviousPage($object)}function removeSubmitLoading($object,enable,processesRunning){if(processesRunning>0)return;var loadingForm=jQuery(".frm_loading_form");
|
28 |
-
loadingForm.removeClass("frm_loading_form");loadingForm.removeClass("frm_loading_prev");loadingForm.trigger("frmEndFormLoading");if(enable==="enable")enableSubmitButton(loadingForm)}function showFileLoading(object){var loading=document.getElementById("frm_loading");if(loading!==null){var file_val=jQuery(object).find("input[type=file]").val();if(typeof file_val!=="undefined"&&file_val!=="")setTimeout(function(){jQuery(loading).fadeIn("slow")},2E3)}}function replaceCheckedRecaptcha(object,
|
29 |
-
jQuery(object).find(".frm-g-recaptcha, .g-recaptcha");if($recapField.length){if(checkPage){var morePages=jQuery(object).find(".frm_next_page").length<1||jQuery(object).find(".frm_next_page").val()<1;if(!morePages)return}$recapField.closest(".frm_form_field").replaceWith('<input type="hidden" name="recaptcha_checked" value="'+frm_js.nonce+'">')}}function clearDefault(){toggleDefault(jQuery(this),"clear")}function replaceDefault(){toggleDefault(jQuery(this),"replace")}function toggleDefault($thisField,
|
30 |
e){var v=$thisField.data("frmval").replace(/(\n|\r\n)/g,"\r");if(v===""||typeof v==="undefined")return false;var thisVal=$thisField.val().replace(/(\n|\r\n)/g,"\r");if("replace"==e){if(thisVal==="")$thisField.addClass("frm_default").val(v)}else if(thisVal==v)$thisField.removeClass("frm_default").val("")}function resendEmail(){var $link=jQuery(this),entry_id=this.getAttribute("data-eid"),form_id=this.getAttribute("data-fid"),label=$link.find(".frm_link_label");if(label.length<1)label=$link;label.append('<span class="frm-wait"></span>');
|
31 |
jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_send_email",entry_id:entry_id,form_id:form_id,nonce:frm_js.nonce},success:function(msg){label.html(msg)}});return false}function confirmClick(){var message=jQuery(this).data("frmconfirm");return confirm(message)}function toggleDiv(){var div=jQuery(this).data("frmtoggle");if(jQuery(div).is(":visible"))jQuery(div).slideUp("fast");else jQuery(div).slideDown("fast");return false}function addIndexOfFallbackForIE8(){if(!Array.prototype.indexOf)Array.prototype.indexOf=
|
32 |
function(elt){var len=this.length>>>0;var from=Number(arguments[1])||0;from=from<0?Math.ceil(from):Math.floor(from);if(from<0)from+=len;for(;from<len;from++)if(from in this&&this[from]===elt)return from;return-1}}function addTrimFallbackForIE8(){if(typeof String.prototype.trim!=="function")String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}}function addFilterFallbackForIE8(){if(!Array.prototype.filter)Array.prototype.filter=function(fun){if(this===void 0||this===null)throw new TypeError;
|
1 |
function frmFrontFormJS(){var action="";var jsErrors=[];function maybeShowLabel(){var $field=jQuery(this);var $label=$field.closest(".frm_inside_container").find(".frm_primary_label");if($field.val().length>0)$label.addClass("frm_visible");else $label.removeClass("frm_visible")}function getFieldId(field,fullID){var fieldName="";if(field instanceof jQuery)fieldName=field.attr("name");else fieldName=field.name;if(typeof fieldName==="undefined")fieldName="";if(fieldName===""){if(field instanceof jQuery)fieldName=
|
2 |
field.data("name");else fieldName=field.getAttribute("data-name");if(typeof fieldName==="undefined")fieldName="";if(fieldName!==""&&fieldName)return fieldName;return 0}var nameParts=fieldName.replace("item_meta[","").replace("[]","").split("]");if(nameParts.length<1)return 0;nameParts=nameParts.filter(function(n){return n!==""});var field_id=nameParts[0];var isRepeating=false;if(nameParts.length===1)return field_id;if(nameParts[1]==="[form"||nameParts[1]==="[row_ids")return 0;if(jQuery('input[name="item_meta['+
|
3 |
field_id+'][form]"]').length){field_id=nameParts[2].replace("[","");isRepeating=true}if("other"===field_id)if(isRepeating)field_id=nameParts[3].replace("[","");else field_id=nameParts[1].replace("[","");if(fullID===true)if(field_id===nameParts[0])field_id=field_id+"-"+nameParts[1].replace("[","");else field_id=field_id+"-"+nameParts[0]+"-"+nameParts[1].replace("[","");return field_id}function disableSubmitButton($form){$form.find('input[type="submit"], input[type="button"], button[type="submit"]').attr("disabled",
|
4 |
+
"disabled")}function enableSubmitButton($form){$form.find('input[type="submit"], input[type="button"], button[type="submit"]').removeAttr("disabled")}function disableSaveDraft($form){$form.find("a.frm_save_draft").css("pointer-events","none")}function enableSaveDraft($form){$form.find("a.frm_save_draft").css("pointer-events","")}function validateForm(object){var errors=[];var requiredFields=jQuery(object).find(".frm_required_field:visible input, .frm_required_field:visible select, .frm_required_field:visible textarea").filter(":not(.frm_optional)");
|
5 |
+
if(requiredFields.length)for(var r=0,rl=requiredFields.length;r<rl;r++)errors=checkRequiredField(requiredFields[r],errors);var emailFields=jQuery(object).find("input[type=email]").filter(":visible");var fields=jQuery(object).find("input,select,textarea");if(fields.length)for(var n=0,nl=fields.length;n<nl;n++){var field=fields[n];var value=field.value;if(value!=="")if(field.type==="hidden");else if(field.type==="number")errors=checkNumberField(field,errors);else if(field.type==="email")errors=checkEmailField(field,
|
6 |
+
errors,emailFields);else if(field.pattern!==null)errors=checkPatternField(field,errors)}errors=validateRecaptcha(object,errors);return errors}function maybeValidateChange(field_id,field){if(field.type==="url")maybeAddHttpToUrl(field);if(jQuery(field).closest("form").hasClass("frm_js_validate"))validateField(field_id,field)}function maybeAddHttpToUrl(field){var url=field.value;var matches=url.match(/^(https?|ftps?|mailto|news|feed|telnet):/);if(field.value!==""&&matches===null)field.value="http://"+
|
7 |
+
url}function validateField(fieldId,field){var errors=[];var $fieldCont=jQuery(field).closest(".frm_form_field");if($fieldCont.hasClass("frm_required_field")&&!jQuery(field).hasClass("frm_optional"))errors=checkRequiredField(field,errors);if(errors.length<1)if(field.type==="email"){var emailFields=jQuery(field).closest("form").find("input[type=email]");errors=checkEmailField(field,errors,emailFields)}else if(field.type==="number")errors=checkNumberField(field,errors);else if(field.pattern!==null)errors=
|
8 |
+
checkPatternField(field,errors);removeFieldError($fieldCont);if(Object.keys(errors).length>0)for(var key in errors)addFieldError($fieldCont,key,errors)}function checkRequiredField(field,errors){var fileID=field.getAttribute("data-frmfile");if(field.type==="hidden"&&fileID===null)return errors;var val="";var fieldID="";if(field.type==="checkbox"||field.type==="radio"){var checkGroup=jQuery('input[name="'+field.name+'"]').closest(".frm_required_field").find("input:checked");jQuery(checkGroup).each(function(){val=
|
9 |
+
this.value})}else if(field.type==="file"||fileID){if(typeof fileID==="undefined"){fileID=getFieldId(field,true);fileID=fileID.replace("file","")}if(typeof errors[fileID]==="undefined")val=getFileVals(fileID);fieldID=fileID}else{var fieldClasses=field.className;if(fieldClasses.indexOf("frm_pos_none")!==-1)return errors;val=jQuery(field).val();if(val===null)val="";else if(typeof val!=="string"){var tempVal=val;val="";for(var i=0;i<tempVal.length;i++)if(tempVal[i]!=="")val=tempVal[i]}if(fieldClasses.indexOf("frm_other_input")===
|
10 |
+
-1)fieldID=getFieldId(field,true);else fieldID=getFieldId(field,false);if(fieldClasses.indexOf("frm_time_select")!==-1)fieldID=fieldID.replace("-H","").replace("-m","");var placeholder=field.getAttribute("data-frmplaceholder");if(placeholder!==null&&val===placeholder)val=""}if(val===""){if(fieldID==="")fieldID=getFieldId(field,true);if(!(fieldID in errors))errors[fieldID]=getFieldValidationMessage(field,"data-reqmsg")}return errors}function getFileVals(fileID){var val="";var fileFields=jQuery('input[name="file'+
|
11 |
+
fileID+'"], input[name="file'+fileID+'[]"], input[name^="item_meta['+fileID+']"]');fileFields.each(function(){if(val==="")val=this.value});return val}function checkEmailField(field,errors,emailFields){var emailAddress=field.value;var fieldID=getFieldId(field,true);if(fieldID in errors)return errors;var isConf=fieldID.indexOf("conf_")===0;if(emailAddress!==""||isConf){var re=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/i;
|
12 |
+
var invalidMsg=getFieldValidationMessage(field,"data-invmsg");if(emailAddress!==""&&re.test(emailAddress)===false){errors[fieldID]=invalidMsg;if(isConf)errors[fieldID.replace("conf_","")]=""}else if(isConf){var confName=field.name.replace("conf_","");var match=emailFields.filter('[name="'+confName+'"]').val();if(match!==emailAddress){errors[fieldID]="";errors[fieldID.replace("conf_","")]=""}}}return errors}function checkNumberField(field,errors){var number=field.value;if(number!==""&&isNaN(number/
|
13 |
+
1)!==false){var fieldID=getFieldId(field,true);if(!(fieldID in errors))errors[fieldID]=getFieldValidationMessage(field,"data-invmsg")}return errors}function checkPatternField(field,errors){var text=field.value;var format=getFieldValidationMessage(field,"pattern");if(format!==""&&text!==""){var fieldID=getFieldId(field,true);if(!(fieldID in errors)){format=new RegExp("^"+format+"$","i");if(format.test(text)===false)errors[fieldID]=getFieldValidationMessage(field,"data-invmsg")}}return errors}function hasInvisibleRecaptcha(object){if(isGoingToPrevPage(object))return false;
|
14 |
+
var recaptcha=jQuery(object).find('.frm-g-recaptcha[data-size="invisible"], .g-recaptcha[data-size="invisible"]');if(recaptcha.length){var recaptchaID=recaptcha.data("rid");var alreadyChecked=grecaptcha.getResponse(recaptchaID);if(alreadyChecked.length===0)return recaptcha;else return false}else return false}function executeInvisibleRecaptcha(invisibleRecaptcha){var recaptchaID=invisibleRecaptcha.data("rid");grecaptcha.reset(recaptchaID);grecaptcha.execute(recaptchaID)}function validateRecaptcha(form,
|
15 |
+
errors){var $recaptcha=jQuery(form).find(".frm-g-recaptcha");if($recaptcha.length){var recaptchaID=$recaptcha.data("rid");var response=grecaptcha.getResponse(recaptchaID);if(response.length===0){var fieldContainer=$recaptcha.closest(".frm_form_field");var fieldID=fieldContainer.attr("id").replace("frm_field_","").replace("_container","");errors[fieldID]=""}}return errors}function getFieldValidationMessage(field,messageType){var msg=field.getAttribute(messageType);if(msg===null)msg="";return msg}function shouldJSValidate(object){var validate=
|
16 |
+
jQuery(object).hasClass("frm_js_validate");if(validate&&typeof frmProForm!=="undefined"&&(frmProForm.savingDraft(object)||frmProForm.goingToPreviousPage(object)))validate=false;return validate}function getFormErrors(object,action){if(typeof action==="undefined")jQuery(object).find('input[name="frm_action"]').val();var fieldset=jQuery(object).find(".frm_form_field");fieldset.addClass("frm_doing_ajax");jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:jQuery(object).serialize()+"&action=frm_entries_"+
|
17 |
+
action+"&nonce="+frm_js.nonce,success:function(response){var defaultResponse={"content":"","errors":{},"pass":false};if(response===null)response=defaultResponse;response=response.replace(/^\s+|\s+$/g,"");if(response.indexOf("{")===0)response=jQuery.parseJSON(response);else response=defaultResponse;if(typeof response.redirect!=="undefined"){jQuery(document).trigger("frmBeforeFormRedirect",[object,response]);window.location=response.redirect}else if(response.content!==""){removeSubmitLoading(jQuery(object));
|
18 |
+
if(frm_js.offset!=-1)frmFrontForm.scrollMsg(jQuery(object),false);var formID=jQuery(object).find('input[name="form_id"]').val();response.content=response.content.replace(/ frm_pro_form /g," frm_pro_form frm_no_hide ");var replaceContent=jQuery(object).closest(".frm_forms");removeAddedScripts(replaceContent,formID);replaceContent.replaceWith(response.content);addUrlParam(response);if(typeof frmThemeOverride_frmAfterSubmit==="function"){var pageOrder=jQuery('input[name="frm_page_order_'+formID+'"]').val();
|
19 |
+
var formReturned=jQuery(response.content).find('input[name="form_id"]').val();frmThemeOverride_frmAfterSubmit(formReturned,pageOrder,response.content,object)}afterFormSubmitted(object,response)}else if(Object.keys(response.errors).length){removeSubmitLoading(jQuery(object),"enable");var cont_submit=true;removeAllErrors();var show_captcha=false;var $fieldCont=null;for(var key in response.errors){$fieldCont=jQuery(object).find("#frm_field_"+key+"_container");if($fieldCont.length){if(!$fieldCont.is(":visible")){var inCollapsedSection=
|
20 |
+
$fieldCont.closest(".frm_toggle_container");if(inCollapsedSection.length){var frmTrigger=inCollapsedSection.prev();if(!frmTrigger.hasClass("frm_trigger"))frmTrigger=frmTrigger.prev(".frm_trigger");frmTrigger.click()}}if($fieldCont.is(":visible")){addFieldError($fieldCont,key,response.errors);cont_submit=false;var $recaptcha=jQuery(object).find("#frm_field_"+key+"_container .frm-g-recaptcha, #frm_field_"+key+"_container .g-recaptcha");if($recaptcha.length){show_captcha=true;var recaptchaID=$recaptcha.data("rid");
|
21 |
+
if(jQuery().grecaptcha)if(recaptchaID)grecaptcha.reset(recaptchaID);else grecaptcha.reset()}}}}jQuery(document).trigger("frmFormErrors",[object,response]);fieldset.removeClass("frm_doing_ajax");scrollToFirstField(object);if(show_captcha!==true)replaceCheckedRecaptcha(object,false);if(cont_submit)object.submit();else jQuery(object).prepend(response.error_message)}else{showFileLoading(object);replaceCheckedRecaptcha(object,true);object.submit()}},error:function(){jQuery(object).find('input[type="submit"], input[type="button"]').removeAttr("disabled");
|
22 |
+
object.submit()}})}function afterFormSubmitted(object,response){var formCompleted=jQuery(response.content).find(".frm_message");if(formCompleted.length)jQuery(document).trigger("frmFormComplete",[object,response]);else jQuery(document).trigger("frmPageChanged",[object,response])}function removeAddedScripts(formContainer,formID){var endReplace=jQuery(".frm_end_ajax_"+formID);if(endReplace.length){formContainer.nextUntil(".frm_end_ajax_"+formID).remove();endReplace.remove()}}function addUrlParam(response){if(history.pushState&&
|
23 |
typeof response.page!=="undefined"){var url=addQueryVar("frm_page",response.page);window.history.pushState({"html":response.html},"","?"+url)}}function addQueryVar(key,value){key=encodeURI(key);value=encodeURI(value);var kvp=document.location.search.substr(1).split("&");var i=kvp.length;var x;while(i--){x=kvp[i].split("=");if(x[0]==key){x[1]=value;kvp[i]=x.join("=");break}}if(i<0)kvp[kvp.length]=[key,value].join("=");return kvp.join("&")}function addFieldError($fieldCont,key,jsErrors){if($fieldCont.length&&
|
24 |
$fieldCont.is(":visible")){$fieldCont.addClass("frm_blank_field");var input=$fieldCont.find("input, select, textarea"),id="frm_error_field_"+key,describedBy=input.attr("aria-describedby");if(typeof frmThemeOverride_frmPlaceError==="function")frmThemeOverride_frmPlaceError(key,jsErrors);else{$fieldCont.append('<div class="frm_error" id="'+id+'">'+jsErrors[key]+"</div>");if(typeof describedBy==="undefined")describedBy=id;else if(describedBy.indexOf(id)===-1)describedBy=describedBy+" "+id;input.attr("aria-describedby",
|
25 |
describedBy)}input.attr("aria-invalid",true);jQuery(document).trigger("frmAddFieldError",[$fieldCont,key,jsErrors])}}function removeFieldError($fieldCont){var errorMessage=$fieldCont.find(".frm_error"),errorId=errorMessage.attr("id"),input=$fieldCont.find("input, select, textarea"),describedBy=input.attr("aria-describedby");$fieldCont.removeClass("frm_blank_field has-error");errorMessage.remove();input.attr("aria-invalid",false);if(typeof describedBy!=="undefined"){describedBy=describedBy.replace(errorId,
|
26 |
+
"");input.attr("aria-describedby",describedBy)}}function removeAllErrors(){jQuery(".form-field").removeClass("frm_blank_field has-error");jQuery(".form-field .frm_error").replaceWith("");jQuery(".frm_error_style").remove()}function scrollToFirstField(object){var field=jQuery(object).find(".frm_blank_field:first");if(field.length)frmFrontForm.scrollMsg(field,object,true)}function showSubmitLoading($object){showLoadingIndicator($object);disableSubmitButton($object);disableSaveDraft($object)}function showLoadingIndicator($object){if(!$object.hasClass("frm_loading_form")&&
|
27 |
!$object.hasClass("frm_loading_prev")){addLoadingClass($object);$object.trigger("frmStartFormLoading")}}function addLoadingClass($object){var loading_class=isGoingToPrevPage($object)?"frm_loading_prev":"frm_loading_form";$object.addClass(loading_class)}function isGoingToPrevPage($object){return typeof frmProForm!=="undefined"&&frmProForm.goingToPreviousPage($object)}function removeSubmitLoading($object,enable,processesRunning){if(processesRunning>0)return;var loadingForm=jQuery(".frm_loading_form");
|
28 |
+
loadingForm.removeClass("frm_loading_form");loadingForm.removeClass("frm_loading_prev");loadingForm.trigger("frmEndFormLoading");if(enable==="enable"){enableSubmitButton(loadingForm);enableSaveDraft(loadingForm)}}function showFileLoading(object){var loading=document.getElementById("frm_loading");if(loading!==null){var file_val=jQuery(object).find("input[type=file]").val();if(typeof file_val!=="undefined"&&file_val!=="")setTimeout(function(){jQuery(loading).fadeIn("slow")},2E3)}}function replaceCheckedRecaptcha(object,
|
29 |
+
checkPage){var $recapField=jQuery(object).find(".frm-g-recaptcha, .g-recaptcha");if($recapField.length){if(checkPage){var morePages=jQuery(object).find(".frm_next_page").length<1||jQuery(object).find(".frm_next_page").val()<1;if(!morePages)return}$recapField.closest(".frm_form_field").replaceWith('<input type="hidden" name="recaptcha_checked" value="'+frm_js.nonce+'">')}}function clearDefault(){toggleDefault(jQuery(this),"clear")}function replaceDefault(){toggleDefault(jQuery(this),"replace")}function toggleDefault($thisField,
|
30 |
e){var v=$thisField.data("frmval").replace(/(\n|\r\n)/g,"\r");if(v===""||typeof v==="undefined")return false;var thisVal=$thisField.val().replace(/(\n|\r\n)/g,"\r");if("replace"==e){if(thisVal==="")$thisField.addClass("frm_default").val(v)}else if(thisVal==v)$thisField.removeClass("frm_default").val("")}function resendEmail(){var $link=jQuery(this),entry_id=this.getAttribute("data-eid"),form_id=this.getAttribute("data-fid"),label=$link.find(".frm_link_label");if(label.length<1)label=$link;label.append('<span class="frm-wait"></span>');
|
31 |
jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_send_email",entry_id:entry_id,form_id:form_id,nonce:frm_js.nonce},success:function(msg){label.html(msg)}});return false}function confirmClick(){var message=jQuery(this).data("frmconfirm");return confirm(message)}function toggleDiv(){var div=jQuery(this).data("frmtoggle");if(jQuery(div).is(":visible"))jQuery(div).slideUp("fast");else jQuery(div).slideDown("fast");return false}function addIndexOfFallbackForIE8(){if(!Array.prototype.indexOf)Array.prototype.indexOf=
|
32 |
function(elt){var len=this.length>>>0;var from=Number(arguments[1])||0;from=from<0?Math.ceil(from):Math.floor(from);if(from<0)from+=len;for(;from<len;from++)if(from in this&&this[from]===elt)return from;return-1}}function addTrimFallbackForIE8(){if(typeof String.prototype.trim!=="function")String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}}function addFilterFallbackForIE8(){if(!Array.prototype.filter)Array.prototype.filter=function(fun){if(this===void 0||this===null)throw new TypeError;
|
js/formidable_admin.js
CHANGED
@@ -4399,52 +4399,54 @@ function frmAdminBuildJS() {
|
|
4399 |
function startFormMigration( event ) {
|
4400 |
event.preventDefault();
|
4401 |
|
4402 |
-
var checkedBoxes = jQuery( '
|
4403 |
-
if ( checkedBoxes.length ) {
|
|
|
|
|
4404 |
|
4405 |
-
|
4406 |
-
|
4407 |
-
|
4408 |
-
|
4409 |
|
4410 |
-
|
4411 |
-
|
4412 |
-
}
|
4413 |
}
|
4414 |
|
4415 |
/**
|
4416 |
* Begins the process of importing the forms.
|
4417 |
*/
|
4418 |
-
function importForms( forms ) {
|
4419 |
|
4420 |
-
|
|
|
|
|
4421 |
|
4422 |
// Display total number of forms we have to import.
|
4423 |
$processSettings.find( '.form-total' ).text( forms.length );
|
4424 |
$processSettings.find( '.form-current' ).text( '1' );
|
4425 |
|
4426 |
-
|
4427 |
-
jQuery( '#frm_form_importer' ).hide();
|
4428 |
|
4429 |
// Show processing status.
|
4430 |
-
|
4431 |
$processSettings.find( '.process-completed' ).hide();
|
|
|
4432 |
|
4433 |
// Create global import queue.
|
4434 |
s.importQueue = forms;
|
4435 |
s.imported = 0;
|
4436 |
|
4437 |
// Import the first form in the queue.
|
4438 |
-
importForm();
|
4439 |
}
|
4440 |
|
4441 |
/**
|
4442 |
* Imports a single form from the import queue.
|
4443 |
*/
|
4444 |
-
function importForm() {
|
4445 |
-
var
|
4446 |
-
|
4447 |
-
provider = jQuery( 'input[name="slug"]' ).val(),
|
4448 |
data = {
|
4449 |
action: 'frm_import_' + provider,
|
4450 |
form_id: formID,
|
@@ -4479,7 +4481,7 @@ function frmAdminBuildJS() {
|
|
4479 |
} else {
|
4480 |
// Import next form in the queue.
|
4481 |
$processSettings.find( '.form-current' ).text( s.imported + 1 );
|
4482 |
-
importForm();
|
4483 |
}
|
4484 |
}
|
4485 |
} );
|
@@ -5808,7 +5810,7 @@ function frmAdminBuildJS() {
|
|
5808 |
},
|
5809 |
|
5810 |
exportInit: function() {
|
5811 |
-
jQuery( '
|
5812 |
jQuery( document.getElementById( 'frm_export_xml' ) ).submit( validateExport );
|
5813 |
jQuery( '#frm_export_xml input, #frm_export_xml select' ).change( removeExportError );
|
5814 |
jQuery( 'input[name="frm_import_file"]' ).change( checkCSVExtension );
|
4399 |
function startFormMigration( event ) {
|
4400 |
event.preventDefault();
|
4401 |
|
4402 |
+
var checkedBoxes = jQuery( event.target ).find( 'input:checked' );
|
4403 |
+
if ( ! checkedBoxes.length ) {
|
4404 |
+
return;
|
4405 |
+
}
|
4406 |
|
4407 |
+
var ids = [];
|
4408 |
+
checkedBoxes.each( function( i ) {
|
4409 |
+
ids[i] = this.value;
|
4410 |
+
} );
|
4411 |
|
4412 |
+
// Begin the import process.
|
4413 |
+
importForms( ids, event.target );
|
|
|
4414 |
}
|
4415 |
|
4416 |
/**
|
4417 |
* Begins the process of importing the forms.
|
4418 |
*/
|
4419 |
+
function importForms( forms, targetForm ) {
|
4420 |
|
4421 |
+
// Hide the form select section.
|
4422 |
+
var $form = jQuery( targetForm ),
|
4423 |
+
$processSettings = $form.next( '.frm-importer-process' );
|
4424 |
|
4425 |
// Display total number of forms we have to import.
|
4426 |
$processSettings.find( '.form-total' ).text( forms.length );
|
4427 |
$processSettings.find( '.form-current' ).text( '1' );
|
4428 |
|
4429 |
+
$form.hide();
|
|
|
4430 |
|
4431 |
// Show processing status.
|
4432 |
+
// '.process-completed' might have been shown earlier during a previous import, so hide now.
|
4433 |
$processSettings.find( '.process-completed' ).hide();
|
4434 |
+
$processSettings.show();
|
4435 |
|
4436 |
// Create global import queue.
|
4437 |
s.importQueue = forms;
|
4438 |
s.imported = 0;
|
4439 |
|
4440 |
// Import the first form in the queue.
|
4441 |
+
importForm( $processSettings );
|
4442 |
}
|
4443 |
|
4444 |
/**
|
4445 |
* Imports a single form from the import queue.
|
4446 |
*/
|
4447 |
+
function importForm( $processSettings ) {
|
4448 |
+
var formID = s.importQueue[0],
|
4449 |
+
provider = $processSettings.closest( '.welcome-panel-content' ).find( 'input[name="slug"]' ).val(),
|
|
|
4450 |
data = {
|
4451 |
action: 'frm_import_' + provider,
|
4452 |
form_id: formID,
|
4481 |
} else {
|
4482 |
// Import next form in the queue.
|
4483 |
$processSettings.find( '.form-current' ).text( s.imported + 1 );
|
4484 |
+
importForm( $processSettings );
|
4485 |
}
|
4486 |
}
|
4487 |
} );
|
5810 |
},
|
5811 |
|
5812 |
exportInit: function() {
|
5813 |
+
jQuery( '.frm_form_importer' ).submit( startFormMigration );
|
5814 |
jQuery( document.getElementById( 'frm_export_xml' ) ).submit( validateExport );
|
5815 |
jQuery( '#frm_export_xml input, #frm_export_xml select' ).change( removeExportError );
|
5816 |
jQuery( 'input[name="frm_import_file"]' ).change( checkCSVExtension );
|
languages/formidable.pot
CHANGED
@@ -2,14 +2,14 @@
|
|
2 |
# This file is distributed under the same license as the Formidable Forms plugin.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Formidable Forms 4.04.
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/formidable\n"
|
7 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
8 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"POT-Creation-Date: 2020-04-
|
13 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
14 |
"X-Generator: WP-CLI 2.1.0\n"
|
15 |
"X-Domain: formidable\n"
|
@@ -320,6 +320,7 @@ msgid "Repeater"
|
|
320 |
msgstr ""
|
321 |
|
322 |
#: classes/models/FrmField.php:122
|
|
|
323 |
msgid "Section Buttons"
|
324 |
msgstr ""
|
325 |
|
@@ -394,12 +395,12 @@ msgstr ""
|
|
394 |
msgid "You do not have permission to do that"
|
395 |
msgstr ""
|
396 |
|
397 |
-
#: classes/models/FrmEntryValidate.php:
|
398 |
-
#: classes/models/FrmEntryValidate.php:
|
399 |
msgid "Your entry appears to be spam!"
|
400 |
msgstr ""
|
401 |
|
402 |
-
#: classes/models/FrmEntryValidate.php:
|
403 |
msgid "Your entry appears to be blacklist spam!"
|
404 |
msgstr ""
|
405 |
|
@@ -531,21 +532,26 @@ msgstr ""
|
|
531 |
msgid "Entry is imported"
|
532 |
msgstr ""
|
533 |
|
534 |
-
#: classes/models/FrmFormMigrator.php:
|
|
|
|
|
|
|
|
|
|
|
535 |
msgid "No form fields found."
|
536 |
msgstr ""
|
537 |
|
538 |
-
#: classes/models/FrmFormMigrator.php:
|
539 |
msgid "There was an error while creating a new form."
|
540 |
msgstr ""
|
541 |
|
542 |
-
#: classes/models/FrmFormMigrator.php:
|
543 |
msgid "Default Form"
|
544 |
msgstr ""
|
545 |
|
546 |
#. translators: %1$s - field type
|
547 |
#. translators: %1$s: Number of items
|
548 |
-
#: classes/models/FrmFormMigrator.php:
|
549 |
#: classes/helpers/FrmXMLHelper.php:981
|
550 |
msgid "%1$s Field"
|
551 |
msgid_plural "%1$s Fields"
|
@@ -580,7 +586,8 @@ msgstr ""
|
|
580 |
#: classes/controllers/FrmAddonsController.php:19
|
581 |
#: classes/controllers/FrmAddonsController.php:20
|
582 |
#: classes/views/frm-fields/back-end/smart-values.php:11
|
583 |
-
|
|
|
584 |
msgstr ""
|
585 |
|
586 |
#: classes/controllers/FrmAddonsController.php:52
|
@@ -592,7 +599,7 @@ msgid "Installed"
|
|
592 |
msgstr ""
|
593 |
|
594 |
#: classes/controllers/FrmAddonsController.php:484
|
595 |
-
#: classes/helpers/FrmAppHelper.php:
|
596 |
msgid "Active"
|
597 |
msgstr ""
|
598 |
|
@@ -628,7 +635,7 @@ msgstr ""
|
|
628 |
#: classes/controllers/FrmFormsController.php:729
|
629 |
#: classes/controllers/FrmEntriesController.php:8
|
630 |
#: classes/controllers/FrmEntriesController.php:90
|
631 |
-
#: classes/views/xml/import_form.php:
|
632 |
msgid "Entries"
|
633 |
msgstr ""
|
634 |
|
@@ -808,7 +815,7 @@ msgstr ""
|
|
808 |
|
809 |
#: classes/controllers/FrmStylesController.php:36
|
810 |
#: classes/controllers/FrmStylesController.php:37
|
811 |
-
#: classes/views/xml/import_form.php:
|
812 |
#: classes/views/styles/_field-description.php:14
|
813 |
#: classes/views/styles/_field-colors.php:18
|
814 |
#: classes/views/styles/_field-colors.php:77
|
@@ -846,7 +853,7 @@ msgstr ""
|
|
846 |
#: classes/controllers/FrmStylesController.php:390
|
847 |
#: classes/controllers/FrmFormsController.php:728
|
848 |
#: classes/views/frm-forms/settings-advanced.php:8
|
849 |
-
#: classes/views/xml/import_form.php:
|
850 |
#: classes/views/styles/_sample_form.php:14
|
851 |
#: classes/views/styles/manage.php:34
|
852 |
msgid "Form Title"
|
@@ -962,7 +969,7 @@ msgstr ""
|
|
962 |
|
963 |
#: classes/controllers/FrmFormsController.php:630
|
964 |
#: classes/controllers/FrmEntriesController.php:74
|
965 |
-
#: classes/views/xml/import_form.php:
|
966 |
#: classes/widgets/FrmShowForm.php:56
|
967 |
msgid "Form"
|
968 |
msgstr ""
|
@@ -990,7 +997,7 @@ msgid "Template Name"
|
|
990 |
msgstr ""
|
991 |
|
992 |
#: classes/controllers/FrmFormsController.php:725
|
993 |
-
#: classes/views/xml/import_form.php:
|
994 |
msgid "Type"
|
995 |
msgstr ""
|
996 |
|
@@ -1157,8 +1164,8 @@ msgid "Abnormal HTML characters prevented your form from saving correctly"
|
|
1157 |
msgstr ""
|
1158 |
|
1159 |
#: classes/controllers/FrmFormsController.php:1468
|
1160 |
-
#: classes/views/frm-forms/list-templates.php:
|
1161 |
-
#: classes/views/xml/import_form.php:
|
1162 |
#: classes/views/styles/manage.php:54
|
1163 |
#: classes/helpers/FrmFormsListHelper.php:317
|
1164 |
#: classes/helpers/FrmFormsHelper.php:57
|
@@ -1264,8 +1271,8 @@ msgid "Show options"
|
|
1264 |
msgstr ""
|
1265 |
|
1266 |
#: classes/views/frm-forms/_publish_box.php:16
|
1267 |
-
#: classes/views/frm-forms/list-templates.php:
|
1268 |
-
#: classes/views/frm-forms/list-templates.php:
|
1269 |
#: classes/helpers/FrmFormsListHelper.php:308
|
1270 |
msgid "Preview"
|
1271 |
msgstr ""
|
@@ -1315,8 +1322,8 @@ msgstr ""
|
|
1315 |
|
1316 |
#: classes/views/frm-forms/new-form-overlay.php:31
|
1317 |
#: classes/views/shared/confirm-overlay.php:14
|
1318 |
-
#: classes/views/shared/admin-header.php:
|
1319 |
-
#: classes/helpers/FrmAppHelper.php:
|
1320 |
msgid "Cancel"
|
1321 |
msgstr ""
|
1322 |
|
@@ -1324,11 +1331,11 @@ msgstr ""
|
|
1324 |
msgid "Templates"
|
1325 |
msgstr ""
|
1326 |
|
1327 |
-
#: classes/views/frm-forms/list.php:
|
1328 |
#: classes/views/shared/mb_adv_info.php:35
|
1329 |
#: classes/views/shared/mb_adv_info.php:178
|
1330 |
-
#: classes/views/frm-entries/list.php:
|
1331 |
-
#: classes/helpers/FrmAppHelper.php:
|
1332 |
msgid "Search"
|
1333 |
msgstr ""
|
1334 |
|
@@ -1345,68 +1352,75 @@ msgstr ""
|
|
1345 |
msgid "Blank Form"
|
1346 |
msgstr ""
|
1347 |
|
1348 |
-
#: classes/views/frm-forms/list-templates.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1349 |
msgid "Search Templates"
|
1350 |
msgstr ""
|
1351 |
|
1352 |
-
#: classes/views/frm-forms/list-templates.php:
|
1353 |
#: classes/helpers/FrmEntriesListHelper.php:141
|
1354 |
msgid "Filter"
|
1355 |
msgstr ""
|
1356 |
|
1357 |
-
#: classes/views/frm-forms/list-templates.php:
|
1358 |
msgid "Filter Templates"
|
1359 |
msgstr ""
|
1360 |
|
1361 |
-
#: classes/views/frm-forms/list-templates.php:
|
1362 |
msgid "Premium Templates"
|
1363 |
msgstr ""
|
1364 |
|
1365 |
-
#: classes/views/frm-forms/list-templates.php:
|
1366 |
-
#: classes/views/frm-forms/list-templates.php:
|
1367 |
msgid "My Templates"
|
1368 |
msgstr ""
|
1369 |
|
1370 |
#. translators: %s: Link with label
|
1371 |
-
#: classes/views/frm-forms/list-templates.php:
|
1372 |
msgid "This template requires an active %s license or above."
|
1373 |
msgstr ""
|
1374 |
|
1375 |
-
#: classes/views/frm-forms/list-templates.php:
|
1376 |
msgid "Category:"
|
1377 |
msgstr ""
|
1378 |
|
1379 |
-
#: classes/views/frm-forms/list-templates.php:
|
1380 |
#: classes/views/addons/list.php:16
|
1381 |
msgid "Check now for a recent upgrade or renewal"
|
1382 |
msgstr ""
|
1383 |
|
1384 |
-
#: classes/views/frm-forms/list-templates.php:
|
1385 |
msgid "Create a template from an existing form"
|
1386 |
msgstr ""
|
1387 |
|
1388 |
-
#: classes/views/frm-forms/list-templates.php:
|
1389 |
msgid "Select form for new template"
|
1390 |
msgstr ""
|
1391 |
|
1392 |
-
#: classes/views/frm-forms/list-templates.php:
|
1393 |
#: classes/views/frm-entries/no_entries.php:37
|
1394 |
msgid "You have not created any forms yet."
|
1395 |
msgstr ""
|
1396 |
|
1397 |
-
#: classes/views/frm-forms/list-templates.php:
|
1398 |
msgid "You do not have any custom templates yet."
|
1399 |
msgstr ""
|
1400 |
|
1401 |
-
#: classes/views/frm-forms/list-templates.php:
|
1402 |
msgid "Learn how to create custom form templates."
|
1403 |
msgstr ""
|
1404 |
|
1405 |
-
#: classes/views/frm-forms/list-templates.php:
|
1406 |
msgid "Delete this form template?"
|
1407 |
msgstr ""
|
1408 |
|
1409 |
-
#: classes/views/frm-forms/list-templates.php:
|
1410 |
#: classes/views/frm-form-actions/form_action.php:21
|
1411 |
#: classes/helpers/FrmEntriesListHelper.php:286
|
1412 |
#: classes/helpers/FrmFormsListHelper.php:135
|
@@ -1414,8 +1428,8 @@ msgstr ""
|
|
1414 |
msgid "Delete"
|
1415 |
msgstr ""
|
1416 |
|
1417 |
-
#: classes/views/frm-forms/list-templates.php:
|
1418 |
-
#: classes/views/frm-forms/list-templates.php:
|
1419 |
#: classes/helpers/FrmFormsHelper.php:1264
|
1420 |
msgid "Create Form"
|
1421 |
msgstr ""
|
@@ -1507,7 +1521,7 @@ msgid "Show Page Content"
|
|
1507 |
msgstr ""
|
1508 |
|
1509 |
#: classes/views/frm-forms/settings-advanced.php:93
|
1510 |
-
#: classes/helpers/FrmAppHelper.php:
|
1511 |
msgid "Select a Page"
|
1512 |
msgstr ""
|
1513 |
|
@@ -1813,7 +1827,7 @@ msgstr ""
|
|
1813 |
#: classes/views/addons/list.php:74
|
1814 |
#: classes/views/addons/list.php:75
|
1815 |
#: classes/views/shared/upgrade_overlay.php:27
|
1816 |
-
#: classes/helpers/FrmAppHelper.php:
|
1817 |
msgid "Install"
|
1818 |
msgstr ""
|
1819 |
|
@@ -1840,7 +1854,7 @@ msgstr ""
|
|
1840 |
|
1841 |
#: classes/views/shared/confirm-overlay.php:10
|
1842 |
#: classes/views/shared/info-overlay.php:10
|
1843 |
-
#: classes/helpers/FrmAppHelper.php:
|
1844 |
msgid "Are you sure?"
|
1845 |
msgstr ""
|
1846 |
|
@@ -1955,7 +1969,7 @@ msgstr ""
|
|
1955 |
|
1956 |
#: classes/views/shared/mb_adv_info.php:90
|
1957 |
#: classes/helpers/FrmCSVExportHelper.php:154
|
1958 |
-
#: classes/helpers/FrmAppHelper.php:
|
1959 |
msgid "ID"
|
1960 |
msgstr ""
|
1961 |
|
@@ -1965,7 +1979,7 @@ msgstr ""
|
|
1965 |
|
1966 |
#: classes/views/shared/mb_adv_info.php:108
|
1967 |
#: classes/views/shared/mb_adv_info.php:122
|
1968 |
-
#: classes/helpers/FrmAppHelper.php:
|
1969 |
msgid "Select a Field"
|
1970 |
msgstr ""
|
1971 |
|
@@ -1981,10 +1995,6 @@ msgstr ""
|
|
1981 |
msgid "Got it!"
|
1982 |
msgstr ""
|
1983 |
|
1984 |
-
#: classes/views/xml/import_form.php:12
|
1985 |
-
msgid "Import"
|
1986 |
-
msgstr ""
|
1987 |
-
|
1988 |
#: classes/views/xml/import_form.php:13
|
1989 |
msgid "Upload your Formidable XML file to import forms into this site. If your imported form key and creation date match a form on your site, that form will be updated."
|
1990 |
msgstr ""
|
@@ -2002,61 +2012,61 @@ msgstr ""
|
|
2002 |
msgid "Upload file and import"
|
2003 |
msgstr ""
|
2004 |
|
2005 |
-
#: classes/views/xml/import_form.php:
|
2006 |
msgid "Export"
|
2007 |
msgstr ""
|
2008 |
|
2009 |
-
#: classes/views/xml/import_form.php:
|
2010 |
msgid "Export your forms, entries, views, and styles so you can easily import them on another site."
|
2011 |
msgstr ""
|
2012 |
|
2013 |
-
#: classes/views/xml/import_form.php:
|
2014 |
msgid "Export Format"
|
2015 |
msgstr ""
|
2016 |
|
2017 |
-
#: classes/views/xml/import_form.php:
|
2018 |
msgid "If your CSV special characters are not working correctly, try a different formatting option."
|
2019 |
msgstr ""
|
2020 |
|
2021 |
-
#: classes/views/xml/import_form.php:
|
2022 |
msgid "CSV Encoding Format"
|
2023 |
msgstr ""
|
2024 |
|
2025 |
-
#: classes/views/xml/import_form.php:
|
2026 |
msgid "Column Separation"
|
2027 |
msgstr ""
|
2028 |
|
2029 |
-
#: classes/views/xml/import_form.php:
|
2030 |
msgid "Include the following in the export file"
|
2031 |
msgstr ""
|
2032 |
|
2033 |
-
#: classes/views/xml/import_form.php:
|
2034 |
msgid "Select Form(s)"
|
2035 |
msgstr ""
|
2036 |
|
2037 |
-
#: classes/views/xml/import_form.php:
|
2038 |
msgid "Select a Form"
|
2039 |
msgstr ""
|
2040 |
|
2041 |
-
#: classes/views/xml/import_form.php:
|
2042 |
#: classes/helpers/FrmFormsHelper.php:144
|
2043 |
msgid "Search Forms"
|
2044 |
msgstr ""
|
2045 |
|
2046 |
-
#: classes/views/xml/import_form.php:
|
2047 |
msgid "ID / Form Key"
|
2048 |
msgstr ""
|
2049 |
|
2050 |
-
#: classes/views/xml/import_form.php:
|
2051 |
msgid "Template"
|
2052 |
msgstr ""
|
2053 |
|
2054 |
#. translators: %1$s: Form name
|
2055 |
-
#: classes/views/xml/import_form.php:
|
2056 |
msgid "Child Form (%1$s)"
|
2057 |
msgstr ""
|
2058 |
|
2059 |
-
#: classes/views/xml/import_form.php:
|
2060 |
msgid "Export Selection"
|
2061 |
msgstr ""
|
2062 |
|
@@ -2580,7 +2590,7 @@ msgid "Label Position"
|
|
2580 |
msgstr ""
|
2581 |
|
2582 |
#: classes/views/frm-fields/back-end/settings.php:265
|
2583 |
-
#: classes/helpers/FrmAppHelper.php:
|
2584 |
msgid "Default"
|
2585 |
msgstr ""
|
2586 |
|
@@ -2975,7 +2985,7 @@ msgid "Referrer:"
|
|
2975 |
msgstr ""
|
2976 |
|
2977 |
#: classes/views/frm-entries/list.php:9
|
2978 |
-
#: classes/views/frm-entries/list.php:
|
2979 |
msgid "Form Entries"
|
2980 |
msgstr ""
|
2981 |
|
@@ -3266,12 +3276,8 @@ msgstr ""
|
|
3266 |
msgid "See all forms."
|
3267 |
msgstr ""
|
3268 |
|
3269 |
-
#: classes/helpers/FrmFormsListHelper.php:111
|
3270 |
-
msgid "No Forms Found."
|
3271 |
-
msgstr ""
|
3272 |
-
|
3273 |
#: classes/helpers/FrmFormsListHelper.php:114
|
3274 |
-
#: classes/helpers/FrmAppHelper.php:
|
3275 |
msgid "Add New"
|
3276 |
msgstr ""
|
3277 |
|
@@ -3323,7 +3329,7 @@ msgid "Draft"
|
|
3323 |
msgstr ""
|
3324 |
|
3325 |
#: classes/helpers/FrmFieldsHelper.php:286
|
3326 |
-
#: classes/helpers/FrmAppHelper.php:
|
3327 |
msgid "The entered values do not match"
|
3328 |
msgstr ""
|
3329 |
|
@@ -3334,7 +3340,7 @@ msgstr ""
|
|
3334 |
|
3335 |
#: classes/helpers/FrmFieldsHelper.php:456
|
3336 |
#: classes/helpers/FrmFieldsHelper.php:457
|
3337 |
-
#: classes/helpers/FrmAppHelper.php:
|
3338 |
msgid "New Option"
|
3339 |
msgstr ""
|
3340 |
|
@@ -3351,1132 +3357,1132 @@ msgstr ""
|
|
3351 |
msgid "Categories"
|
3352 |
msgstr ""
|
3353 |
|
3354 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3355 |
msgid "Afghanistan"
|
3356 |
msgstr ""
|
3357 |
|
3358 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3359 |
msgid "Aland Islands"
|
3360 |
msgstr ""
|
3361 |
|
3362 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3363 |
msgid "Albania"
|
3364 |
msgstr ""
|
3365 |
|
3366 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3367 |
msgid "Algeria"
|
3368 |
msgstr ""
|
3369 |
|
3370 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3371 |
msgid "American Samoa"
|
3372 |
msgstr ""
|
3373 |
|
3374 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3375 |
msgid "Andorra"
|
3376 |
msgstr ""
|
3377 |
|
3378 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3379 |
msgid "Angola"
|
3380 |
msgstr ""
|
3381 |
|
3382 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3383 |
msgid "Anguilla"
|
3384 |
msgstr ""
|
3385 |
|
3386 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3387 |
msgid "Antarctica"
|
3388 |
msgstr ""
|
3389 |
|
3390 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3391 |
msgid "Antigua and Barbuda"
|
3392 |
msgstr ""
|
3393 |
|
3394 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3395 |
msgid "Argentina"
|
3396 |
msgstr ""
|
3397 |
|
3398 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3399 |
msgid "Armenia"
|
3400 |
msgstr ""
|
3401 |
|
3402 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3403 |
msgid "Aruba"
|
3404 |
msgstr ""
|
3405 |
|
3406 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3407 |
msgid "Australia"
|
3408 |
msgstr ""
|
3409 |
|
3410 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3411 |
msgid "Austria"
|
3412 |
msgstr ""
|
3413 |
|
3414 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3415 |
msgid "Azerbaijan"
|
3416 |
msgstr ""
|
3417 |
|
3418 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3419 |
msgid "Bahamas"
|
3420 |
msgstr ""
|
3421 |
|
3422 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3423 |
msgid "Bahrain"
|
3424 |
msgstr ""
|
3425 |
|
3426 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3427 |
msgid "Bangladesh"
|
3428 |
msgstr ""
|
3429 |
|
3430 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3431 |
msgid "Barbados"
|
3432 |
msgstr ""
|
3433 |
|
3434 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3435 |
msgid "Belarus"
|
3436 |
msgstr ""
|
3437 |
|
3438 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3439 |
msgid "Belgium"
|
3440 |
msgstr ""
|
3441 |
|
3442 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3443 |
msgid "Belize"
|
3444 |
msgstr ""
|
3445 |
|
3446 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3447 |
msgid "Benin"
|
3448 |
msgstr ""
|
3449 |
|
3450 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3451 |
msgid "Bermuda"
|
3452 |
msgstr ""
|
3453 |
|
3454 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3455 |
msgid "Bhutan"
|
3456 |
msgstr ""
|
3457 |
|
3458 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3459 |
msgid "Bolivia"
|
3460 |
msgstr ""
|
3461 |
|
3462 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3463 |
msgid "Bonaire, Sint Eustatius and Saba"
|
3464 |
msgstr ""
|
3465 |
|
3466 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3467 |
msgid "Bosnia and Herzegovina"
|
3468 |
msgstr ""
|
3469 |
|
3470 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3471 |
msgid "Botswana"
|
3472 |
msgstr ""
|
3473 |
|
3474 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3475 |
msgid "Bouvet Island"
|
3476 |
msgstr ""
|
3477 |
|
3478 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3479 |
msgid "Brazil"
|
3480 |
msgstr ""
|
3481 |
|
3482 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3483 |
msgid "British Indian Ocean Territory"
|
3484 |
msgstr ""
|
3485 |
|
3486 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3487 |
msgid "Brunei"
|
3488 |
msgstr ""
|
3489 |
|
3490 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3491 |
msgid "Bulgaria"
|
3492 |
msgstr ""
|
3493 |
|
3494 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3495 |
msgid "Burkina Faso"
|
3496 |
msgstr ""
|
3497 |
|
3498 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3499 |
msgid "Burundi"
|
3500 |
msgstr ""
|
3501 |
|
3502 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3503 |
msgid "Cambodia"
|
3504 |
msgstr ""
|
3505 |
|
3506 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3507 |
msgid "Cameroon"
|
3508 |
msgstr ""
|
3509 |
|
3510 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3511 |
msgid "Canada"
|
3512 |
msgstr ""
|
3513 |
|
3514 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3515 |
msgid "Cape Verde"
|
3516 |
msgstr ""
|
3517 |
|
3518 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3519 |
msgid "Cayman Islands"
|
3520 |
msgstr ""
|
3521 |
|
3522 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3523 |
msgid "Central African Republic"
|
3524 |
msgstr ""
|
3525 |
|
3526 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3527 |
msgid "Chad"
|
3528 |
msgstr ""
|
3529 |
|
3530 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3531 |
msgid "Chile"
|
3532 |
msgstr ""
|
3533 |
|
3534 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3535 |
msgid "China"
|
3536 |
msgstr ""
|
3537 |
|
3538 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3539 |
msgid "Christmas Island"
|
3540 |
msgstr ""
|
3541 |
|
3542 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3543 |
msgid "Cocos (Keeling) Islands"
|
3544 |
msgstr ""
|
3545 |
|
3546 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3547 |
msgid "Colombia"
|
3548 |
msgstr ""
|
3549 |
|
3550 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3551 |
msgid "Comoros"
|
3552 |
msgstr ""
|
3553 |
|
3554 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3555 |
msgid "Congo"
|
3556 |
msgstr ""
|
3557 |
|
3558 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3559 |
msgid "Cook Islands"
|
3560 |
msgstr ""
|
3561 |
|
3562 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3563 |
msgid "Costa Rica"
|
3564 |
msgstr ""
|
3565 |
|
3566 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3567 |
msgid "Côte d'Ivoire"
|
3568 |
msgstr ""
|
3569 |
|
3570 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3571 |
msgid "Croatia"
|
3572 |
msgstr ""
|
3573 |
|
3574 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3575 |
msgid "Cuba"
|
3576 |
msgstr ""
|
3577 |
|
3578 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3579 |
msgid "Curacao"
|
3580 |
msgstr ""
|
3581 |
|
3582 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3583 |
msgid "Cyprus"
|
3584 |
msgstr ""
|
3585 |
|
3586 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3587 |
msgid "Czech Republic"
|
3588 |
msgstr ""
|
3589 |
|
3590 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3591 |
msgid "Denmark"
|
3592 |
msgstr ""
|
3593 |
|
3594 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3595 |
msgid "Djibouti"
|
3596 |
msgstr ""
|
3597 |
|
3598 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3599 |
msgid "Dominica"
|
3600 |
msgstr ""
|
3601 |
|
3602 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3603 |
msgid "Dominican Republic"
|
3604 |
msgstr ""
|
3605 |
|
3606 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3607 |
msgid "East Timor"
|
3608 |
msgstr ""
|
3609 |
|
3610 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3611 |
msgid "Ecuador"
|
3612 |
msgstr ""
|
3613 |
|
3614 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3615 |
msgid "Egypt"
|
3616 |
msgstr ""
|
3617 |
|
3618 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3619 |
msgid "El Salvador"
|
3620 |
msgstr ""
|
3621 |
|
3622 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3623 |
msgid "Equatorial Guinea"
|
3624 |
msgstr ""
|
3625 |
|
3626 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3627 |
msgid "Eritrea"
|
3628 |
msgstr ""
|
3629 |
|
3630 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3631 |
msgid "Estonia"
|
3632 |
msgstr ""
|
3633 |
|
3634 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3635 |
msgid "Ethiopia"
|
3636 |
msgstr ""
|
3637 |
|
3638 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3639 |
msgid "Falkland Islands (Malvinas)"
|
3640 |
msgstr ""
|
3641 |
|
3642 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3643 |
msgid "Faroe Islands"
|
3644 |
msgstr ""
|
3645 |
|
3646 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3647 |
msgid "Fiji"
|
3648 |
msgstr ""
|
3649 |
|
3650 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3651 |
msgid "Finland"
|
3652 |
msgstr ""
|
3653 |
|
3654 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3655 |
msgid "France"
|
3656 |
msgstr ""
|
3657 |
|
3658 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3659 |
msgid "French Guiana"
|
3660 |
msgstr ""
|
3661 |
|
3662 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3663 |
msgid "French Polynesia"
|
3664 |
msgstr ""
|
3665 |
|
3666 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3667 |
msgid "French Southern Territories"
|
3668 |
msgstr ""
|
3669 |
|
3670 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3671 |
msgid "Gabon"
|
3672 |
msgstr ""
|
3673 |
|
3674 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3675 |
msgid "Gambia"
|
3676 |
msgstr ""
|
3677 |
|
3678 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3679 |
msgid "Georgia"
|
3680 |
msgstr ""
|
3681 |
|
3682 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3683 |
msgid "Germany"
|
3684 |
msgstr ""
|
3685 |
|
3686 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3687 |
msgid "Ghana"
|
3688 |
msgstr ""
|
3689 |
|
3690 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3691 |
msgid "Gibraltar"
|
3692 |
msgstr ""
|
3693 |
|
3694 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3695 |
msgid "Greece"
|
3696 |
msgstr ""
|
3697 |
|
3698 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3699 |
msgid "Greenland"
|
3700 |
msgstr ""
|
3701 |
|
3702 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3703 |
msgid "Grenada"
|
3704 |
msgstr ""
|
3705 |
|
3706 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3707 |
msgid "Guadeloupe"
|
3708 |
msgstr ""
|
3709 |
|
3710 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3711 |
msgid "Guam"
|
3712 |
msgstr ""
|
3713 |
|
3714 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3715 |
msgid "Guatemala"
|
3716 |
msgstr ""
|
3717 |
|
3718 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3719 |
msgid "Guernsey"
|
3720 |
msgstr ""
|
3721 |
|
3722 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3723 |
msgid "Guinea"
|
3724 |
msgstr ""
|
3725 |
|
3726 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3727 |
msgid "Guinea-Bissau"
|
3728 |
msgstr ""
|
3729 |
|
3730 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3731 |
msgid "Guyana"
|
3732 |
msgstr ""
|
3733 |
|
3734 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3735 |
msgid "Haiti"
|
3736 |
msgstr ""
|
3737 |
|
3738 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3739 |
msgid "Heard Island and McDonald Islands"
|
3740 |
msgstr ""
|
3741 |
|
3742 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3743 |
msgid "Holy See"
|
3744 |
msgstr ""
|
3745 |
|
3746 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3747 |
msgid "Honduras"
|
3748 |
msgstr ""
|
3749 |
|
3750 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3751 |
msgid "Hong Kong"
|
3752 |
msgstr ""
|
3753 |
|
3754 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3755 |
msgid "Hungary"
|
3756 |
msgstr ""
|
3757 |
|
3758 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3759 |
msgid "Iceland"
|
3760 |
msgstr ""
|
3761 |
|
3762 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3763 |
msgid "India"
|
3764 |
msgstr ""
|
3765 |
|
3766 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3767 |
msgid "Indonesia"
|
3768 |
msgstr ""
|
3769 |
|
3770 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3771 |
msgid "Iran"
|
3772 |
msgstr ""
|
3773 |
|
3774 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3775 |
msgid "Iraq"
|
3776 |
msgstr ""
|
3777 |
|
3778 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3779 |
msgid "Ireland"
|
3780 |
msgstr ""
|
3781 |
|
3782 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3783 |
msgid "Israel"
|
3784 |
msgstr ""
|
3785 |
|
3786 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3787 |
msgid "Isle of Man"
|
3788 |
msgstr ""
|
3789 |
|
3790 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3791 |
msgid "Italy"
|
3792 |
msgstr ""
|
3793 |
|
3794 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3795 |
msgid "Jamaica"
|
3796 |
msgstr ""
|
3797 |
|
3798 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3799 |
msgid "Japan"
|
3800 |
msgstr ""
|
3801 |
|
3802 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3803 |
msgid "Jersey"
|
3804 |
msgstr ""
|
3805 |
|
3806 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3807 |
msgid "Jordan"
|
3808 |
msgstr ""
|
3809 |
|
3810 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3811 |
msgid "Kazakhstan"
|
3812 |
msgstr ""
|
3813 |
|
3814 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3815 |
msgid "Kenya"
|
3816 |
msgstr ""
|
3817 |
|
3818 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3819 |
msgid "Kiribati"
|
3820 |
msgstr ""
|
3821 |
|
3822 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3823 |
msgid "North Korea"
|
3824 |
msgstr ""
|
3825 |
|
3826 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3827 |
msgid "South Korea"
|
3828 |
msgstr ""
|
3829 |
|
3830 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3831 |
msgid "Kosovo"
|
3832 |
msgstr ""
|
3833 |
|
3834 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3835 |
msgid "Kuwait"
|
3836 |
msgstr ""
|
3837 |
|
3838 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3839 |
msgid "Kyrgyzstan"
|
3840 |
msgstr ""
|
3841 |
|
3842 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3843 |
msgid "Laos"
|
3844 |
msgstr ""
|
3845 |
|
3846 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3847 |
msgid "Latvia"
|
3848 |
msgstr ""
|
3849 |
|
3850 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3851 |
msgid "Lebanon"
|
3852 |
msgstr ""
|
3853 |
|
3854 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3855 |
msgid "Lesotho"
|
3856 |
msgstr ""
|
3857 |
|
3858 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3859 |
msgid "Liberia"
|
3860 |
msgstr ""
|
3861 |
|
3862 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3863 |
msgid "Libya"
|
3864 |
msgstr ""
|
3865 |
|
3866 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3867 |
msgid "Liechtenstein"
|
3868 |
msgstr ""
|
3869 |
|
3870 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3871 |
msgid "Lithuania"
|
3872 |
msgstr ""
|
3873 |
|
3874 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3875 |
msgid "Luxembourg"
|
3876 |
msgstr ""
|
3877 |
|
3878 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3879 |
msgid "Macao"
|
3880 |
msgstr ""
|
3881 |
|
3882 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3883 |
msgid "Macedonia"
|
3884 |
msgstr ""
|
3885 |
|
3886 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3887 |
msgid "Madagascar"
|
3888 |
msgstr ""
|
3889 |
|
3890 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3891 |
msgid "Malawi"
|
3892 |
msgstr ""
|
3893 |
|
3894 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3895 |
msgid "Malaysia"
|
3896 |
msgstr ""
|
3897 |
|
3898 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3899 |
msgid "Maldives"
|
3900 |
msgstr ""
|
3901 |
|
3902 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3903 |
msgid "Mali"
|
3904 |
msgstr ""
|
3905 |
|
3906 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3907 |
msgid "Malta"
|
3908 |
msgstr ""
|
3909 |
|
3910 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3911 |
msgid "Marshall Islands"
|
3912 |
msgstr ""
|
3913 |
|
3914 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3915 |
msgid "Martinique"
|
3916 |
msgstr ""
|
3917 |
|
3918 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3919 |
msgid "Mauritania"
|
3920 |
msgstr ""
|
3921 |
|
3922 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3923 |
msgid "Mauritius"
|
3924 |
msgstr ""
|
3925 |
|
3926 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3927 |
msgid "Mayotte"
|
3928 |
msgstr ""
|
3929 |
|
3930 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3931 |
msgid "Mexico"
|
3932 |
msgstr ""
|
3933 |
|
3934 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3935 |
msgid "Micronesia"
|
3936 |
msgstr ""
|
3937 |
|
3938 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3939 |
msgid "Moldova"
|
3940 |
msgstr ""
|
3941 |
|
3942 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3943 |
msgid "Monaco"
|
3944 |
msgstr ""
|
3945 |
|
3946 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3947 |
msgid "Mongolia"
|
3948 |
msgstr ""
|
3949 |
|
3950 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3951 |
msgid "Montenegro"
|
3952 |
msgstr ""
|
3953 |
|
3954 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3955 |
msgid "Montserrat"
|
3956 |
msgstr ""
|
3957 |
|
3958 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3959 |
msgid "Morocco"
|
3960 |
msgstr ""
|
3961 |
|
3962 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3963 |
msgid "Mozambique"
|
3964 |
msgstr ""
|
3965 |
|
3966 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3967 |
msgid "Myanmar"
|
3968 |
msgstr ""
|
3969 |
|
3970 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3971 |
msgid "Namibia"
|
3972 |
msgstr ""
|
3973 |
|
3974 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3975 |
msgid "Nauru"
|
3976 |
msgstr ""
|
3977 |
|
3978 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3979 |
msgid "Nepal"
|
3980 |
msgstr ""
|
3981 |
|
3982 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3983 |
msgid "Netherlands"
|
3984 |
msgstr ""
|
3985 |
|
3986 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3987 |
msgid "New Caledonia"
|
3988 |
msgstr ""
|
3989 |
|
3990 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3991 |
msgid "New Zealand"
|
3992 |
msgstr ""
|
3993 |
|
3994 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3995 |
msgid "Nicaragua"
|
3996 |
msgstr ""
|
3997 |
|
3998 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
3999 |
msgid "Niger"
|
4000 |
msgstr ""
|
4001 |
|
4002 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4003 |
msgid "Nigeria"
|
4004 |
msgstr ""
|
4005 |
|
4006 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4007 |
msgid "Niue"
|
4008 |
msgstr ""
|
4009 |
|
4010 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4011 |
msgid "Norfolk Island"
|
4012 |
msgstr ""
|
4013 |
|
4014 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4015 |
msgid "Northern Mariana Islands"
|
4016 |
msgstr ""
|
4017 |
|
4018 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4019 |
msgid "Norway"
|
4020 |
msgstr ""
|
4021 |
|
4022 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4023 |
msgid "Oman"
|
4024 |
msgstr ""
|
4025 |
|
4026 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4027 |
msgid "Pakistan"
|
4028 |
msgstr ""
|
4029 |
|
4030 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4031 |
msgid "Palau"
|
4032 |
msgstr ""
|
4033 |
|
4034 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4035 |
msgid "Palestine"
|
4036 |
msgstr ""
|
4037 |
|
4038 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4039 |
msgid "Panama"
|
4040 |
msgstr ""
|
4041 |
|
4042 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4043 |
msgid "Papua New Guinea"
|
4044 |
msgstr ""
|
4045 |
|
4046 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4047 |
msgid "Paraguay"
|
4048 |
msgstr ""
|
4049 |
|
4050 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4051 |
msgid "Peru"
|
4052 |
msgstr ""
|
4053 |
|
4054 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4055 |
msgid "Philippines"
|
4056 |
msgstr ""
|
4057 |
|
4058 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4059 |
msgid "Pitcairn"
|
4060 |
msgstr ""
|
4061 |
|
4062 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4063 |
msgid "Poland"
|
4064 |
msgstr ""
|
4065 |
|
4066 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4067 |
msgid "Portugal"
|
4068 |
msgstr ""
|
4069 |
|
4070 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4071 |
msgid "Puerto Rico"
|
4072 |
msgstr ""
|
4073 |
|
4074 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4075 |
msgid "Qatar"
|
4076 |
msgstr ""
|
4077 |
|
4078 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4079 |
msgid "Reunion"
|
4080 |
msgstr ""
|
4081 |
|
4082 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4083 |
msgid "Romania"
|
4084 |
msgstr ""
|
4085 |
|
4086 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4087 |
msgid "Russia"
|
4088 |
msgstr ""
|
4089 |
|
4090 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4091 |
msgid "Rwanda"
|
4092 |
msgstr ""
|
4093 |
|
4094 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4095 |
msgid "Saint Barthelemy"
|
4096 |
msgstr ""
|
4097 |
|
4098 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4099 |
msgid "Saint Helena, Ascension and Tristan da Cunha"
|
4100 |
msgstr ""
|
4101 |
|
4102 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4103 |
msgid "Saint Kitts and Nevis"
|
4104 |
msgstr ""
|
4105 |
|
4106 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4107 |
msgid "Saint Lucia"
|
4108 |
msgstr ""
|
4109 |
|
4110 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4111 |
msgid "Saint Martin (French part)"
|
4112 |
msgstr ""
|
4113 |
|
4114 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4115 |
msgid "Saint Pierre and Miquelon"
|
4116 |
msgstr ""
|
4117 |
|
4118 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4119 |
msgid "Saint Vincent and the Grenadines"
|
4120 |
msgstr ""
|
4121 |
|
4122 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4123 |
msgid "Samoa"
|
4124 |
msgstr ""
|
4125 |
|
4126 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4127 |
msgid "San Marino"
|
4128 |
msgstr ""
|
4129 |
|
4130 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4131 |
msgid "Sao Tome and Principe"
|
4132 |
msgstr ""
|
4133 |
|
4134 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4135 |
msgid "Saudi Arabia"
|
4136 |
msgstr ""
|
4137 |
|
4138 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4139 |
msgid "Senegal"
|
4140 |
msgstr ""
|
4141 |
|
4142 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4143 |
msgid "Serbia"
|
4144 |
msgstr ""
|
4145 |
|
4146 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4147 |
msgid "Seychelles"
|
4148 |
msgstr ""
|
4149 |
|
4150 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4151 |
msgid "Sierra Leone"
|
4152 |
msgstr ""
|
4153 |
|
4154 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4155 |
msgid "Singapore"
|
4156 |
msgstr ""
|
4157 |
|
4158 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4159 |
msgid "Sint Maarten (Dutch part)"
|
4160 |
msgstr ""
|
4161 |
|
4162 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4163 |
msgid "Slovakia"
|
4164 |
msgstr ""
|
4165 |
|
4166 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4167 |
msgid "Slovenia"
|
4168 |
msgstr ""
|
4169 |
|
4170 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
4171 |
msgid "Solomon Islands"
|
4172 |
msgstr ""
|
4173 |