Visual Form Builder - Version 1.3.1

Version Description

Recommended update immediately! Fix for bug where confirmation screen does not install.

Download this release

Release Info

Developer mmuro
Plugin Icon 128x128 Visual Form Builder
Version 1.3.1
Comparing to
See all releases

Code changes from version 1.3 to 1.3.1

Files changed (3) hide show
  1. css/sprite.png +0 -0
  2. readme.txt +10 -1
  3. visual-form-builder.php +22 -22
css/sprite.png ADDED
Binary file
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: mmuro
3
  Tags: form, forms, form to email, email form, email, input, validation, jquery, shortcode
4
  Requires at least: 3.1
5
  Tested up to: 3.2.1
6
- Stable tag: 1.3
7
 
8
  Dynamically build forms using a simple interface. Forms include jQuery validation, a basic logic-based verification system, and entry tracking.
9
 
@@ -83,6 +83,12 @@ To use the more complex features of the Date Picker plugin, you will need to:
83
 
84
  == Changelog ==
85
 
 
 
 
 
 
 
86
  **Version 1.3**
87
 
88
  * Fix bug where jQuery validation was missing from security field
@@ -115,6 +121,9 @@ To use the more complex features of the Date Picker plugin, you will need to:
115
 
116
  == Upgrade Notice ==
117
 
 
 
 
118
  = 1.3 =
119
  New, faster way to add form items and ability to customize Confirmation. Fix for validation on security field.
120
 
3
  Tags: form, forms, form to email, email form, email, input, validation, jquery, shortcode
4
  Requires at least: 3.1
5
  Tested up to: 3.2.1
6
+ Stable tag: 1.3.1
7
 
8
  Dynamically build forms using a simple interface. Forms include jQuery validation, a basic logic-based verification system, and entry tracking.
9
 
83
 
84
  == Changelog ==
85
 
86
+ **Version 1.3.1**
87
+
88
+ * Fix bug where new Confirmation screen was not being installed
89
+ * Fix bug where escaped names and descriptions were not being stripped of slashes properly
90
+ * Add missing sprite image for Form Items
91
+
92
  **Version 1.3**
93
 
94
  * Fix bug where jQuery validation was missing from security field
121
 
122
  == Upgrade Notice ==
123
 
124
+ = 1.3.1 =
125
+ Recommended update immediately! Fix for bug where confirmation screen does not install.
126
+
127
  = 1.3 =
128
  New, faster way to add form items and ability to customize Confirmation. Fix for validation on security field.
129
 
visual-form-builder.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Visual Form Builder
4
  Description: Dynamically build forms using a simple interface. Forms include jQuery validation, a basic logic-based verification system, and entry tracking.
5
  Author: Matthew Muro
6
- Version: 1.3
7
  */
8
 
9
  /*
@@ -27,7 +27,7 @@ $visual_form_builder = new Visual_Form_Builder();
27
  /* Restrict Categories class */
