Formidable Forms – Form Builder for WordPress - Version 2.02

Version Description

  • Improve user role dropdowns in global settings
  • Remove some deprecated functions
  • More output escaping
  • Move file creation for stylesheet to its own file for an easier API
  • *Pro Features: * *
  • Add drag and drop file uploading
  • Add options to set the file size and count limits
  • Merge the upload importer plugin into main plugin
  • Filter the media library so uploads in forms can only be viewed by those with permission to edit entries
  • Don't allow direct viewing of attachment pages
  • Add file protection options per form to prevent direct access to files
  • Add a prefix to the attachment slug to prevent the attachments from using top-level slugs that would be better used elsewhere
  • Process files during validation if javascript errors on the page, or if browser doesn't support the in-place file uploader
  • Include the error message at the top of the page when there are ajax validation errors
  • Add frm_image_html_array hook so we can tie in with modals soon
  • Add an option to use text calculations for combining values instead of requiring math operations
  • Add age shortcode for use in calculations. Use [age id=25] in a calculation, where 25 is the id of the date field.
  • If a calculation doesn't have any field triggers, trigger it on load
  • Fixed calculations using multiselect fields across page breaks
  • Fixed date calculations with an empty date field. The calculation will now wait until any date fields have been filled.
  • Only use ajax validation when ajax submit is turned on to prevent double validation checks
  • Allow recaptcha to be dragged into section
  • Fixed issue with html showing in rich text
  • Fixed filtering conditionals from parent form inside of a foreach loop
  • Change default sep for images displayed in View
  • Don't force links when displaying a non-image file
  • Make sure repeating fields watching Lookups keep custom value
  • Fix undefined index error with date field calendar style setting
  • Make sure page size and limit work together well in Views
  • Don't run date calculations until all dates are selected
  • Allow address field labels to be edited when field is initially added
  • Fix single row Lookup field checkboxes styling
Download this release

Release Info

Developer sswells
Plugin Icon 128x128 Formidable Forms – Form Builder for WordPress
Version 2.02
Comparing to
See all releases

Code changes from version 2.01.03 to 2.02

Files changed (46) hide show
  1. classes/controllers/FrmAppController.php +2 -15
  2. classes/controllers/FrmEntriesController.php +1 -1
  3. classes/controllers/FrmFieldsController.php +2 -2
  4. classes/controllers/FrmFormsController.php +1 -0
  5. classes/controllers/FrmSettingsController.php +2 -2
  6. classes/helpers/FrmAppHelper.php +3 -41
  7. classes/helpers/FrmEntriesHelper.php +0 -4
  8. classes/helpers/FrmFieldsHelper.php +2 -2
  9. classes/helpers/FrmTipsHelper.php +2 -2
  10. classes/models/FrmCreateFile.php +140 -0
  11. classes/models/FrmEntryMeta.php +0 -5
  12. classes/models/FrmEntryValidate.php +1 -1
  13. classes/models/FrmForm.php +1 -0
  14. classes/models/FrmPointers.php +1 -1
  15. classes/models/FrmSettings.php +3 -15
  16. classes/models/FrmStyle.php +13 -98
  17. classes/views/frm-fields/single-option.php +2 -2
  18. classes/views/frm-forms/add_field.php +8 -2
  19. classes/views/frm-forms/add_field_links.php +2 -6
  20. classes/views/frm-forms/list.php +1 -1
  21. classes/views/frm-forms/mb_html_tab.php +2 -2
  22. classes/views/frm-settings/form.php +3 -2
  23. classes/views/shared/mb_adv_info.php +2 -2
  24. classes/views/styles/_buttons.php +6 -2
  25. classes/views/styles/_check-box-radio-fields.php +1 -1
  26. classes/views/styles/_date-fields.php +1 -1
  27. classes/views/styles/_field-description.php +1 -1
  28. classes/views/styles/_field-labels.php +3 -3
  29. classes/views/styles/_section-fields.php +1 -1
  30. classes/views/xml/forms_xml.php +11 -11
  31. classes/views/xml/posts_xml.php +15 -15
  32. css/_single_theme.css.php +20 -5
  33. css/custom_theme.css.php +35 -41
  34. css/dropzone.css +583 -0
  35. css/frm_admin.css +7 -9
  36. formidable.php +1 -1
  37. js/formidable.js +299 -127
  38. js/formidable.min.js +90 -87
  39. js/formidable_admin.js +12 -17
  40. languages/formidable-da_DK.mo +0 -0
  41. languages/formidable-da_DK.po +2773 -1845
  42. languages/formidable-de_DE.mo +0 -0
  43. languages/formidable-de_DE.po +2780 -1852
  44. languages/formidable-en_US.po +811 -731
  45. languages/formidable-es_ES.mo +0 -0
  46. languages/formidable-es_ES.po +573 -590
classes/controllers/FrmAppController.php CHANGED
@@ -231,6 +231,7 @@ class FrmAppController {
231
  wp_register_style( 'formidable-admin', FrmAppHelper::plugin_url() . '/css/frm_admin.css', array(), $version );
232
  wp_register_script( 'bootstrap_tooltip', FrmAppHelper::plugin_url() . '/js/bootstrap.min.js', array( 'jquery' ), '3.3.4' );
233
  wp_register_style( 'formidable-grids', FrmAppHelper::plugin_url() . '/css/frm_grids.css', array(), $version );
 
234
 
235
  // load multselect js
236
  wp_register_script( 'bootstrap-multiselect', FrmAppHelper::plugin_url() . '/js/bootstrap-multiselect.js', array( 'jquery', 'bootstrap_tooltip' ), '0.9.8', true );
@@ -249,6 +250,7 @@ class FrmAppController {
249
 
250
  wp_enqueue_style( 'formidable-admin' );
251
  wp_enqueue_style( 'formidable-grids' );
 
252
  add_thickbox();
253
 
254
  wp_register_script( 'formidable-editinplace', FrmAppHelper::plugin_url() . '/js/jquery/jquery.editinplace.packed.js', array( 'jquery' ), '2.3.0' );
@@ -289,11 +291,6 @@ class FrmAppController {
289
  return preg_replace_callback( $regex, 'FrmAppHelper::widget_text_filter_callback', $content );
290
  }
291
 
292
- public static function widget_text_filter_callback( $matches ) {
293
- _deprecated_function( __FUNCTION__, '2.0', 'FrmAppHelper::widget_text_filter_callback' );
294
- return FrmAppHelper::widget_text_filter_callback( $matches );
295
- }
296
-
297
  public static function front_head() {
298
  if ( is_multisite() ) {
299
  $old_db_version = get_option( 'frm_db_version' );
@@ -320,11 +317,6 @@ class FrmAppController {
320
  return FrmStylesController::load_saved_css();
321
  }
322
 
323
- public static function footer_js( $location = 'footer' ) {
324
- _deprecated_function( __FUNCTION__, '2.0', 'FrmAppHelper::widget_text_filter_callback' );
325
- return FrmFormsController::footer_js( $location );
326
- }
327
-
328
  /**
329
  * Run silent upgrade on each site in the network during a network upgrade.
330
  * Update database settings for all sites in a network during network upgrade process.
@@ -424,9 +416,4 @@ class FrmAppController {
424
  _deprecated_function( __FUNCTION__, '1.07.05', 'FrmFormsController::get_form_shortcode()' );
425
  return FrmFormsController::get_form_shortcode( $atts );
426
  }
427
-
428
- public static function get_postbox_class() {
429
- _deprecated_function( __FUNCTION__, '2.0' );
430
- return 'postbox-container';
431
- }
432
  }
231
  wp_register_style( 'formidable-admin', FrmAppHelper::plugin_url() . '/css/frm_admin.css', array(), $version );
232
  wp_register_script( 'bootstrap_tooltip', FrmAppHelper::plugin_url() . '/js/bootstrap.min.js', array( 'jquery' ), '3.3.4' );
233
  wp_register_style( 'formidable-grids', FrmAppHelper::plugin_url() . '/css/frm_grids.css', array(), $version );
234
+ wp_register_style( 'formidable-dropzone', FrmAppHelper::plugin_url() . '/css/dropzone.css', array(), $version );
235
 
236
  // load multselect js
237
  wp_register_script( 'bootstrap-multiselect', FrmAppHelper::plugin_url() . '/js/bootstrap-multiselect.js', array( 'jquery', 'bootstrap_tooltip' ), '0.9.8', true );
250
 
251
  wp_enqueue_style( 'formidable-admin' );
252
  wp_enqueue_style( 'formidable-grids' );
253
+ wp_enqueue_style( 'formidable-dropzone' );
254
  add_thickbox();
255
 
256
  wp_register_script( 'formidable-editinplace', FrmAppHelper::plugin_url() . '/js/jquery/jquery.editinplace.packed.js', array( 'jquery' ), '2.3.0' );
291
  return preg_replace_callback( $regex, 'FrmAppHelper::widget_text_filter_callback', $content );
292
  }
293
 
 
 
 
 
 
294
  public static function front_head() {
295
  if ( is_multisite() ) {
296
  $old_db_version = get_option( 'frm_db_version' );
317
  return FrmStylesController::load_saved_css();
318
  }
319
 
 
 
 
 
 
320
  /**
321
  * Run silent upgrade on each site in the network during a network upgrade.
322
  * Update database settings for all sites in a network during network upgrade process.
416
  _deprecated_function( __FUNCTION__, '1.07.05', 'FrmFormsController::get_form_shortcode()' );
417
  return FrmFormsController::get_form_shortcode( $atts );
418
  }
 
 
 
 
 
419
  }
classes/controllers/FrmEntriesController.php CHANGED
@@ -445,7 +445,7 @@ class FrmEntriesController {
445
  return;
446
  }
447
 
448
- if ( $errors == '' ) {
449
  $errors = FrmEntryValidate::validate( $_POST );
450
  }
451
 
445
  return;
446
  }
447
 
448
+ if ( $errors == '' && ! $ajax ) {
449
  $errors = FrmEntryValidate::validate( $_POST );
450
  }
451
 
classes/controllers/FrmFieldsController.php CHANGED
@@ -577,7 +577,7 @@ class FrmFieldsController {
577
  }
578
 
579
  private static function add_html_size( $field, array &$add_html ) {
580
- if ( ! isset( $field['size'] ) || $field['size'] <= 0 || in_array( $field['type'], array( 'select', 'data', 'time', 'hidden', 'lookup' ) ) ) {
581
  return;
582
  }
583
 
@@ -623,7 +623,7 @@ class FrmFieldsController {
623
 
624
  private static function add_html_length( $field, array &$add_html ) {
625
  // check for max setting and if this field accepts maxlength
626
- if ( FrmField::is_option_empty( $field, 'max' ) || in_array( $field['type'], array( 'textarea', 'rte', 'hidden' ) ) ) {
627
  return;
628
  }
629
 
577
  }
578
 
579
  private static function add_html_size( $field, array &$add_html ) {
580
+ if ( ! isset( $field['size'] ) || $field['size'] <= 0 || in_array( $field['type'], array( 'select', 'data', 'time', 'hidden', 'file', 'lookup' ) ) ) {
581
  return;
582
  }
583
 
623
 
624
  private static function add_html_length( $field, array &$add_html ) {
625
  // check for max setting and if this field accepts maxlength
626
+ if ( FrmField::is_option_empty( $field, 'max' ) || in_array( $field['type'], array( 'textarea', 'rte', 'hidden', 'file' ) ) ) {
627
  return;
628
  }
629
 
classes/controllers/FrmFormsController.php CHANGED
@@ -296,6 +296,7 @@ class FrmFormsController {
296
  wp_register_script( 'jquery-frm-rating', FrmAppHelper::plugin_url() . '/pro/js/jquery.rating.min.js', array( 'jquery' ), '4.11', true );
297
  wp_register_script( 'jquery-maskedinput', FrmAppHelper::plugin_url() . '/pro/js/jquery.maskedinput.min.js', array( 'jquery' ), '1.4', true );
298
  wp_register_script( 'jquery-chosen', FrmAppHelper::plugin_url() . '/pro/js/chosen.jquery.min.js', array( 'jquery' ), '1.5.1', true );
 
299
  }
300
  }
301
 
296
  wp_register_script( 'jquery-frm-rating', FrmAppHelper::plugin_url() . '/pro/js/jquery.rating.min.js', array( 'jquery' ), '4.11', true );
297
  wp_register_script( 'jquery-maskedinput', FrmAppHelper::plugin_url() . '/pro/js/jquery.maskedinput.min.js', array( 'jquery' ), '1.4', true );
298
  wp_register_script( 'jquery-chosen', FrmAppHelper::plugin_url() . '/pro/js/chosen.jquery.min.js', array( 'jquery' ), '1.5.1', true );
299
+ wp_register_script( 'dropzone', FrmAppHelper::plugin_url() . '/pro/js/dropzone.js', array( 'jquery' ), '4.3.0', true );
300
  }
301
  }
302
 
classes/controllers/FrmSettingsController.php CHANGED
@@ -74,9 +74,9 @@ class FrmSettingsController {
74
  $action = isset( $_REQUEST['frm_action'] ) ? 'frm_action' : 'action';
75
  $action = FrmAppHelper::get_param( $action, '', 'get', 'sanitize_title' );
76
  if ( $action == 'process-form' ) {
77
- return self::process_form( $stop_load );
78
  } else if ( $stop_load != 'stop_load' ) {
79
- return self::display_form();
80
  }
81
  }
82
  }
74
  $action = isset( $_REQUEST['frm_action'] ) ? 'frm_action' : 'action';
75
  $action = FrmAppHelper::get_param( $action, '', 'get', 'sanitize_title' );
76
  if ( $action == 'process-form' ) {
77
+ self::process_form( $stop_load );
78
  } else if ( $stop_load != 'stop_load' ) {
79
+ self::display_form();
80
  }
81
  }
82
  }
classes/helpers/FrmAppHelper.php CHANGED
@@ -4,13 +4,13 @@ if ( ! defined('ABSPATH') ) {
4
  }
5
 
6
  class FrmAppHelper {
7
- public static $db_version = 30; //version of the database we are moving to
8
- public static $pro_db_version = 34;
9
 
10
  /**
11
  * @since 2.0
12
  */
13
- public static $plug_version = '2.01.03';
14
 
15
  /**
16
  * @since 1.07.02
@@ -534,20 +534,6 @@ class FrmAppHelper {
534
  return do_shortcode( $matches[0] );
535
  }
536
 
537
- public static function load_scripts( $scripts ) {
538
- _deprecated_function( __FUNCTION__, '2.0', 'wp_enqueue_script' );
539
- foreach ( (array) $scripts as $s ) {
540
- wp_enqueue_script($s);
541
- }
542
- }
543
-
544
- public static function load_styles( $styles ) {
545
- _deprecated_function( __FUNCTION__, '2.0', 'wp_enqueue_style' );
546
- foreach ( (array) $styles as $s ) {
547
- wp_enqueue_style($s);
548
- }
549
- }
550
-
551
  public static function get_pages() {
552
  return get_posts( array( 'post_type' => 'page', 'post_status' => array( 'publish', 'private' ), 'numberposts' => -1, 'orderby' => 'title', 'order' => 'ASC' ) );
553
  }
@@ -1160,16 +1146,6 @@ class FrmAppHelper {
1160
  <?php
1161
  }
1162
 
1163
- public static function get_us_states() {
1164
- _deprecated_function( __FUNCTION__, '2.0', 'FrmFieldsHelper::get_us_states' );
1165
- return FrmFieldsHelper::get_us_states();
1166
- }
1167
-
1168
- public static function get_countries() {
1169
- _deprecated_function( __FUNCTION__, '2.0', 'FrmFieldsHelper::get_countries' );
1170
- return FrmFieldsHelper::get_countries();
1171
- }
1172
-
1173
  public static function truncate( $str, $length, $minword = 3, $continue = '...' ) {
1174
  if ( is_array( $str ) ) {
1175
  return '';
@@ -1458,20 +1434,6 @@ class FrmAppHelper {
1458
  }
1459
  }
1460
 
1461
- /**
1462
- * @param string $table_name
1463
- */
1464
- public static function &getRecordCount( $where = '', $table_name ) {
1465
- _deprecated_function( __FUNCTION__, '2.0', 'FrmDb::get_count' );
1466
- $count = FrmDb::get_count( $table_name, $where );
1467
- return $count;
1468
- }
1469
-
1470
- public static function get_referer_info() {
1471
- _deprecated_function( __FUNCTION__, '2.0', 'FrmAppHelper::get_server_value' );
1472
- return self::get_server_value('HTTP_REFERER');
1473
- }
1474
-
1475
  /**
1476
  * @return array
1477
  */
4
  }
5
 
6
  class FrmAppHelper {
7
+ public static $db_version = 32; //version of the database we are moving to
8
+ public static $pro_db_version = 36;
9
 
10
  /**
11
  * @since 2.0
12
  */
13
+ public static $plug_version = '2.02';
14
 
15
  /**
16
  * @since 1.07.02
534
  return do_shortcode( $matches[0] );
535
  }
536
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
537
  public static function get_pages() {
538
  return get_posts( array( 'post_type' => 'page', 'post_status' => array( 'publish', 'private' ), 'numberposts' => -1, 'orderby' => 'title', 'order' => 'ASC' ) );
539
  }
1146
  <?php
1147
  }
1148
 
 
 
 
 
 
 
 
 
 
 
1149
  public static function truncate( $str, $length, $minword = 3, $continue = '...' ) {
1150
  if ( is_array( $str ) ) {
1151
  return '';
1434
  }
1435
  }
1436
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1437
  /**
1438
  * @return array
1439
  */
classes/helpers/FrmEntriesHelper.php CHANGED
@@ -515,8 +515,4 @@ class FrmEntriesHelper {
515
  _deprecated_function( __FUNCTION__, '2.0.9', 'FrmEntryFormat::get_browser' );
516
  return FrmEntryFormat::get_browser( $u_agent );
517
  }
518
-
519
- public static function entries_dropdown() {
520
- _deprecated_function( __FUNCTION__, '1.07.09');
521
- }
522
  }
515
  _deprecated_function( __FUNCTION__, '2.0.9', 'FrmEntryFormat::get_browser' );
516
  return FrmEntryFormat::get_browser( $u_agent );
517
  }
 
 
 
 
518
  }
classes/helpers/FrmFieldsHelper.php CHANGED
@@ -899,7 +899,7 @@ DEFAULT_HTML;
899
  }
900
 
901
  public static function get_display_value( $replace_with, $field, $atts = array() ) {
902
- $atts['sep'] = isset( $atts['sep'] ) ? $atts['sep'] : ', ';
903
 
904
  $replace_with = apply_filters( 'frm_get_' . $field->type . '_display_value', $replace_with, $field, $atts );
905
  $replace_with = apply_filters( 'frm_get_display_value', $replace_with, $field, $atts );
@@ -914,7 +914,7 @@ DEFAULT_HTML;
914
  }
915
  unset( $autop );
916
  } else if ( is_array( $replace_with ) ) {
917
- $replace_with = implode( $atts['sep'], $replace_with );
918
  }
919
 
920
  return $replace_with;
899
  }
900
 
901
  public static function get_display_value( $replace_with, $field, $atts = array() ) {
902
+ $sep = isset( $atts['sep'] ) ? $atts['sep'] : ', ';
903
 
904
  $replace_with = apply_filters( 'frm_get_' . $field->type . '_display_value', $replace_with, $field, $atts );
905
  $replace_with = apply_filters( 'frm_get_display_value', $replace_with, $field, $atts );
914
  }
915
  unset( $autop );
916
  } else if ( is_array( $replace_with ) ) {
917
+ $replace_with = implode( $sep, $replace_with );
918
  }
919
 
920
  return $replace_with;
classes/helpers/FrmTipsHelper.php CHANGED
@@ -16,9 +16,9 @@ class FrmTipsHelper {
16
  ?>
17
  <a href="<?php echo esc_url( FrmAppHelper::make_affiliate_url( $tip['link'] ) ) ?>" target="_blank" class="frm_pro_tip">
18
  <span><i class="frm_icon_font frm_check1_icon"></i> Pro Tip:</span>
19
- <?php echo $tip['tip'] ?>
20
  <?php if ( isset( $tip['call'] ) ) { ?>
21
- <span><?php echo $tip['call'] ?></span>
22
  <?php } ?>
23
  </a>
24
  <?php
16
  ?>
17
  <a href="<?php echo esc_url( FrmAppHelper::make_affiliate_url( $tip['link'] ) ) ?>" target="_blank" class="frm_pro_tip">
18
  <span><i class="frm_icon_font frm_check1_icon"></i> Pro Tip:</span>
19
+ <?php echo esc_html( $tip['tip'] ) ?>
20
  <?php if ( isset( $tip['call'] ) ) { ?>
21
+ <span><?php echo esc_html( $tip['call'] ) ?></span>
22
  <?php } ?>
23
  </a>
24
  <?php
classes/models/FrmCreateFile.php ADDED
@@ -0,0 +1,140 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ die( 'You are not allowed to call this page directly.' );
5
+ }
6
+
7
+ class FrmCreateFile {
8
+
9
+ public $folder_name = '';
10
+ public $file_name = '';
11
+ public $error_message = '';
12
+ public $uploads = array();
13
+ public $chmod_dir = 0755;
14
+ public $chmod_file = 0644;
15
+
16
+ public function __construct( $atts ) {
17
+ $this->folder_name = $atts['folder_name'];
18
+ $this->file_name = $atts['file_name'];
19
+ $this->error_message = isset( $atts['error_message'] ) ? $atts['error_message'] : '';
20
+ $this->uploads = wp_upload_dir();
21
+ $this->chmod_dir = defined('FS_CHMOD_DIR') ? FS_CHMOD_DIR : ( fileperms( ABSPATH ) & 0777 | 0755 );
22
+ $this->chmod_file = defined('FS_CHMOD_FILE') ? FS_CHMOD_FILE : ( fileperms( ABSPATH . 'index.php' ) & 0777 | 0644 );
23
+ }
24
+
25
+ public function create_file( $file_content ) {
26
+ $creds = $this->get_creds();
27
+
28
+ if ( empty( $creds ) || ! WP_Filesystem( $creds ) ) {
29
+ // initialize the API - any problems and we exit
30
+ $this->show_error_message();
31
+ } else {
32
+ $dirs_exist = true;
33
+
34
+ // Create the directories if need be
35
+ $this->create_directories( $dirs_exist );
36
+
37
+ // only write the file if the folders exist
38
+ if ( $dirs_exist ) {
39
+ global $wp_filesystem;
40
+
41
+ $new_file = $this->uploads['basedir'] . '/' . $this->folder_name . '/' . $this->file_name;
42
+ $wp_filesystem->put_contents( $new_file, $file_content, $this->chmod_file );
43
+ }
44
+ }
45
+ }
46
+
47
+ private function create_directories( &$dirs_exist ) {
48
+ global $wp_filesystem;
49
+
50
+ $needed_dirs = $this->get_needed_dirs();
51
+ foreach ( $needed_dirs as $_dir ) {
52
+ // Only check to see if the Dir exists upon creation failure. Less I/O this way.
53
+ if ( $wp_filesystem->mkdir( $_dir, $this->chmod_dir ) || $wp_filesystem->is_dir( $_dir ) ) {
54
+ $index_path = $_dir . '/index.php';
55
+ $wp_filesystem->put_contents( $index_path, "<?php\n// Silence is golden.\n?>", $this->chmod_file );
56
+ } else {
57
+ $dirs_exist = false;
58
+ }
59
+ }
60
+ }
61
+
62
+ private function get_needed_dirs() {
63
+ $dir_names = explode( '/', $this->folder_name );
64
+ $needed_dirs = array();
65
+
66
+ $next_dir = '';
67
+ foreach ( $dir_names as $dir ) {
68
+ $next_dir .= '/' . $dir;
69
+ $needed_dirs[] = $this->uploads['basedir'] . $next_dir;
70
+ }
71
+
72
+ return $needed_dirs;
73
+ }
74
+
75
+ private function get_creds() {
76
+ $access_type = get_filesystem_method();
77
+ if ( $access_type === 'direct' ) {
78
+ $creds = request_filesystem_credentials( site_url() . '/wp-admin/', '', false, false, array() );
79
+ } else {
80
+ $creds = $this->get_ftp_creds( $access_type );
81
+ }
82
+ return $creds;
83
+ }
84
+
85
+ private function get_ftp_creds( $type ) {
86
+ $credentials = get_option( 'ftp_credentials', array( 'hostname' => '', 'username' => '' ) );
87
+
88
+ $credentials['hostname'] = defined('FTP_HOST') ? FTP_HOST : $credentials['hostname'];
89
+ $credentials['username'] = defined('FTP_USER') ? FTP_USER : $credentials['username'];
90
+ $credentials['password'] = defined('FTP_PASS') ? FTP_PASS : '';
91
+
92
+ // Check to see if we are setting the public/private keys for ssh
93
+ $credentials['public_key'] = defined('FTP_PUBKEY') ? FTP_PUBKEY : '';
94
+ $credentials['private_key'] = defined('FTP_PRIKEY') ? FTP_PRIKEY : '';
95
+
96
+ // Sanitize the hostname, Some people might pass in odd-data:
97
+ $credentials['hostname'] = preg_replace( '|\w+://|', '', $credentials['hostname'] ); //Strip any schemes off
98
+
99
+ if ( strpos( $credentials['hostname'], ':' ) ) {
100
+ list( $credentials['hostname'], $credentials['port'] ) = explode( ':', $credentials['hostname'], 2 );
101
+ if ( ! is_numeric( $credentials['port'] ) ) {
102
+ unset( $credentials['port'] );
103
+ }
104
+ } else {
105
+ unset( $credentials['port'] );
106
+ }
107
+
108
+ if ( ( defined( 'FTP_SSH' ) && FTP_SSH ) || ( defined( 'FS_METHOD' ) && 'ssh2' == FS_METHOD ) ) {
109
+ $credentials['connection_type'] = 'ssh';
110
+ } else if ( ( defined( 'FTP_SSL' ) && FTP_SSL ) && 'ftpext' == $type ) {
111
+ //Only the FTP Extension understands SSL
112
+ $credentials['connection_type'] = 'ftps';
113
+ } else if ( ! isset( $credentials['connection_type'] ) ) {
114
+ //All else fails (And it's not defaulted to something else saved), Default to FTP
115
+ $credentials['connection_type'] = 'ftp';
116
+ }
117
+
118
+ $has_creds = ( ! empty( $credentials['password'] ) && ! empty( $credentials['username'] ) && ! empty( $credentials['hostname'] ) );
119
+ $can_ssh = ( 'ssh' == $credentials['connection_type'] && ! empty( $credentials['public_key'] ) && ! empty( $credentials['private_key'] ) );
120
+ if ( $has_creds || $can_ssh ) {
121
+ $stored_credentials = $credentials;
122
+ if ( ! empty( $stored_credentials['port'] ) ) {
123
+ //save port as part of hostname to simplify above code.
124
+ $stored_credentials['hostname'] .= ':' . $stored_credentials['port'];
125
+ }
126
+
127
+ unset( $stored_credentials['password'], $stored_credentials['port'], $stored_credentials['private_key'], $stored_credentials['public_key'] );
128
+
129
+ return $credentials;
130
+ }
131
+
132
+ return false;
133
+ }
134
+
135
+ private function show_error_message() {
136
+ if ( ! empty( $this->error_message ) ) {
137
+ echo '<div class="message">' . $this->error_message . '</div>';
138
+ }
139
+ }
140
+ }
classes/models/FrmEntryMeta.php CHANGED
@@ -174,11 +174,6 @@ class FrmEntryMeta {
174
  return $result;
175
  }