28
  class Visual_Form_Builder{
29
 
30
- public $vfb_db_version = '1.3';
31
 
32
  public function __construct(){
33
  global $wpdb;
@@ -62,13 +62,13 @@ class Visual_Form_Builder{
62
  /* Add a database version to help with upgrades and run SQL install */
63
  if ( !get_option( 'vfb_db_version' ) ) {
64
  update_option( 'vfb_db_version', $this->vfb_db_version );
65
- add_action( 'plugins_loaded', array( &$this, 'install_db' ) );
66
  }
67
 
68
  /* If database version doesn't match, update and run SQL install */
69
  if ( get_option( 'vfb_db_version' ) != $this->vfb_db_version ) {
70
  update_option( 'vfb_db_version', $this->vfb_db_version );
71
- add_action( 'plugins_loaded', array( &$this, 'install_db' ) );
72
  }
73
 
74
  /* Load the jQuery and CSS we need if we're on our plugin page */
@@ -210,7 +210,7 @@ class Visual_Form_Builder{
210
  $field_sql = "CREATE TABLE $field_table_name (
211
  field_id BIGINT(20) NOT NULL AUTO_INCREMENT,
212
  form_id BIGINT(20) NOT NULL,
213
- field_key VARCHAR(25) NOT NULL,
214
  field_type VARCHAR(25) NOT NULL,
215
  field_options TEXT,
216
  field_description TEXT,
@@ -879,20 +879,20 @@ class Visual_Form_Builder{
879
  <?php if ( $field->field_type == 'fieldset' ) : ?>
880
  <p class="description description-wide">
881
  <label for="edit-form-item-name-<?php echo $field->field_id; ?>">Legend<br />
882
- <input type="text" value="<?php echo $field->field_name; ?>" name="field_name-<?php echo $field->field_id; ?>" class="widefat" id="edit-form-item-name-<?php echo $field->field_id; ?>" />
883
  </label>
884
  </p>
885
  <?php else: ?>
886
  <p class="description description-wide">
887
  <label for="edit-form-item-name-<?php echo $field->field_id; ?>">
888
  Name<br />
889
- <input type="text" value="<?php echo $field->field_name; ?>" name="field_name-<?php echo $field->field_id; ?>" class="widefat" id="edit-form-item-name-<?php echo $field->field_id; ?>" />
890
  </label>
891
  </p>
892
  <p class="description description-wide">
893
  <label for="edit-form-item-description-<?php echo $field->field_id; ?>">
894
  Description<br />
895
- <input type="text" value="<?php echo $field->field_description; ?>" name="field_description-<?php echo $field->field_id; ?>" class="widefat" id="edit-form-item-description-<?php echo $field->field_id; ?>" />
896
  </label>
897
  </p>
898
 
@@ -910,7 +910,7 @@ class Visual_Form_Builder{
910
  ?>
911
  <label for="edit-form-item-options-<?php echo $field->field_id; ?>">
912
  Options (separated by commas)<br />
913
- <input type="text" value="<?php echo $opts_vals; ?>" name="field_options-<?php echo $field->field_id; ?>" class="widefat" id="edit-form-item-options-<?php echo $field->field_id; ?>" />
914
  </label>
915
  </p>
916
  <?php
@@ -1012,7 +1012,7 @@ class Visual_Form_Builder{
1012
  foreach ( $forms as $form ) {
1013
  /* If text, return output and format the HTML for display */
1014
  if ( 'text' == $form->form_success_type )
1015
- return html_entity_decode( wp_kses_stripslashes( $form->form_success_message ) );
1016
  /* If page, redirect to the permalink */
1017
  elseif ( 'page' == $form->form_success_type ) {
1018
  $page = get_permalink( $form->form_success_message );
@@ -1076,7 +1076,7 @@ class Visual_Form_Builder{
1076
  if ( $open_fieldset == true )
1077
  $output .= '</ul><br /></fieldset>';
1078
 
1079
- $output .= '<fieldset><div class="legend"><h3>' . $field->field_name . '</h3></div><ul>';
1080
  $open_fieldset = true;
1081
  }
1082
  else {
@@ -1105,7 +1105,7 @@ class Visual_Form_Builder{
1105
  case 'textarea' :
1106
 
1107
  if ( !empty( $field->field_description ) )
1108
- $output .= '<span><label>' . $field->field_description . '</label></span>';
1109
 
1110
  $output .= '<textarea name="vfb-'. $field->field_key . '" id="vfb-'. $field->field_key . '" class="textarea ' . $field->field_size . $required . '"></textarea>';
1111
 
@@ -1113,7 +1113,7 @@ class Visual_Form_Builder{
1113
 
1114
  case 'select':
1115
  if ( !empty( $field->field_description ) )
1116
- $output .= '<span><label>' . $field->field_description . '</label></span>';
1117
 
1118
  $output .= '<select name="vfb-'. $field->field_key . '" id="vfb-'. $field->field_key . '" class="select ' . $field->field_size . $required . '">';
1119
 
@@ -1131,7 +1131,7 @@ class Visual_Form_Builder{
1131
  case 'radio':
1132
 
1133
  if ( !empty( $field->field_description ) )
1134
- $output .= '<span><label>' . $field->field_description . '</label></span>';
1135
 
1136
  $options = explode( ',', unserialize( $field->field_options ) );
1137
 
@@ -1140,8 +1140,8 @@ class Visual_Form_Builder{
1140
  /* Loop through each option and output */
1141
  foreach ( $options as $option => $value ) {
1142
  $output .= '<span>
1143
- <input type="radio" name="vfb-'. $field->field_key . '" id="vfb-'. $field->field_key . '-' . $option . '" value="'. $value . '" class="radio' . $required . '" />'.
1144
- ' <label for="vfb-' . $field->field_key . '-' . $option . '" class="choice">' . $value . '</label>' .
1145
  '</span>';
1146
  }
1147
 
@@ -1152,7 +1152,7 @@ class Visual_Form_Builder{
1152
  case 'checkbox':
1153
 
1154
  if ( !empty( $field->field_description ) )
1155
- $output .= '<span><label>' . $field->field_description . '</label></span>';
1156
 
1157
  $options = explode( ',', unserialize( $field->field_options ) );
1158
 
@@ -1161,8 +1161,8 @@ class Visual_Form_Builder{
1161
  /* Loop through each option and output */
1162
  foreach ( $options as $option => $value ) {
1163
 
1164
- $output .= '<span><input type="checkbox" name="vfb-'. $field->field_key . '[]" id="vfb-'. $field->field_key . '-' . $option . '" value="'. trim( $value ) . '" class="checkbox' . $required . '" />'.
1165
- ' <label for="vfb-' . $field->field_key . '-' . $option . '" class="choice">' . trim( $value ) . '</label></span>';
1166
  }
1167
 
1168
  $output .= '</div>';
@@ -1172,7 +1172,7 @@ class Visual_Form_Builder{
1172
  case 'address':
1173
 
1174
  if ( !empty( $field->field_description ) )
1175
- $output .= '<span><label>' . $field->field_description . '</label></span>';
1176
 
1177
  $countries = array( "Afghanistan", "Albania", "Algeria", "Andorra", "Angola", "Antigua and Barbuda", "Argentina", "Armenia", "Australia", "Austria", "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", "Belize", "Benin", "Bhutan", "Bolivia", "Bosnia and Herzegovina", "Botswana", "Brazil", "Brunei", "Bulgaria", "Burkina Faso", "Burundi", "Cambodia", "Cameroon", "Canada", "Cape Verde", "Central African Republic", "Chad", "Chile", "China", "Colombi", "Comoros", "Congo (Brazzaville)", "Congo", "Costa Rica", "Cote d'Ivoire", "Croatia", "Cuba", "Cyprus", "Czech Republic", "Denmark", "Djibouti", "Dominica", "Dominican Republic", "East Timor (Timor Timur)", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea", "Estonia", "Ethiopia", "Fiji", "Finland", "France", "Gabon", "Gambia, The", "Georgia", "Germany", "Ghana", "Greece", "Grenada", "Guatemala", "Guinea", "Guinea-Bissau", "Guyana", "Haiti", "Honduras", "Hungary", "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", "Italy", "Jamaica", "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Korea, North", "Korea, South", "Kuwait", "Kyrgyzstan", "Laos", "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg", "Macedonia", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands", "Mauritania", "Mauritius", "Mexico", "Micronesia", "Moldova", "Monaco", "Mongolia", "Morocco", "Mozambique", "Myanmar", "Namibia", "Nauru", "Nepa", "Netherlands", "New Zealand", "Nicaragua", "Niger", "Nigeria", "Norway", "Oman", "Pakistan", "Palau", "Panama", "Papua New Guinea", "Paraguay", "Peru", "Philippines", "Poland", "Portugal", "Qatar", "Romania", "Russia", "Rwanda", "Saint Kitts and Nevis", "Saint Lucia", "Saint Vincent", "Samoa", "San Marino", "Sao Tome and Principe", "Saudi Arabia", "Senegal", "Serbia and Montenegro", "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands", "Somalia", "South Africa", "Spain", "Sri Lanka", "Sudan", "Suriname", "Swaziland", "Sweden", "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "Togo", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey", "Turkmenistan", "Tuvalu", "Uganda", "Ukraine", "United Arab Emirates", "United Kingdom", "United States of America", "Uruguay", "Uzbekistan", "Vanuatu", "Vatican City", "Venezuela", "Vietnam", "Yemen", "Zambia", "Zimbabwe" );
1178
  $output .= '<div>
@@ -1218,7 +1218,7 @@ class Visual_Form_Builder{
1218
  case 'date':
1219
 
1220
  if ( !empty( $field->field_description ) )
1221
- $output .= '<span><input type="text" name="vfb-' . esc_html( $field->field_key ) . '" id="vfb-' . esc_html( $field->field_key ) . '" value="" class="text vfb-date-picker ' . $field->field_size . $required . '" /><label>' . $field->field_description . '</label></span>';
1222
  else
1223
  $output .= '<input type="text" name="vfb-' . esc_html( $field->field_key ) . '" id="vfb-' . esc_html( $field->field_key ) . '" value="" class="text vfb-date-picker ' . $field->field_size . $required . '" />';
1224
 
@@ -1226,7 +1226,7 @@ class Visual_Form_Builder{
1226
 
1227
  case 'time' :
1228
  if ( !empty( $field->field_description ) )
1229
- $output .= '<span><label>' . $field->field_description . '</label></span>';
1230
 
1231
  /* Get the time format (12 or 24) */
1232
  $time_format = str_replace( 'time-', '', $validation );
3
  Plugin Name: Visual Form Builder
4
  Description: Dynamically build forms using a simple interface. Forms include jQuery validation, a basic logic-based verification system, and entry tracking.
5
  Author: Matthew Muro
6
+ Version: 1.3.1
7
  */
8
 
9
  /*
27
  /* Restrict Categories class */
28
  class Visual_Form_Builder{
29
 
30
+ public $vfb_db_version = '1.3.1';
31
 
32
  public function __construct(){
33
  global $wpdb;
62
  /* Add a database version to help with upgrades and run SQL install */
63
  if ( !get_option( 'vfb_db_version' ) ) {
64
  update_option( 'vfb_db_version', $this->vfb_db_version );
65
+ $this->install_db();
66
  }
67
 
68
  /* If database version doesn't match, update and run SQL install */
69
  if ( get_option( 'vfb_db_version' ) != $this->vfb_db_version ) {
70
  update_option( 'vfb_db_version', $this->vfb_db_version );
71
+ $this->install_db();
72
  }
73
 
74
  /* Load the jQuery and CSS we need if we're on our plugin page */
210
  $field_sql = "CREATE TABLE $field_table_name (
211
  field_id BIGINT(20) NOT NULL AUTO_INCREMENT,
212
  form_id BIGINT(20) NOT NULL,
213
+ field_key VARCHAR(255) NOT NULL,
214
  field_type VARCHAR(25) NOT NULL,
215
  field_options TEXT,
216
  field_description TEXT,
879
  <?php if ( $field->field_type == 'fieldset' ) : ?>
880
  <p class="description description-wide">
881
  <label for="edit-form-item-name-<?php echo $field->field_id; ?>">Legend<br />
882
+ <input type="text" value="<?php echo stripslashes( $field->field_name ); ?>" name="field_name-<?php echo $field->field_id; ?>" class="widefat" id="edit-form-item-name-<?php echo $field->field_id; ?>" />
883
  </label>
884
  </p>
885
  <?php else: ?>
886
  <p class="description description-wide">
887
  <label for="edit-form-item-name-<?php echo $field->field_id; ?>">
888
  Name<br />
889
+ <input type="text" value="<?php echo stripslashes( $field->field_name ); ?>" name="field_name-<?php echo $field->field_id; ?>" class="widefat" id="edit-form-item-name-<?php echo $field->field_id; ?>" />
890
  </label>
891
  </p>
892
  <p class="description description-wide">
893
  <label for="edit-form-item-description-<?php echo $field->field_id; ?>">
894
  Description<br />
895
+ <input type="text" value="<?php echo stripslashes( $field->field_description ); ?>" name="field_description-<?php echo $field->field_id; ?>" class="widefat" id="edit-form-item-description-<?php echo $field->field_id; ?>" />
896
  </label>
897
  </p>
898
 
910
  ?>
911
  <label for="edit-form-item-options-<?php echo $field->field_id; ?>">
912
  Options (separated by commas)<br />
913
+ <input type="text" value="<?php echo stripslashes( $opts_vals ); ?>" name="field_options-<?php echo $field->field_id; ?>" class="widefat" id="edit-form-item-options-<?php echo $field->field_id; ?>" />
914
  </label>
915
  </p>
916
  <?php
1012
  foreach ( $forms as $form ) {
1013
  /* If text, return output and format the HTML for display */
1014
  if ( 'text' == $form->form_success_type )
1015
+ return stripslashes( html_entity_decode( wp_kses_stripslashes( $form->form_success_message ) ) );
1016
  /* If page, redirect to the permalink */
1017
  elseif ( 'page' == $form->form_success_type ) {
1018
  $page = get_permalink( $form->form_success_message );
1076
  if ( $open_fieldset == true )
1077
  $output .= '</ul><br /></fieldset>';
1078
 
1079
+ $output .= '<fieldset><div class="legend"><h3>' . stripslashes( $field->field_name ) . '</h3></div><ul>';
1080
  $open_fieldset = true;
1081
  }
1082
  else {
1105
  case 'textarea' :
1106
 
1107
  if ( !empty( $field->field_description ) )
1108
+ $output .= '<span><label>' . stripslashes( $field->field_description ) . '</label></span>';
1109
 
1110
  $output .= '<textarea name="vfb-'. $field->field_key . '" id="vfb-'. $field->field_key . '" class="textarea ' . $field->field_size . $required . '"></textarea>';
1111
 
1113
 
1114
  case 'select':
1115
  if ( !empty( $field->field_description ) )
1116
+ $output .= '<span><label>' . stripslashes( $field->field_description ) . '</label></span>';
1117
 
1118
  $output .= '<select name="vfb-'. $field->field_key . '" id="vfb-'. $field->field_key . '" class="select ' . $field->field_size . $required . '">';
1119
 
1131
  case 'radio':
1132
 
1133
  if ( !empty( $field->field_description ) )
1134
+ $output .= '<span><label>' . stripslashes( $field->field_description ) . '</label></span>';
1135
 
1136
  $options = explode( ',', unserialize( $field->field_options ) );
1137
 
1140
  /* Loop through each option and output */
1141
  foreach ( $options as $option => $value ) {
1142
  $output .= '<span>
1143
+ <input type="radio" name="vfb-'. $field->field_key . '" id="vfb-'. $field->field_key . '-' . $option . '" value="'. stripslashes( $value ) . '" class="radio' . $required . '" />'.
1144
+ ' <label for="vfb-' . $field->field_key . '-' . $option . '" class="choice">' . stripslashes( $value ) . '</label>' .
1145
  '</span>';
1146
  }
1147
 
1152
  case 'checkbox':
1153
 
1154
  if ( !empty( $field->field_description ) )
1155
+ $output .= '<span><label>' . stripslashes( $field->field_description ) . '</label></span>';
1156
 
1157
  $options = explode( ',', unserialize( $field->field_options ) );
1158
 
1161
  /* Loop through each option and output */
1162
  foreach ( $options as $option => $value ) {
1163
 
1164
+ $output .= '<span><input type="checkbox" name="vfb-'. $field->field_key . '[]" id="vfb-'. $field->field_key . '-' . $option . '" value="'. trim( stripslashes( $value ) ) . '" class="checkbox' . $required . '" />'.
1165
+ ' <label for="vfb-' . $field->field_key . '-' . $option . '" class="choice">' . trim( stripslashes( $value ) ) . '</label></span>';
1166
  }
1167
 
1168
  $output .= '</div>';
1172
  case 'address':
1173
 
1174
  if ( !empty( $field->field_description ) )
1175
+ $output .= '<span><label>' . stripslashes( $field->field_description ) . '</label></span>';
1176
 
1177
  $countries = array( "Afghanistan", "Albania", "Algeria", "Andorra", "Angola", "Antigua and Barbuda", "Argentina", "Armenia", "Australia", "Austria", "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", "Belize", "Benin", "Bhutan", "Bolivia", "Bosnia and Herzegovina", "Botswana", "Brazil", "Brunei", "Bulgaria", "Burkina Faso", "Burundi", "Cambodia", "Cameroon", "Canada", "Cape Verde", "Central African Republic", "Chad", "Chile", "China", "Colombi", "Comoros", "Congo (Brazzaville)", "Congo", "Costa Rica", "Cote d'Ivoire", "Croatia", "Cuba", "Cyprus", "Czech Republic", "Denmark", "Djibouti", "Dominica", "Dominican Republic", "East Timor (Timor Timur)", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea", "Estonia", "Ethiopia", "Fiji", "Finland", "France", "Gabon", "Gambia, The", "Georgia", "Germany", "Ghana", "Greece", "Grenada", "Guatemala", "Guinea", "Guinea-Bissau", "Guyana", "Haiti", "Honduras", "Hungary", "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", "Italy", "Jamaica", "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Korea, North", "Korea, South", "Kuwait", "Kyrgyzstan", "Laos", "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg", "Macedonia", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands", "Mauritania", "Mauritius", "Mexico", "Micronesia", "Moldova", "Monaco", "Mongolia", "Morocco", "Mozambique", "Myanmar", "Namibia", "Nauru", "Nepa", "Netherlands", "New Zealand", "Nicaragua", "Niger", "Nigeria", "Norway", "Oman", "Pakistan", "Palau", "Panama", "Papua New Guinea", "Paraguay", "Peru", "Philippines", "Poland", "Portugal", "Qatar", "Romania", "Russia", "Rwanda", "Saint Kitts and Nevis", "Saint Lucia", "Saint Vincent", "Samoa", "San Marino", "Sao Tome and Principe", "Saudi Arabia", "Senegal", "Serbia and Montenegro", "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands", "Somalia", "South Africa", "Spain", "Sri Lanka", "Sudan", "Suriname", "Swaziland", "Sweden", "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "Togo", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey", "Turkmenistan", "Tuvalu", "Uganda", "Ukraine", "United Arab Emirates", "United Kingdom", "United States of America", "Uruguay", "Uzbekistan", "Vanuatu", "Vatican City", "Venezuela", "Vietnam", "Yemen", "Zambia", "Zimbabwe" );
1178
  $output .= '<div>
1218
  case 'date':
1219
 
1220
  if ( !empty( $field->field_description ) )
1221
+ $output .= '<span><input type="text" name="vfb-' . esc_html( $field->field_key ) . '" id="vfb-' . esc_html( $field->field_key ) . '" value="" class="text vfb-date-picker ' . $field->field_size . $required . '" /><label>' . stripslashes( $field->field_description ) . '</label></span>';
1222
  else
1223
  $output .= '<input type="text" name="vfb-' . esc_html( $field->field_key ) . '" id="vfb-' . esc_html( $field->field_key ) . '" value="" class="text vfb-date-picker ' . $field->field_size . $required . '" />';
1224
 
1226
 
1227
  case 'time' :
1228
  if ( !empty( $field->field_description ) )
1229
+ $output .= '<span><label>' . stripslashes( $field->field_description ) . '</label></span>';
1230
 
1231
  /* Get the time format (12 or 24) */
1232
  $time_format = str_replace( 'time-', '', $validation );