176
 
177
- public static function get_entry_meta( $entry_id, $field_id ) {
178
- _deprecated_function( __FUNCTION__, '2.0', 'FrmEntryMeta::get_entry_meta_by_field' );
179
- return self::get_entry_meta_by_field( $entry_id, $field_id );
180
- }
181
-
182
  public static function get_entry_metas( $entry_id ) {
183
  _deprecated_function( __FUNCTION__, '1.07.10');
184
 
174
  return $result;
175
  }
176
 
 
 
 
 
 
177
  public static function get_entry_metas( $entry_id ) {
178
  _deprecated_function( __FUNCTION__, '1.07.10');
179
 
classes/models/FrmEntryValidate.php CHANGED
@@ -89,8 +89,8 @@ class FrmEntryValidate {
89
 
90
  self::validate_recaptcha($errors, $posted_field, $args);
91
 
92
- $errors = apply_filters('frm_validate_field_entry', $errors, $posted_field, $value, $args);
93
  $errors = apply_filters( 'frm_validate_' . $posted_field->type . '_field_entry', $errors, $posted_field, $value, $args );
 
94
  }
95
 
96
  private static function maybe_clear_value_for_default_blank_setting( $field, &$value ) {
89
 
90
  self::validate_recaptcha($errors, $posted_field, $args);
91
 
 
92
  $errors = apply_filters( 'frm_validate_' . $posted_field->type . '_field_entry', $errors, $posted_field, $value, $args );
93
+ $errors = apply_filters( 'frm_validate_field_entry', $errors, $posted_field, $value, $args );
94
  }
95
 
96
  private static function maybe_clear_value_for_default_blank_setting( $field, &$value ) {
classes/models/FrmForm.php CHANGED
@@ -346,6 +346,7 @@ class FrmForm {
346
  if ( ! $form ) {
347
  return false;
348
  }
 
349
 
350
  // Disconnect the entries from this form
351
  $entries = FrmDb::get_col( $wpdb->prefix . 'frm_items', array( 'form_id' => $id ) );
346
  if ( ! $form ) {
347
  return false;
348
  }
349
+ $id = $form->id;
350
 
351
  // Disconnect the entries from this form
352
  $entries = FrmDb::get_col( $wpdb->prefix . 'frm_items', array( 'form_id' => $id ) );
classes/models/FrmPointers.php CHANGED
@@ -165,7 +165,7 @@ class FrmPointers {
165
  $selector = 'li.toplevel_page_formidable';
166
 
167
  $content = '<h3>' . __( 'Congratulations!', 'formidable' ) . '</h3>'
168
- . '<p>' . $this->opening_line() . ' ' . sprintf( __( 'Click &#8220;Start Tour&#8221; to view a quick introduction of this plugin&#8217;s core functionality.' ), 'formidable' ) . '</p>';
169
  $opt_arr = array(
170
  'content' => $content,
171
  'position' => array( 'edge' => 'top', 'align' => 'center' ),
165
  $selector = 'li.toplevel_page_formidable';
166
 
167
  $content = '<h3>' . __( 'Congratulations!', 'formidable' ) . '</h3>'
168
+ . '<p>' . $this->opening_line() . ' ' . __( 'Click &#8220;Start Tour&#8221; to view a quick introduction of this plugin&#8217;s core functionality.', 'formidable' ) . '</p>';
169
  $opt_arr = array(
170
  'content' => $content,
171
  'position' => array( 'edge' => 'top', 'align' => 'center' ),
classes/models/FrmSettings.php CHANGED
@@ -208,7 +208,6 @@ class FrmSettings{
208
  }
209
 
210
  private function update_roles( $params ) {
211
- //update roles
212
  global $wp_roles;
213
 
214
  $frm_roles = FrmAppHelper::frm_capabilities();
@@ -216,19 +215,9 @@ class FrmSettings{
216
  foreach ( $frm_roles as $frm_role => $frm_role_description ) {
217
  $this->$frm_role = (array) ( isset( $params[ $frm_role ] ) ? $params[ $frm_role ] : 'administrator' );
218
 
219
- if ( count($this->$frm_role) === 1 ) {
220
- $set_role = reset($this->$frm_role);
221
- switch ( $set_role ) {
222
- case 'subscriber':
223
- array_push($this->$frm_role, 'contributor');
224
- case 'contributor':
225
- array_push($this->$frm_role, 'author');
226
- case 'author':
227
- array_push($this->$frm_role, 'editor');
228
- case 'editor':
229
- array_push($this->$frm_role, 'administrator');
230
- }
231
- unset($set_role);
232
  }
233
 
234
  foreach ( $roles as $role => $details ) {
@@ -237,7 +226,6 @@ class FrmSettings{
237
  } else {
238
  $wp_roles->remove_cap( $role, $frm_role );
239
  }
240
- unset($role, $details);
241
  }
242
  }
243
  }
208
  }
209
 
210
  private function update_roles( $params ) {
 
211
  global $wp_roles;
212
 
213
  $frm_roles = FrmAppHelper::frm_capabilities();
215
  foreach ( $frm_roles as $frm_role => $frm_role_description ) {
216
  $this->$frm_role = (array) ( isset( $params[ $frm_role ] ) ? $params[ $frm_role ] : 'administrator' );
217
 
218
+ // Make sure administrators always have permissions
219
+ if ( ! in_array( 'administrator', $this->$frm_role ) ) {
220
+ array_push( $this->$frm_role, 'administrator' );
 
 
 
 
 
 
 
 
 
 
221
  }
222
 
223
  foreach ( $roles as $role => $details ) {
226
  } else {
227
  $wp_roles->remove_cap( $role, $frm_role );
228
  }
 
229
  }
230
  }
231
  }
classes/models/FrmStyle.php CHANGED
@@ -101,7 +101,7 @@ class FrmStyle {
101
  /**
102
  * Create static css file
103
  */
104
- public function save_settings( $styles ) {
105
  $filename = FrmAppHelper::plugin_path() . '/css/custom_theme.css.php';
106
  update_option( 'frm_last_style_update', date('njGi') );
107
 
@@ -109,59 +109,10 @@ class FrmStyle {
109
  return;
110
  }
111
 
112
- $defaults = $this->get_defaults();
113
- $uploads = wp_upload_dir();
114
- $target_path = $uploads['basedir'] . '/formidable';
115
- $needed_dirs = array( $target_path, $target_path . '/css' );
116
- $dirs_exist = true;
117
 
118
- $saving = true;
119
- $css = '/* ' . __( 'WARNING: Any changes made to this file will be lost when your Formidable settings are updated', 'formidable' ) . ' */' . "\n";
120
-
121
- ob_start();
122
- $frm_style = $this;
123
- include($filename);
124
- $css .= preg_replace( '/\/\*(.|\s)*?\*\//', '', str_replace( array( "\r\n", "\r", "\n", "\t", ' ' ), '', ob_get_contents() ) );
125
- ob_end_clean();
126
-
127
- $access_type = get_filesystem_method();
128
- if ( $access_type === 'direct' ) {
129
- $creds = request_filesystem_credentials( site_url() . '/wp-admin/', '', false, false, array() );
130
- } else {
131
- $creds = $this->get_ftp_creds( $access_type );
132
- }
133
-
134
- if ( ! empty( $creds ) ) {
135
- // initialize the API
136
- if ( ! WP_Filesystem( $creds ) ) {
137
- // any problems and we exit
138
- $dirs_exist = false;
139
- }
140
-
141
- if ( $dirs_exist ) {
142
- global $wp_filesystem;
143
-
144
- $chmod_dir = defined('FS_CHMOD_DIR') ? FS_CHMOD_DIR : ( fileperms( ABSPATH ) & 0777 | 0755 );
145
- $chmod_file = defined('FS_CHMOD_FILE') ? FS_CHMOD_FILE : ( fileperms( ABSPATH . 'index.php' ) & 0777 | 0644 );
146
-
147
- // Create the directories if need be:
148
- foreach ( $needed_dirs as $_dir ) {
149
- // Only check to see if the Dir exists upon creation failure. Less I/O this way.
150
- if ( ! $wp_filesystem->mkdir( $_dir, $chmod_dir ) && ! $wp_filesystem->is_dir( $_dir ) ) {
151
- $dirs_exist = false;
152
- }
153
- }
154
-
155
- $index_path = $target_path . '/index.php';
156
- $wp_filesystem->put_contents( $index_path, "<?php\n// Silence is golden.\n?>", $chmod_file );
157
-
158
- // only write the file if the folders exist
159
- if ( $dirs_exist ) {
160
- $css_file = $target_path . '/css/formidablepro.css';
161
- $wp_filesystem->put_contents( $css_file, $css, $chmod_file );
162
- }
163
- }
164
- }
165
 
166
  update_option('frmpro_css', $css);
167
 
@@ -169,54 +120,18 @@ class FrmStyle {
169
  set_transient('frmpro_css', $css);
170
  }
171
 
172
- private function get_ftp_creds( $type ) {
173
- $credentials = get_option( 'ftp_credentials', array( 'hostname' => '', 'username' => '' ) );
174
-
175
- $credentials['hostname'] = defined('FTP_HOST') ? FTP_HOST : $credentials['hostname'];
176
- $credentials['username'] = defined('FTP_USER') ? FTP_USER : $credentials['username'];
177
- $credentials['password'] = defined('FTP_PASS') ? FTP_PASS : '';
178
-
179
- // Check to see if we are setting the public/private keys for ssh
180
- $credentials['public_key'] = defined('FTP_PUBKEY') ? FTP_PUBKEY : '';
181
- $credentials['private_key'] = defined('FTP_PRIKEY') ? FTP_PRIKEY : '';
182
-
183
- // Sanitize the hostname, Some people might pass in odd-data:
184
- $credentials['hostname'] = preg_replace( '|\w+://|', '', $credentials['hostname'] ); //Strip any schemes off
185
-
186
- if ( strpos( $credentials['hostname'], ':' ) ) {
187
- list( $credentials['hostname'], $credentials['port'] ) = explode( ':', $credentials['hostname'], 2 );
188
- if ( ! is_numeric( $credentials['port'] ) ) {
189
- unset( $credentials['port'] );
190
- }
191
- } else {
192
- unset( $credentials['port'] );
193
- }
194
-
195
- if ( ( defined( 'FTP_SSH' ) && FTP_SSH ) || ( defined( 'FS_METHOD' ) && 'ssh2' == FS_METHOD ) ) {
196
- $credentials['connection_type'] = 'ssh';
197
- } else if ( ( defined( 'FTP_SSL' ) && FTP_SSL ) && 'ftpext' == $type ) {
198
- //Only the FTP Extension understands SSL
199
- $credentials['connection_type'] = 'ftps';
200
- } else if ( ! isset( $credentials['connection_type'] ) ) {
201
- //All else fails (And it's not defaulted to something else saved), Default to FTP
202
- $credentials['connection_type'] = 'ftp';
203
- }
204
-
205
- $has_creds = ( ! empty( $credentials['password'] ) && ! empty( $credentials['username'] ) && ! empty( $credentials['hostname'] ) );
206
- $can_ssh = ( 'ssh' == $credentials['connection_type'] && ! empty( $credentials['public_key'] ) && ! empty( $credentials['private_key'] ) );
207
- if ( $has_creds || $can_ssh ) {
208
- $stored_credentials = $credentials;
209
- if ( ! empty( $stored_credentials['port'] ) ) {
210
- //save port as part of hostname to simplify above code.
211
- $stored_credentials['hostname'] .= ':' . $stored_credentials['port'];
212
- }
213
 
214
- unset( $stored_credentials['password'], $stored_credentials['port'], $stored_credentials['private_key'], $stored_credentials['public_key'] );
 
215
 
216
- return $credentials;
217
- }
 
 
218
 
219
- return false;
220
  }
221
 
222
  public function destroy( $id ) {
101
  /**
102
  * Create static css file
103
  */
104
+ public function save_settings() {
105
  $filename = FrmAppHelper::plugin_path() . '/css/custom_theme.css.php';
106
  update_option( 'frm_last_style_update', date('njGi') );
107
 
109
  return;
110
  }
111
 
112
+ $css = $this->get_css_content( $filename );
 
 
 
 
113
 
114
+ $create_file = new FrmCreateFile( array( 'folder_name' => 'formidable/css', 'file_name' => 'formidablepro.css' ) );
115
+ $create_file->create_file( $css );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
116
 
117
  update_option('frmpro_css', $css);
118
 
120
  set_transient('frmpro_css', $css);
121
  }
122
 
123
+ private function get_css_content( $filename ) {
124
+ $css = '/* ' . __( 'WARNING: Any changes made to this file will be lost when your Formidable settings are updated', 'formidable' ) . ' */' . "\n";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
125
 
126
+ $saving = true;
127
+ $frm_style = $this;
128
 
129
+ ob_start();
130
+ include( $filename );
131
+ $css .= preg_replace( '/\/\*(.|\s)*?\*\//', '', str_replace( array( "\r\n", "\r", "\n", "\t", ' ' ), '', ob_get_contents() ) );
132
+ ob_end_clean();
133
 
134
+ return $css;
135
  }
136
 
137
  public function destroy( $id ) {
classes/views/frm-fields/single-option.php CHANGED
@@ -3,8 +3,8 @@
3
  <?php if ( $field['type'] != 'select' ) { ?>
4
  <input type="<?php echo esc_attr( $field['type'] ) ?>" name="<?php echo esc_attr( $field_name ) ?><?php echo ( $field['type'] == 'checkbox' ) ? '[]' : ''; ?>" value="<?php echo esc_attr($field_val) ?>"<?php echo isset( $checked ) ? $checked : ''; ?>/>
5
  <?php } ?>
6
- <label class="frm_ipe_field_option field_<?php echo esc_attr( $field['id'] ) ?>_option <?php echo $field['separate_value'] ? 'frm_with_key' : ''; ?>" id="<?php echo esc_attr( $html_id . '-' . $opt_key ) ?>"><?php echo ($opt == '') ? __( '(Blank)', 'formidable' ) : $opt ?></label>
7
- <span class="frm_option_key field_<?php echo esc_attr( $field['id'] ) ?>_option_key<?php echo $field['separate_value'] ? '' : ' frm_hidden'; ?>">
8
  <label class="frm-show-click frm_ipe_field_option_key" id="field_key_<?php echo esc_attr( $field['id'] . '-' . $opt_key ) ?>"><?php echo ( $field_val == '' ) ? esc_html__( '(Blank)', 'formidable' ) : $field_val ?></label>
9
  </span>
10
  </li>
3
  <?php if ( $field['type'] != 'select' ) { ?>
4
  <input type="<?php echo esc_attr( $field['type'] ) ?>" name="<?php echo esc_attr( $field_name ) ?><?php echo ( $field['type'] == 'checkbox' ) ? '[]' : ''; ?>" value="<?php echo esc_attr($field_val) ?>"<?php echo isset( $checked ) ? $checked : ''; ?>/>
5
  <?php } ?>
6
+ <label class="frm_ipe_field_option field_<?php echo esc_attr( $field['id'] ) ?>_option <?php echo esc_attr( $field['separate_value'] ? 'frm_with_key' : '' ); ?>" id="<?php echo esc_attr( $html_id . '-' . $opt_key ) ?>"><?php echo ($opt == '') ? __( '(Blank)', 'formidable' ) : $opt ?></label>
7
+ <span class="frm_option_key field_<?php echo esc_attr( $field['id'] ) ?>_option_key<?php echo esc_attr( $field['separate_value'] ? '' : ' frm_hidden' ); ?>">
8
  <label class="frm-show-click frm_ipe_field_option_key" id="field_key_<?php echo esc_attr( $field['id'] . '-' . $opt_key ) ?>"><?php echo ( $field_val == '' ) ? esc_html__( '(Blank)', 'formidable' ) : $field_val ?></label>
9
  </span>
10
  </li>
classes/views/frm-forms/add_field.php CHANGED
@@ -157,7 +157,10 @@ if ( $display['options'] ) { ?>
157
 
158
  <?php
159
  if ( $display['required'] ) { ?>
160
- <label for="frm_req_field_<?php echo esc_attr( $field['id'] ) ?>" class="frm_inline_label"><input type="checkbox" id="frm_req_field_<?php echo esc_attr( $field['id'] ) ?>" class="frm_req_field" name="field_options[required_<?php echo esc_attr( $field['id'] ) ?>]" value="1" <?php echo $field['required'] ? 'checked="checked"': ''; ?> /> <?php _e( 'Required', 'formidable' ) ?></label>
 
 
 
161
  <?php
162
  }
163
 
@@ -175,7 +178,10 @@ if ( $display['options'] ) { ?>
175
  $field['read_only'] = false;
176
  }
177
  ?>
178
- <label for="frm_read_only_field_<?php echo esc_attr( $field['id'] ) ?>" class="frm_inline_label frm_help" title="<?php esc_attr_e( 'Read Only: Show this field but do not allow the field value to be edited from the front-end.', 'formidable' ) ?>" ><input type="checkbox" id="frm_read_only_field_<?php echo esc_attr( $field['id'] ) ?>" name="field_options[read_only_<?php echo esc_attr( $field['id'] ) ?>]" value="1" <?php echo $field['read_only'] ? ' checked="checked"' : ''; ?>/> <?php _e( 'Read Only', 'formidable' ) ?></label>
 
 
 
179
  <?php }
180
 
181
  do_action('frm_field_options_form_top', $field, $display, $values);
157
 
158
  <?php
159
  if ( $display['required'] ) { ?>
160
+ <label for="frm_req_field_<?php echo esc_attr( $field['id'] ) ?>" class="frm_inline_label">
161
+ <input type="checkbox" id="frm_req_field_<?php echo esc_attr( $field['id'] ) ?>" class="frm_req_field" name="field_options[required_<?php echo esc_attr( $field['id'] ) ?>]" value="1" <?php checked( $field['required'], 1 ) ?> />
162
+ <?php _e( 'Required', 'formidable' ) ?>
163
+ </label>
164
  <?php
165
  }
166
 
178
  $field['read_only'] = false;
179
  }
180
  ?>
181
+ <label for="frm_read_only_field_<?php echo esc_attr( $field['id'] ) ?>" class="frm_inline_label frm_help" title="<?php esc_attr_e( 'Read Only: Show this field but do not allow the field value to be edited from the front-end.', 'formidable' ) ?>" >
182
+ <input type="checkbox" id="frm_read_only_field_<?php echo esc_attr( $field['id'] ) ?>" name="field_options[read_only_<?php echo esc_attr( $field['id'] ) ?>]" value="1" <?php checked( $field['read_only'], 1 ) ?>/>
183
+ <?php _e( 'Read Only', 'formidable' ) ?>
184
+ </label>
185
  <?php }
186
 
187
  do_action('frm_field_options_form_top', $field, $display, $values);
classes/views/frm-forms/add_field_links.php CHANGED
@@ -45,16 +45,12 @@ foreach ( FrmField::pro_field_selection() as $field_key => $field_type ) {
45
  if ( is_array( $field_type ) ) {
46
  $field_label = $field_type['name'];
47
 
48
- if ( isset( $field_type['switch_from'] ) ) { ?>
49
- <li class="frmbutton button <?php echo esc_attr( $col_class . ' ' . $no_allow_class . ' frm_t' . $field_key ) ?>" id="<?php echo esc_attr( $field_key ) ?>" data-switchto="<?php echo esc_attr( $field_type['switch_from'] ) ?>" style="display:none !important;">
50
- <?php echo apply_filters( 'frmpro_field_links', $field_label, $id, $field_key ) ?>
51
- </li>
52
- <?php
53
  continue;
54
  }
55
 
56
  ?>
57
- <li class="frmbutton button <?php echo esc_attr( $col_class . ' ' . $no_allow_class . ' frm_t' . $field_key ) ?> dropdown" id="<?php echo esc_attr( $field_key ) ?>" <?php echo ( isset( $field_type['switch_to'] ) ) ? 'data-switchto="' . esc_attr( $field_type['switch_to'] ) . '"' : ''; ?>>
58
  <a href="#" id="frm-<?php echo esc_attr( $field_key ) ?>Drop" class="frm-dropdown-toggle" data-toggle="dropdown"><?php echo esc_html( $field_label ) ?> <b class="caret"></b></a>
59
 
60
  <ul class="frm-dropdown-menu" role="menu" aria-labelledby="frm-<?php echo esc_attr( $field_key ) ?>Drop">
45
  if ( is_array( $field_type ) ) {
46
  $field_label = $field_type['name'];
47
 
48
+ if ( isset( $field_type['switch_from'] ) ) {
 
 
 
 
49
  continue;
50
  }
51
 
52
  ?>
53
+ <li class="frmbutton button <?php echo esc_attr( $col_class . ' ' . $no_allow_class . ' frm_t' . $field_key ) ?> dropdown" id="<?php echo esc_attr( $field_key ) ?>">
54
  <a href="#" id="frm-<?php echo esc_attr( $field_key ) ?>Drop" class="frm-dropdown-toggle" data-toggle="dropdown"><?php echo esc_html( $field_label ) ?> <b class="caret"></b></a>
55
 
56
  <ul class="frm-dropdown-menu" role="menu" aria-labelledby="frm-<?php echo esc_attr( $field_key ) ?>Drop">
classes/views/frm-forms/list.php CHANGED
@@ -1,7 +1,7 @@
1
  <div class="wrap">
2
  <h2 id="frm_form_page_header">
3
  <?php
4
- echo $params['template'] ? __( 'Templates', 'formidable' ) : __( 'Forms', 'formidable' );
5
  if ( ! $params['template'] && current_user_can( 'frm_edit_forms' ) ) { ?>
6
  <a href="?page=formidable&amp;frm_action=new" class="add-new-h2"><?php _e( 'Add New', 'formidable' ); ?></a>
7
  <?php
1
  <div class="wrap">
2
  <h2 id="frm_form_page_header">
3
  <?php
4
+ echo esc_html( $params['template'] ? __( 'Templates', 'formidable' ) : __( 'Forms', 'formidable' ) );
5
  if ( ! $params['template'] && current_user_can( 'frm_edit_forms' ) ) { ?>
6
  <a href="?page=formidable&amp;frm_action=new" class="add-new-h2"><?php _e( 'Add New', 'formidable' ); ?></a>
7
  <?php
classes/views/frm-forms/mb_html_tab.php CHANGED
@@ -36,7 +36,7 @@
36
  'form_key' => __( 'Form Key', 'formidable' ), 'deletelink' => __( 'Delete Entry Link', 'formidable' ),
37
  ) as $skey => $sname ) { ?>
38
  <li class="frm_col_<?php echo esc_attr( $col ) ?>">
39
- <a href="javascript:void(0)" class="show_before_html show_after_html frmbutton button frm_insert_code" data-code="<?php echo esc_attr($skey) ?>"><?php echo $sname; ?></a>
40
  </li>
41
  <?php
42
  $col = ($col == 'one') ? 'two' : 'one';
@@ -44,7 +44,7 @@
44
 
45
  foreach ( array( 'button_label' => __( 'Button Label', 'formidable' ), 'button_action' => __( 'Button Hook', 'formidable' ) ) as $skey => $sname ) { ?>
46
  <li class="frm_col_<?php echo esc_attr( $col ) ?>">
47
- <a href="javascript:void(0)" class="show_submit_html frmbutton button frm_insert_code" data-code="<?php echo esc_attr($skey) ?>"><?php echo $sname; ?></a>
48
  </li>
49
  <?php
50
  $col = ($col == 'one') ? 'two' : 'one';
36
  'form_key' => __( 'Form Key', 'formidable' ), 'deletelink' => __( 'Delete Entry Link', 'formidable' ),
37
  ) as $skey => $sname ) { ?>
38
  <li class="frm_col_<?php echo esc_attr( $col ) ?>">
39
+ <a href="javascript:void(0)" class="show_before_html show_after_html frmbutton button frm_insert_code" data-code="<?php echo esc_attr($skey) ?>"><?php echo esc_html( $sname ); ?></a>
40
  </li>
41
  <?php
42
  $col = ($col == 'one') ? 'two' : 'one';
44
 
45
  foreach ( array( 'button_label' => __( 'Button Label', 'formidable' ), 'button_action' => __( 'Button Hook', 'formidable' ) ) as $skey => $sname ) { ?>
46
  <li class="frm_col_<?php echo esc_attr( $col ) ?>">
47
+ <a href="javascript:void(0)" class="show_submit_html frmbutton button frm_insert_code" data-code="<?php echo esc_attr($skey) ?>"><?php echo esc_html( $sname ); ?></a>
48
  </li>
49
  <?php
50
  $col = ($col == 'one') ? 'two' : 'one';
classes/views/frm-settings/form.php CHANGED
@@ -60,10 +60,11 @@
60
  <span class="frm_help frm_icon_font frm_tooltip_icon" title="<?php esc_attr_e( 'Select users that are allowed access to Formidable. Without access to View Forms, users will be unable to see the Formidable menu.', 'formidable' ) ?>"></span>
61
  </h3>
62
  <table class="form-table">
63
- <?php foreach ( $frm_roles as $frm_role => $frm_role_description ) { ?>
 
64
  <tr>
65
  <td class="frm_left_label"><label><?php echo esc_html( $frm_role_description ) ?></label></td>
66
- <td><?php FrmAppHelper::wp_roles_dropdown( $frm_role, $frm_settings->$frm_role, 'multiple' ) ?></td>
67
  </tr>
68
  <?php } ?>
69
  </table>
60
  <span class="frm_help frm_icon_font frm_tooltip_icon" title="<?php esc_attr_e( 'Select users that are allowed access to Formidable. Without access to View Forms, users will be unable to see the Formidable menu.', 'formidable' ) ?>"></span>
61
  </h3>
62
  <table class="form-table">
63
+ <?php foreach ( $frm_roles as $frm_role => $frm_role_description ) {
64
+ $role_field_name = $frm_role . '[]'; ?>
65
  <tr>
66
  <td class="frm_left_label"><label><?php echo esc_html( $frm_role_description ) ?></label></td>
67
+ <td><?php FrmAppHelper::wp_roles_dropdown( $role_field_name, $frm_settings->$frm_role, 'multiple' ) ?></td>
68
  </tr>
69
  <?php } ?>
70
  </table>
classes/views/shared/mb_adv_info.php CHANGED
@@ -159,10 +159,10 @@
159
  <li class="frm_col_<?php echo esc_attr( $col ) ?>">
160
  <a href="javascript:void(0)" class="frmbutton button frm_insert_code" data-code="<?php echo esc_attr($file->id) ?> show_image=1"><?php _e( 'Show image', 'formidable' ) ?></a>
161
  </li>
162
- <li class="frm_col_<?php echo $col = (($col == 'one') ? 'two' : 'one') ?>">
163
  <a href="javascript:void(0)" class="frmbutton button frm_insert_code" data-code="<?php echo esc_attr($file->id) ?> show=id"><?php _e( 'Image ID', 'formidable' ) ?></a>
164
  </li>
165
- <li class="frm_col_<?php echo $col = (($col == 'one') ? 'two' : 'one') ?>">
166
  <a href="javascript:void(0)" class="frmbutton button frm_insert_code" data-code="<?php echo esc_attr($file->id) ?> show_filename=1"><?php _e( 'Image Name', 'formidable' ) ?></a>
167
  </li>
168
  <?php } ?>
159
  <li class="frm_col_<?php echo esc_attr( $col ) ?>">
160
  <a href="javascript:void(0)" class="frmbutton button frm_insert_code" data-code="<?php echo esc_attr($file->id) ?> show_image=1"><?php _e( 'Show image', 'formidable' ) ?></a>
161
  </li>
162
+ <li class="frm_col_<?php echo esc_attr( $col = ( $col == 'one' ? 'two' : 'one' ) ) ?>">
163
  <a href="javascript:void(0)" class="frmbutton button frm_insert_code" data-code="<?php echo esc_attr($file->id) ?> show=id"><?php _e( 'Image ID', 'formidable' ) ?></a>
164
  </li>
165
+ <li class="frm_col_<?php echo esc_attr( $col = ( $col == 'one' ? 'two' : 'one' ) ) ?>">
166
  <a href="javascript:void(0)" class="frmbutton button frm_insert_code" data-code="<?php echo esc_attr($file->id) ?> show_filename=1"><?php _e( 'Image Name', 'formidable' ) ?></a>
167
  </li>
168
  <?php } ?>
classes/views/styles/_buttons.php CHANGED
@@ -1,5 +1,9 @@
1
  <p class="frm_no_top_margin">
2
- <label for="frm_submit_style"><input type="checkbox" name="<?php echo esc_attr( $frm_style->get_field_name('submit_style') ) ?>" id="frm_submit_style" <?php echo $style->post_content['submit_style'] ? 'checked="checked"': ''; ?> value="1" /> <?php _e( 'Disable submit button styling', 'formidable' ); ?> <span class="frm_help frm_icon_font frm_tooltip_icon" title="<?php esc_attr_e( 'Note: If disabled, you may not see the change take effect until you make 2 more styling changes or click "Update Options".', 'formidable' ) ?>" ></span></label>
 
 
 
 
3
  </p>
4
 
5
  <div class="posttypediv">
@@ -37,7 +41,7 @@
37
  <label><?php _e( 'Weight', 'formidable' ) ?></label>
38
  <select name="<?php echo esc_attr( $frm_style->get_field_name('submit_weight') ) ?>" id="frm_submit_weight">
39
  <?php foreach ( FrmStyle::get_bold_options() as $value => $name ) { ?>
40
- <option value="<?php echo esc_attr( $value ) ?>" <?php selected( $style->post_content['submit_weight'], $value ) ?>><?php echo $name ?></option>
41
  <?php } ?>
42
  </select>
43
  </div>
1
  <p class="frm_no_top_margin">
2
+ <label for="frm_submit_style">
3
+ <input type="checkbox" name="<?php echo esc_attr( $frm_style->get_field_name('submit_style') ) ?>" id="frm_submit_style" <?php checked( $style->post_content['submit_style'], 1 ) ?> value="1" />
4
+ <?php esc_html_e( 'Disable submit button styling', 'formidable' ); ?>
5
+ <span class="frm_help frm_icon_font frm_tooltip_icon" title="<?php esc_attr_e( 'Note: If disabled, you may not see the change take effect until you make 2 more styling changes or click "Update Options".', 'formidable' ) ?>"></span>
6
+ </label>
7
  </p>
8
 
9
  <div class="posttypediv">
41
  <label><?php _e( 'Weight', 'formidable' ) ?></label>
42
  <select name="<?php echo esc_attr( $frm_style->get_field_name('submit_weight') ) ?>" id="frm_submit_weight">
43
  <?php foreach ( FrmStyle::get_bold_options() as $value => $name ) { ?>
44
+ <option value="<?php echo esc_attr( $value ) ?>" <?php selected( $style->post_content['submit_weight'], $value ) ?>><?php echo esc_html( $name ) ?></option>
45
  <?php } ?>
46
  </select>
47
  </div>
classes/views/styles/_check-box-radio-fields.php CHANGED
@@ -22,7 +22,7 @@
22
  <label><?php _e( 'Weight', 'formidable' ) ?></label>
23
  <select name="<?php echo esc_attr( $frm_style->get_field_name('check_weight') ) ?>" id="frm_check_weight">
24
  <?php foreach ( FrmStyle::get_bold_options() as $value => $name ) { ?>
25
- <option value="<?php echo esc_attr( $value ) ?>" <?php selected( $style->post_content['check_weight'], $value ) ?>><?php echo $name ?></option>
26
  <?php } ?>
27
  </select>
28
  </div>
22
  <label><?php _e( 'Weight', 'formidable' ) ?></label>
23
  <select name="<?php echo esc_attr( $frm_style->get_field_name('check_weight') ) ?>" id="frm_check_weight">
24
  <?php foreach ( FrmStyle::get_bold_options() as $value => $name ) { ?>
25
+ <option value="<?php echo esc_attr( $value ) ?>" <?php selected( $style->post_content['check_weight'], $value ) ?>><?php echo esc_html( $name ) ?></option>
26
  <?php } ?>
27
  </select>
28
  </div>
classes/views/styles/_date-fields.php CHANGED
@@ -27,7 +27,7 @@ unset($theme_names);
27
  <label><?php _e( 'Theme', 'formidable' ) ?></label>
28
  <select name="<?php echo esc_attr( $frm_style->get_field_name('theme_selector') ) ?>">
29
  <?php foreach ( $jquery_themes as $theme_name => $theme_title ) { ?>
30
- <option value="<?php echo esc_attr( $theme_name ) ?>" id="90_<?php echo esc_attr( $alt_img_name[ $theme_name ] ); ?>" <?php selected( $theme_name, $style->post_content['theme_selector'] ) ?>>
31
  <?php echo esc_html( $theme_title ) ?>
32
  </option>
33
  <?php } ?>
27
  <label><?php _e( 'Theme', 'formidable' ) ?></label>
28
  <select name="<?php echo esc_attr( $frm_style->get_field_name('theme_selector') ) ?>">
29
  <?php foreach ( $jquery_themes as $theme_name => $theme_title ) { ?>
30
+ <option value="<?php echo esc_attr( $theme_name ) ?>" id="90_<?php echo esc_attr( $alt_img_name[ $theme_name ] ); ?>" <?php selected( $theme_title, $style->post_content['theme_name'] ) ?>>
31
  <?php echo esc_html( $theme_title ) ?>
32
  </option>
33
  <?php } ?>
classes/views/styles/_field-description.php CHANGED
@@ -6,7 +6,7 @@
6
  <label><?php _e( 'Weight', 'formidable' ) ?></label>
7
  <select name="<?php echo esc_attr( $frm_style->get_field_name('description_weight') ) ?>" id="frm_description_weight">
8
  <?php foreach ( FrmStyle::get_bold_options() as $value => $name ) { ?>
9
- <option value="<?php echo esc_attr( $value ) ?>" <?php selected( $style->post_content['description_weight'], $value ) ?>><?php echo $name ?></option>
10
  <?php } ?>
11
  </select>
12
  </div>
6
  <label><?php _e( 'Weight', 'formidable' ) ?></label>
7
  <select name="<?php echo esc_attr( $frm_style->get_field_name('description_weight') ) ?>" id="frm_description_weight">
8
  <?php foreach ( FrmStyle::get_bold_options() as $value => $name ) { ?>
9
+ <option value="<?php echo esc_attr( $value ) ?>" <?php selected( $style->post_content['description_weight'], $value ) ?>><?php echo esc_html( $name ) ?></option>
10
  <?php } ?>
11
  </select>
12
  </div>
classes/views/styles/_field-labels.php CHANGED
@@ -6,7 +6,7 @@
6
  <label><?php _e( 'Weight', 'formidable' ) ?></label>
7
  <select name="<?php echo esc_attr( $frm_style->get_field_name('weight') ) ?>" id="frm_weight">
8
  <?php foreach ( FrmStyle::get_bold_options() as $value => $name ) { ?>
9
- <option value="<?php echo esc_attr( $value ) ?>" <?php selected( $style->post_content['weight'], $value ) ?>><?php echo $name ?></option>
10
  <?php } ?>
11
  </select>
12
  </div>
@@ -19,7 +19,7 @@
19
  <label><?php _e( 'Position', 'formidable' ) ?></label>
20
  <select name="<?php echo esc_attr( $frm_style->get_field_name('position') ) ?>" id="frm_position">
21
  <?php foreach ( array( 'none' => __( 'top', 'formidable' ), 'left' => __( 'left', 'formidable' ), 'right' => __( 'right', 'formidable' ), 'no_label' => __( 'none', 'formidable' ) ) as $pos => $pos_label ) { ?>
22
- <option value="<?php echo esc_attr( $pos ) ?>" <?php selected($style->post_content['position'], $pos) ?>><?php echo $pos_label ?></option>
23
  <?php } ?>
24
  </select>
25
  </div>
@@ -52,7 +52,7 @@
52
  <label><?php _e( 'Weight', 'formidable' ) ?></label>
53
  <select name="<?php echo esc_attr( $frm_style->get_field_name('required_weight') ) ?>" id="frm_required_weight">
54
  <?php foreach ( FrmStyle::get_bold_options() as $value => $name ) { ?>
55
- <option value="<?php echo esc_attr( $value ) ?>" <?php selected( $style->post_content['required_weight'], $value ) ?>><?php echo $name ?></option>
56
  <?php } ?>
57
  </select>
58
  </div>
6
  <label><?php _e( 'Weight', 'formidable' ) ?></label>
7
  <select name="<?php echo esc_attr( $frm_style->get_field_name('weight') ) ?>" id="frm_weight">
8
  <?php foreach ( FrmStyle::get_bold_options() as $value => $name ) { ?>
9
+ <option value="<?php echo esc_attr( $value ) ?>" <?php selected( $style->post_content['weight'], $value ) ?>><?php echo esc_html( $name ) ?></option>
10
  <?php } ?>
11
  </select>
12
  </div>
19
  <label><?php _e( 'Position', 'formidable' ) ?></label>
20
  <select name="<?php echo esc_attr( $frm_style->get_field_name('position') ) ?>" id="frm_position">
21
  <?php foreach ( array( 'none' => __( 'top', 'formidable' ), 'left' => __( 'left', 'formidable' ), 'right' => __( 'right', 'formidable' ), 'no_label' => __( 'none', 'formidable' ) ) as $pos => $pos_label ) { ?>
22
+ <option value="<?php echo esc_attr( $pos ) ?>" <?php selected($style->post_content['position'], $pos) ?>><?php echo esc_html( $pos_label ) ?></option>
23
  <?php } ?>
24
  </select>
25
  </div>
52
  <label><?php _e( 'Weight', 'formidable' ) ?></label>
53
  <select name="<?php echo esc_attr( $frm_style->get_field_name('required_weight') ) ?>" id="frm_required_weight">
54
  <?php foreach ( FrmStyle::get_bold_options() as $value => $name ) { ?>
55
+ <option value="<?php echo esc_attr( $value ) ?>" <?php selected( $style->post_content['required_weight'], $value ) ?>><?php echo esc_html( $name ) ?></option>
56
  <?php } ?>
57
  </select>
58
  </div>
classes/views/styles/_section-fields.php CHANGED
@@ -23,7 +23,7 @@
23
  <label><?php _e( 'Weight', 'formidable' ) ?></label>
24
  <select name="<?php echo esc_attr( $frm_style->get_field_name('section_weight') ) ?>" id="frm_section_weight">
25
  <?php foreach ( FrmStyle::get_bold_options() as $value => $name ) { ?>
26
- <option value="<?php echo esc_attr( $value ) ?>" <?php selected( $style->post_content['section_weight'], $value ) ?>><?php echo $name ?></option>
27
  <?php } ?>
28
  </select>
29
  </div>
23
  <label><?php _e( 'Weight', 'formidable' ) ?></label>
24
  <select name="<?php echo esc_attr( $frm_style->get_field_name('section_weight') ) ?>" id="frm_section_weight">
25
  <?php foreach ( FrmStyle::get_bold_options() as $value => $name ) { ?>
26
+ <option value="<?php echo esc_attr( $value ) ?>" <?php selected( $style->post_content['section_weight'], $value ) ?>><?php echo esc_html( $name ) ?></option>
27
  <?php } ?>
28
  </select>
29
  </div>
classes/views/xml/forms_xml.php CHANGED
@@ -12,33 +12,33 @@ while ( $next_set = array_splice( $item_ids, 0, 20 ) ) {
12
  foreach ( $forms as $form ) {
13
  ?>
14
  <form>
15
- <id><?php echo $form->id ?></id>
16
  <form_key><?php echo FrmXMLHelper::cdata($form->form_key) ?></form_key>
17
  <name><?php echo FrmXMLHelper::cdata($form->name) ?></name>
18
  <description><?php echo FrmXMLHelper::cdata($form->description) ?></description>
19
- <created_at><?php echo $form->created_at ?></created_at>
20
- <logged_in><?php echo $form->logged_in ?></logged_in>
21
- <is_template><?php echo $form->is_template ?></is_template>
22
- <default_template><?php echo $form->default_template ?></default_template>
23
- <editable><?php echo $form->editable ?></editable>
24
  <options><?php echo FrmXMLHelper::prepare_form_options_for_export($form->options) ?></options>
25
  <status><?php echo FrmXMLHelper::cdata($form->status) ?></status>
26
- <parent_form_id><?php echo $form->parent_form_id ?></parent_form_id>
27
  <?php
28
 
29
  $fields = FrmDb::get_results( $wpdb->prefix . 'frm_fields', array( 'form_id' => $form->id ), '*', array( 'order_by' => 'field_order' ) );
30
 
31
  foreach ( $fields as $field ) { ?>
32
  <field>
33
- <id><?php echo $field->id ?></id>
34
  <field_key><?php echo FrmXMLHelper::cdata($field->field_key) ?></field_key>
35
  <name><?php echo FrmXMLHelper::cdata($field->name) ?></name>
36
  <description><?php echo FrmXMLHelper::cdata($field->description) ?></description>
37
  <type><?php echo FrmXMLHelper::cdata($field->type) ?></type>
38
  <default_value><?php echo FrmXMLHelper::cdata($field->default_value) ?></default_value>
39
- <field_order><?php echo $field->field_order ?></field_order>
40
- <form_id><?php echo $field->form_id ?></form_id>
41
- <required><?php echo (bool) $field->required ?></required>
42
  <options><?php echo FrmXMLHelper::cdata($field->options) ?></options>
43
  <field_options><?php echo FrmXMLHelper::cdata($field->field_options) ?></field_options>
44
  </field>
12
  foreach ( $forms as $form ) {
13
  ?>
14
  <form>
15
+ <id><?php echo absint( $form->id ) ?></id>
16
  <form_key><?php echo FrmXMLHelper::cdata($form->form_key) ?></form_key>
17
  <name><?php echo FrmXMLHelper::cdata($form->name) ?></name>
18
  <description><?php echo FrmXMLHelper::cdata($form->description) ?></description>
19
+ <created_at><?php echo esc_html( $form->created_at ) ?></created_at>
20
+ <logged_in><?php echo esc_html( $form->logged_in ) ?></logged_in>
21
+ <is_template><?php echo esc_html( $form->is_template ) ?></is_template>
22
+ <default_template><?php echo esc_html( $form->default_template ) ?></default_template>
23
+ <editable><?php echo esc_html( $form->editable ) ?></editable>
24
  <options><?php echo FrmXMLHelper::prepare_form_options_for_export($form->options) ?></options>
25
  <status><?php echo FrmXMLHelper::cdata($form->status) ?></status>
26
+ <parent_form_id><?php echo esc_html( $form->parent_form_id ) ?></parent_form_id>
27
  <?php
28
 
29
  $fields = FrmDb::get_results( $wpdb->prefix . 'frm_fields', array( 'form_id' => $form->id ), '*', array( 'order_by' => 'field_order' ) );
30
 
31
  foreach ( $fields as $field ) { ?>
32
  <field>
33
+ <id><?php echo absint( $field->id ) ?></id>
34
  <field_key><?php echo FrmXMLHelper::cdata($field->field_key) ?></field_key>
35
  <name><?php echo FrmXMLHelper::cdata($field->name) ?></name>
36
  <description><?php echo FrmXMLHelper::cdata($field->description) ?></description>
37
  <type><?php echo FrmXMLHelper::cdata($field->type) ?></type>
38
  <default_value><?php echo FrmXMLHelper::cdata($field->default_value) ?></default_value>
39
+ <field_order><?php echo absint( $field->field_order ) ?></field_order>
40
+ <form_id><?php echo absint( $field->form_id ) ?></form_id>
41
+ <required><?php echo absint( $field->required ) ?></required>
42
  <options><?php echo FrmXMLHelper::cdata($field->options) ?></options>
43
  <field_options><?php echo FrmXMLHelper::cdata($field->field_options) ?></field_options>
44
  </field>
classes/views/xml/posts_xml.php CHANGED
@@ -23,18 +23,18 @@ while ( $next_posts = array_splice( $item_ids, 0, 20 ) ) {
23
  <description></description>
24
  <content><?php echo FrmXMLHelper::cdata( apply_filters( 'the_content_export', $post->post_content ) ); ?></content>
25
  <excerpt><?php echo FrmXMLHelper::cdata( apply_filters( 'the_excerpt_export', $post->post_excerpt ) ); ?></excerpt>
26
- <post_id><?php echo $post->ID; ?></post_id>
27
- <post_date><?php echo $post->post_date; ?></post_date>
28
- <post_date_gmt><?php echo $post->post_date_gmt; ?></post_date_gmt>
29
- <comment_status><?php echo $post->comment_status; ?></comment_status>
30
- <ping_status><?php echo $post->ping_status; ?></ping_status>
31
- <post_name><?php echo $post->post_name; ?></post_name>
32
- <status><?php echo $post->post_status; ?></status>
33
- <post_parent><?php echo $post->post_parent; ?></post_parent>
34
- <menu_order><?php echo $post->menu_order; ?></menu_order>
35
- <post_type><?php echo $post->post_type; ?></post_type>
36
- <post_password><?php echo $post->post_password; ?></post_password>
37
- <is_sticky><?php echo $is_sticky; ?></is_sticky>
38
  <?php if ( $post->post_type == 'attachment' ) : ?>
39
  <attachment_url><?php echo wp_get_attachment_url( $post->ID ); ?></attachment_url>
40
  <?php endif; ?>
@@ -46,7 +46,7 @@ while ( $next_posts = array_splice( $item_ids, 0, 20 ) ) {
46
  }
47
  ?>
48
  <postmeta>
49
- <meta_key><?php echo $meta->meta_key; ?></meta_key>
50
  <meta_value><?php echo FrmXMLHelper::cdata( $meta->meta_value ); ?></meta_value>
51
  </postmeta>
52
  <?php endforeach;
@@ -80,13 +80,13 @@ foreach ( (array) $terms as $term ) {
80
 
81
  $frm_inc_tax[] = $term->term_id;
82
  $label = ($term->taxonomy == 'category' || $term->taxonomy == 'tag') ? $term->taxonomy : 'term'; ?>
83
- <term><term_id><?php echo $term->term_id ?></term_id><term_taxonomy><?php echo $term->taxonomy; ?></term_taxonomy><?php
84
  if ( ! empty( $term->name ) ) {
85
  echo '<term_name>' . FrmXMLHelper::cdata( $term->name ) . '</term_name>';
86
  }
87
  if ( ! empty( $term->description ) ) {
88
  ?><term_description><?php echo FrmXMLHelper::cdata( $term->description ) ?></term_description><?php
89
  }
90
- ?><term_slug><?php echo $term->slug; ?></term_slug></term>
91
  <?php
92
  }
23
  <description></description>
24
  <content><?php echo FrmXMLHelper::cdata( apply_filters( 'the_content_export', $post->post_content ) ); ?></content>
25
  <excerpt><?php echo FrmXMLHelper::cdata( apply_filters( 'the_excerpt_export', $post->post_excerpt ) ); ?></excerpt>
26
+ <post_id><?php echo esc_html( $post->ID ); ?></post_id>
27
+ <post_date><?php echo esc_html( $post->post_date ); ?></post_date>
28
+ <post_date_gmt><?php echo esc_html( $post->post_date_gmt ); ?></post_date_gmt>
29
+ <comment_status><?php echo esc_html( $post->comment_status ); ?></comment_status>
30
+ <ping_status><?php echo esc_html( $post->ping_status ); ?></ping_status>
31
+ <post_name><?php echo esc_html( $post->post_name ); ?></post_name>
32
+ <status><?php echo esc_html( $post->post_status ); ?></status>
33
+ <post_parent><?php echo esc_html( $post->post_parent ); ?></post_parent>
34
+ <menu_order><?php echo esc_html( $post->menu_order ); ?></menu_order>
35
+ <post_type><?php echo esc_html( $post->post_type ); ?></post_type>
36
+ <post_password><?php echo FrmXMLHelper::cdata( $post->post_password ); ?></post_password>
37
+ <is_sticky><?php echo esc_html( $is_sticky ); ?></is_sticky>
38
  <?php if ( $post->post_type == 'attachment' ) : ?>
39
  <attachment_url><?php echo wp_get_attachment_url( $post->ID ); ?></attachment_url>
40
  <?php endif; ?>
46
  }
47
  ?>
48
  <postmeta>
49
+ <meta_key><?php echo esc_html( $meta->meta_key ); ?></meta_key>
50
  <meta_value><?php echo FrmXMLHelper::cdata( $meta->meta_value ); ?></meta_value>
51
  </postmeta>
52
  <?php endforeach;
80
 
81
  $frm_inc_tax[] = $term->term_id;
82
  $label = ($term->taxonomy == 'category' || $term->taxonomy == 'tag') ? $term->taxonomy : 'term'; ?>
83
+ <term><term_id><?php echo esc_html( $term->term_id ) ?></term_id><term_taxonomy><?php echo esc_html( $term->taxonomy ); ?></term_taxonomy><?php
84
  if ( ! empty( $term->name ) ) {
85
  echo '<term_name>' . FrmXMLHelper::cdata( $term->name ) . '</term_name>';
86
  }
87
  if ( ! empty( $term->description ) ) {
88
  ?><term_description><?php echo FrmXMLHelper::cdata( $term->description ) ?></term_description><?php
89
  }
90
+ ?><term_slug><?php echo esc_html( $term->slug ); ?></term_slug></term>
91
  <?php
92
  }
css/_single_theme.css.php CHANGED
@@ -402,11 +402,6 @@ if ( ! isset( $center_form ) ) {
402
  color:transparent<?php echo esc_html( $important ) ?>;
403
  }
404
 
405
- .<?php echo esc_html( $style_class ) ?> .frm_file_names, .<?php echo esc_html( $style_class ) ?> .frm_uploaded_files .frm_remove_link{
406
- font-family:<?php echo FrmAppHelper::kses( $font . $important ) ?>;
407
- font-size:<?php echo esc_html( $field_font_size . $important ) ?>;
408
- }
409
-
410
  .<?php echo esc_html( $style_class ) ?> .frm_default,
411
  .<?php echo esc_html( $style_class ) ?> .placeholder,
412
  .<?php echo esc_html( $style_class ) ?> .chosen-container-multi .chosen-choices li.search-field .default,
@@ -489,6 +484,7 @@ if ( ! isset( $center_form ) ) {
489
 
490
  <?php
491
  if ( ! $submit_style ) { ?>
 
492
  .<?php echo esc_html( $style_class ) ?> input[type=submit],
493
  .<?php echo esc_html( $style_class ) ?> .frm_submit input[type=button],
494
  .frm_form_submit_style,
@@ -754,6 +750,25 @@ if ( ! $submit_style ) { ?>
754
  font-size:<?php echo esc_html( $submit_font_size . $important ) ?>;
755
  }
756
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
757
  /* RTL Grids */
758
  <?php if ( 'rtl' == $direction ) { ?>
759
  .<?php echo esc_html( $style_class ) ?> .frm_form_fields div.rating-cancel,
402
  color:transparent<?php echo esc_html( $important ) ?>;
403
  }
404
 
 
 
 
 
 
405
  .<?php echo esc_html( $style_class ) ?> .frm_default,
406
  .<?php echo esc_html( $style_class ) ?> .placeholder,
407
  .<?php echo esc_html( $style_class ) ?> .chosen-container-multi .chosen-choices li.search-field .default,
484
 
485
  <?php
486
  if ( ! $submit_style ) { ?>
487
+ .<?php echo esc_html( $style_class ) ?> .frm_compact .frm_dropzone.dz-clickable .dz-message,
488
  .<?php echo esc_html( $style_class ) ?> input[type=submit],
489
  .<?php echo esc_html( $style_class ) ?> .frm_submit input[type=button],
490
  .frm_form_submit_style,
750
  font-size:<?php echo esc_html( $submit_font_size . $important ) ?>;
751
  }
752
 
753
+ /* Dropzone */
754
+ .<?php echo esc_html( $style_class ) ?> .frm_dropzone{
755
+ border-color:#<?php echo esc_html( $border_color . $important ) ?>;
756
+ border-radius:<?php echo esc_html( $border_radius . $important ) ?>;
757
+ color:#<?php echo esc_html( $text_color . $important ) ?>;
758
+ background-color:<?php echo esc_html( ( empty( $bg_color ) ? 'transparent' : '#' . $bg_color ) . $important ); ?>;
759
+ }
760
+
761
+ .<?php echo esc_html( $style_class ) ?> .frm_dropzone .frm_upload_icon:before,
762
+ .<?php echo esc_html( $style_class ) ?> .frm_dropzone .dz-remove{
763
+ color:#<?php echo esc_html( $text_color . $important ) ?>;
764
+ }
765
+
766
+ .<?php echo esc_html( $style_class ) ?> .frm_blank_field .frm_dropzone{
767
+ border-color:#<?php echo esc_html( $border_color_error . $important ) ?>;
768
+ color:#<?php echo esc_html( $text_color_error . $important ) ?>;
769
+ background-color:<?php echo esc_html( ( empty( $bg_color_error ) ? 'transparent' : '#' . $bg_color_error ) . $important ); ?>;
770
+ }
771
+
772
  /* RTL Grids */
773
  <?php if ( 'rtl' == $direction ) { ?>
774
  .<?php echo esc_html( $style_class ) ?> .frm_form_fields div.rating-cancel,
css/custom_theme.css.php CHANGED
@@ -236,6 +236,7 @@ a.frm_save_draft{
236
  display:inline-block;
237
  }
238
 
 
239
  .with_frm_style .frm_radio label .frm_file_container,
240
  .with_frm_style .frm_checkbox label .frm_file_container{
241
  display:inline-block;
@@ -311,7 +312,7 @@ a.frm_save_draft{
311
  padding:5px;
312
  border-width:1px;
313
  border-style:solid;
314
- border-color:#<?php echo $defaults['border_color'] ?>;
315
  border-top:none;
316
  border-left:none;
317
  border-right:none;
@@ -323,9 +324,9 @@ table.form_results.with_frm_style{
323
 
324
  table.form_results.with_frm_style tr td{
325
  text-align:left;
326
- color:#<?php echo $defaults['text_color'] ?>;
327
  padding:7px 9px;
328
- border-top:1px solid #<?php echo $defaults['border_color'] ?>;
329
  }
330
 
331
  table.form_results.with_frm_style tr.frm_even,
@@ -335,15 +336,7 @@ table.form_results.with_frm_style tr.frm_even,
335
 
336
  table.form_results.with_frm_style tr.frm_odd,
337
  .frm-grid .frm_odd{
338
- background-color:#<?php echo $defaults['bg_color_active'] ?>;
339
- }
340
-
341
- .with_frm_style .frm_uploaded_files{
342
- padding:5px 0;
343
- }
344
-
345
- .with_frm_style .frm_file_names{
346
- display:block;
347
  }
348
 
349
  .frm_collapse .ui-icon{
@@ -414,12 +407,12 @@ table.form_results.with_frm_style tr.frm_odd,
414
  }
415
 
416
  #frm_loading .progress-striped .progress-bar{
417
- background-image:linear-gradient(45deg, #<?php echo $defaults['border_color'] ?> 25%, rgba(0, 0, 0, 0) 25%, rgba(0, 0, 0, 0) 50%, #<?php echo $defaults['border_color'] ?> 50%, #<?php echo $defaults['border_color'] ?> 75%, rgba(0, 0, 0, 0) 75%, rgba(0, 0, 0, 0));
418
  background-size:40px 40px;
419
  }
420
 
421
  #frm_loading .progress-bar{
422
- background-color:#<?php echo $defaults['bg_color'] ?>;
423
  box-shadow:0 -1px 0 rgba(0, 0, 0, 0.15) inset;
424
  float:left;
425
  height:100%;
@@ -466,12 +459,12 @@ ul.frm_pagination > li.active a{
466
  .frmcal table.frmcal-calendar{
467
  border-collapse:collapse;
468
  margin-top:20px;
469
- color:#<?php echo $defaults['text_color'] ?>;
470
  }
471
 
472
  .frmcal table.frmcal-calendar,
473
  .frmcal table.frmcal-calendar tbody tr td{
474
- border:1px solid #<?php echo $defaults['border_color'] ?>;
475
  }
476
 
477
  .frmcal table.frmcal-calendar,
@@ -516,25 +509,25 @@ ul.frm_pagination > li.active a{
516
  }
517
 
518
  table.frmcal-calendar .frmcal_date{
519
- background-color:#<?php echo $defaults['bg_color'] ?>;
520
  padding:0 5px;
521
  text-align:right;
522
- -moz-box-shadow:0 2px 5px #<?php echo $defaults['border_color'] ?>;
523
- -webkit-box-shadow:0 2px 5px #<?php echo $defaults['border_color'] ?>;
524
- box-shadow:0 2px 5px #<?php echo $defaults['border_color'] ?>;
525
- -ms-filter:"progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=180, Color='#<?php echo $defaults['border_color'] ?>')";
526
- filter:progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=180, Color='#<?php echo $defaults['border_color'] ?>');
527
  }
528
 
529
  table.frmcal-calendar .frmcal-today .frmcal_date{
530
- background-color:#<?php echo $defaults['bg_color_active'] ?>;
531
  padding:0 5px;
532
  text-align:right;
533
- -moz-box-shadow:0 2px 5px #<?php echo $defaults['border_color_active'] ?>;
534
- -webkit-box-shadow:0 2px 5px #<?php echo $defaults['border_color_active'] ?>;
535
- box-shadow:0 2px 5px #<?php echo $defaults['border_color_active'] ?>;
536
- -ms-filter:"progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=180, Color='#<?php echo $defaults['border_color_active'] ?>')";
537
- filter:progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=180, Color='#<?php echo $defaults['border_color_active'] ?>');
538
  }
539
 
540
  .frmcal_num{
@@ -704,7 +697,7 @@ table.frmcal-calendar .frmcal-today .frmcal_date{
704
  padding:5px;
705
  border-width:1px;
706
  border-style:solid;
707
- border-color:#<?php echo $defaults['border_color'] ?>;
708
  border-left:none;
709
  border-right:none;
710
  }
@@ -737,11 +730,11 @@ table.frmcal-calendar .frmcal-today .frmcal_date{
737
 
738
  .frm_grid_first,
739
  .frm_grid_odd{
740
- background-color:#<?php echo $defaults['bg_color'] ?>;
741
  }
742
 
743
  .frm_grid{
744
- background-color:#<?php echo $defaults['bg_color_active'] ?>;
745
  }
746
 
747
  .frm_grid .frm_primary_label,
@@ -982,17 +975,17 @@ table.frmcal-calendar .frmcal-today .frmcal_date{
982
  .frm_form_field.frm_html_scroll_box{
983
  height:100px;
984
  overflow:auto;
985
- background-color:#<?php echo $defaults['bg_color'] ?>;
986
- border-color:#<?php echo $defaults['border_color'] ?>;
987
- border-width:<?php echo $defaults['field_border_width'] ?>;
988
- border-style:<?php echo $defaults['field_border_style'] ?>;
989
- -moz-border-radius:<?php echo $defaults['border_radius'] ?>;
990
- -webkit-border-radius:<?php echo $defaults['border_radius'] ?>;
991
- border-radius:<?php echo $defaults['border_radius'] ?>;
992
- width:<?php echo ($defaults['field_width'] == '' ? 'auto' : $defaults['field_width']) ?>;
993
  max-width:100%;
994
- font-size:<?php echo $defaults['field_font_size'] ?>;
995
- padding:<?php echo $defaults['field_pad'] ?>;
996
  -webkit-box-sizing:border-box;
997
  -moz-box-sizing:border-box;
998
  box-sizing:border-box;
@@ -1564,6 +1557,7 @@ html[xmlns] .frm_clearfix{
1564
  }
1565
 
1566
  <?php include( FrmAppHelper::plugin_path() . '/css/font_icons.css' ); ?>
 
1567
 
1568
  /* Responsive */
1569
  @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-resolution: 144dpi){
236
  display:inline-block;
237
  }
238
 
239
+ .frm_file_container .frm_file_link,
240
  .with_frm_style .frm_radio label .frm_file_container,
241
  .with_frm_style .frm_checkbox label .frm_file_container{
242
  display:inline-block;
312
  padding:5px;
313
  border-width:1px;
314
  border-style:solid;
315
+ border-color:#<?php echo esc_html( $defaults['border_color'] ) ?>;
316
  border-top:none;
317
  border-left:none;
318
  border-right:none;
324
 
325
  table.form_results.with_frm_style tr td{
326
  text-align:left;
327
+ color:#<?php echo esc_html( $defaults['text_color'] ) ?>;
328
  padding:7px 9px;
329
+ border-top:1px solid #<?php echo esc_html( $defaults['border_color'] ) ?>;
330
  }
331
 
332
  table.form_results.with_frm_style tr.frm_even,
336
 
337
  table.form_results.with_frm_style tr.frm_odd,
338
  .frm-grid .frm_odd{
339
+ background-color:#<?php echo esc_html( $defaults['bg_color_active'] ) ?>;
 
 
 
 
 
 
 
 
340
  }
341
 
342
  .frm_collapse .ui-icon{
407
  }
408
 
409
  #frm_loading .progress-striped .progress-bar{
410
+ background-image:linear-gradient(45deg, #<?php echo esc_html( $defaults['border_color'] ) ?> 25%, rgba(0, 0, 0, 0) 25%, rgba(0, 0, 0, 0) 50%, #<?php echo esc_html( $defaults['border_color'] ) ?> 50%, #<?php echo esc_html( $defaults['border_color'] ) ?> 75%, rgba(0, 0, 0, 0) 75%, rgba(0, 0, 0, 0));
411
  background-size:40px 40px;
412
  }
413
 
414
  #frm_loading .progress-bar{
415
+ background-color:#<?php echo esc_html( $defaults['bg_color'] ) ?>;
416
  box-shadow:0 -1px 0 rgba(0, 0, 0, 0.15) inset;
417
  float:left;
418
  height:100%;
459
  .frmcal table.frmcal-calendar{
460
  border-collapse:collapse;
461
  margin-top:20px;
462
+ color:#<?php echo esc_html( $defaults['text_color'] ) ?>;
463
  }
464
 
465
  .frmcal table.frmcal-calendar,
466
  .frmcal table.frmcal-calendar tbody tr td{
467
+ border:1px solid #<?php echo esc_html( $defaults['border_color'] ) ?>;
468
  }
469
 
470
  .frmcal table.frmcal-calendar,
509
  }
510
 
511
  table.frmcal-calendar .frmcal_date{
512
+ background-color:#<?php echo esc_html( $defaults['bg_color'] ) ?>;
513
  padding:0 5px;
514
  text-align:right;
515
+ -moz-box-shadow:0 2px 5px #<?php echo esc_html( $defaults['border_color'] ) ?>;
516
+ -webkit-box-shadow:0 2px 5px #<?php echo esc_html( $defaults['border_color'] ) ?>;
517
+ box-shadow:0 2px 5px #<?php echo esc_html( $defaults['border_color'] ) ?>;
518
+ -ms-filter:"progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=180, Color='#<?php echo esc_attr( $defaults['border_color'] ) ?>')";
519
+ filter:progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=180, Color='#<?php echo esc_attr( $defaults['border_color'] ) ?>');
520
  }
521
 
522
  table.frmcal-calendar .frmcal-today .frmcal_date{
523
+ background-color:#<?php echo esc_html( $defaults['bg_color_active'] ) ?>;
524
  padding:0 5px;
525
  text-align:right;
526
+ -moz-box-shadow:0 2px 5px #<?php echo esc_html( $defaults['border_color_active'] ) ?>;
527
+ -webkit-box-shadow:0 2px 5px #<?php echo esc_html( $defaults['border_color_active'] ) ?>;
528
+ box-shadow:0 2px 5px #<?php echo esc_html( $defaults['border_color_active'] ) ?>;
529
+ -ms-filter:"progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=180, Color='#<?php echo esc_html( $defaults['border_color_active'] ) ?>')";
530
+ filter:progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=180, Color='#<?php echo esc_html( $defaults['border_color_active'] ) ?>');
531
  }
532
 
533
  .frmcal_num{
697
  padding:5px;
698
  border-width:1px;
699
  border-style:solid;
700
+ border-color:#<?php echo esc_html( $defaults['border_color'] ) ?>;
701
  border-left:none;
702
  border-right:none;
703
  }
730
 
731
  .frm_grid_first,
732
  .frm_grid_odd{
733
+ background-color:#<?php echo esc_html( $defaults['bg_color'] ) ?>;
734
  }
735
 
736
  .frm_grid{
737
+ background-color:#<?php echo esc_html( $defaults['bg_color_active'] ) ?>;
738
  }
739
 
740
  .frm_grid .frm_primary_label,
975
  .frm_form_field.frm_html_scroll_box{
976
  height:100px;
977
  overflow:auto;
978
+ background-color:#<?php echo esc_html( $defaults['bg_color'] ) ?>;
979
+ border-color:#<?php echo esc_html( $defaults['border_color'] ) ?>;
980
+ border-width:<?php echo esc_html( $defaults['field_border_width'] ) ?>;
981
+ border-style:<?php echo esc_html( $defaults['field_border_style'] ) ?>;
982
+ -moz-border-radius:<?php echo esc_html( $defaults['border_radius'] ) ?>;
983
+ -webkit-border-radius:<?php echo esc_html( $defaults['border_radius'] ) ?>;
984
+ border-radius:<?php echo esc_html( $defaults['border_radius'] ) ?>;
985
+ width:<?php echo esc_html( $defaults['field_width'] == '' ? 'auto' : $defaults['field_width'] ) ?>;
986
  max-width:100%;
987
+ font-size:<?php echo esc_html( $defaults['field_font_size'] ) ?>;
988
+ padding:<?php echo esc_html( $defaults['field_pad'] ) ?>;
989
  -webkit-box-sizing:border-box;
990
  -moz-box-sizing:border-box;
991
  box-sizing:border-box;
1557
  }
1558
 
1559
  <?php include( FrmAppHelper::plugin_path() . '/css/font_icons.css' ); ?>
1560
+ <?php include( FrmAppHelper::plugin_path() . '/css/dropzone.css' ); ?>
1561
 
1562
  /* Responsive */
1563
  @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-resolution: 144dpi){
css/dropzone.css ADDED
@@ -0,0 +1,583 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * The MIT License
3
+ * Copyright (c) 2012 Matias Meno <m@tias.me>
4
+ */
5
+ @-webkit-keyframes passing-through {
6
+ 0% {
7
+ opacity: 0;
8
+ -webkit-transform: translateY(40px);
9
+ -moz-transform: translateY(40px);
10
+ -ms-transform: translateY(40px);
11
+ -o-transform: translateY(40px);
12
+ transform: translateY(40px);
13
+ }
14
+ 30%, 70% {
15
+ opacity: 1;
16
+ -webkit-transform: translateY(0px);
17
+ -moz-transform: translateY(0px);
18
+ -ms-transform: translateY(0px);
19
+ -o-transform: translateY(0px);
20
+ transform: translateY(0px);
21
+ }
22
+ 100% {
23
+ opacity: 0;
24
+ -webkit-transform: translateY(-40px);
25
+ -moz-transform: translateY(-40px);
26
+ -ms-transform: translateY(-40px);
27
+ -o-transform: translateY(-40px);
28
+ transform: translateY(-40px);
29
+ }
30
+
31
+ }
32
+ @-moz-keyframes passing-through {
33
+ 0% {
34
+ opacity: 0;
35
+ -webkit-transform: translateY(40px);
36
+ -moz-transform: translateY(40px);
37
+ -ms-transform: translateY(40px);
38
+ -o-transform: translateY(40px);
39
+ transform: translateY(40px);
40
+