From 267afc8c21b4ae1083c9ef07d83ddd516613c9ec Mon Sep 17 00:00:00 2001 From: Mike Koch Date: Wed, 16 Nov 2016 13:21:26 -0500 Subject: [PATCH] Add validation to edit post --- admin/edit_post.php | 255 ++++++++++++++++++++++++++++---------------- 1 file changed, 161 insertions(+), 94 deletions(-) diff --git a/admin/edit_post.php b/admin/edit_post.php index a3b7b202..779c8400 100644 --- a/admin/edit_post.php +++ b/admin/edit_post.php @@ -31,6 +31,7 @@ define('IN_SCRIPT', 1); define('HESK_PATH', '../'); define('WYSIWYG', 1); +define('VALIDATOR', 1); /* Get all the required files and functions */ require(HESK_PATH . 'hesk_settings.inc.php'); @@ -149,12 +150,20 @@ if (isset($_POST['save'])) { // Custom fields foreach ($hesk_settings['custom_fields'] as $k=>$v) { if ($v['use'] && hesk_is_custom_field_in_category($k, $ticket['category'])) { + if ($v['req'] == 2) { + $v['req'] = '*'; + $required_attribute = 'data-error="' . $hesklang['this_field_is_required'] . '" required'; + } else { + $v['req'] = ''; + $required_attribute = ''; + } + if ($v['type'] == 'checkbox') { $tmpvar[$k]=''; if (isset($_POST[$k]) && is_array($_POST[$k])) { foreach ($_POST[$k] as $myCB) { - $tmpvar[$k] .= ( is_array($myCB) ? '' : hesk_input($myCB) ) . '
';; + $tmpvar[$k] .= ( is_array($myCB) ? '' : hesk_input($myCB) ) . '
'; } $tmpvar[$k]=substr($tmpvar[$k],0,-6); } else { @@ -280,14 +289,21 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
-
+ + >
- +
'; } ?>
- + *'; + $required_attribute = 'data-error="' . $hesklang['this_field_is_required'] . '" required'; + } + ?> +
- +
+ placeholder="" + data-error="" + required>
- + *'; + $required_attribute = 'data-error="' . $hesklang['this_field_is_required'] . '" required'; + } + ?> +
+ placeholder="" + > +
$v) { - if ($v['use'] && hesk_is_custom_field_in_category($k, $ticket['category']) ) { - $k_value = $ticket[$k]; + foreach ($hesk_settings['custom_fields'] as $k => $v) { + if ($v['use'] && hesk_is_custom_field_in_category($k, $ticket['category'])) { + $k_value = $ticket[$k]; if ($v['type'] == 'checkbox') { - $k_value = explode('
',$k_value); + $k_value = explode('
', $k_value); } - $v['req'] = $v['req']==2 ? '*' : ''; + if ($v['req'] == 2) { + $v['req'] = '*'; + $required_attribute = 'data-error="' . $hesklang['this_field_is_required'] . '" required'; + } else { + $v['req'] = ''; + $required_attribute = ''; + } switch ($v['type']) { /* Radio box */ case 'radio': - $cls = in_array($k,$_SESSION['iserror']) ? ' isError' : ''; + $cls = in_array($k, $_SESSION['iserror']) ? ' isError' : ''; echo ' -
- +
+
'; - foreach ($v['value']['radio_options'] as $option) { - if (strlen($k_value) == 0) { - $k_value = $option; - $checked = empty($v['value']['no_default']) ? 'checked="checked"' : ''; - } elseif ($k_value == $option) { - $k_value = $option; - $checked = 'checked="checked"'; - } else { - $checked = ''; - } - - echo '
'; - } - echo '
+ foreach ($v['value']['radio_options'] as $option) { + if (strlen($k_value) == 0) { + $k_value = $option; + $checked = empty($v['value']['no_default']) ? 'checked="checked"' : ''; + } elseif ($k_value == $option) { + $k_value = $option; + $checked = 'checked="checked"'; + } else { + $checked = ''; + } + + echo '
'; + } + echo '
'; break; @@ -365,96 +411,105 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php'); /* Select drop-down box */ case 'select': - $cls = in_array($k,$_SESSION['iserror']) ? ' isError' : ''; + $cls = in_array($k, $_SESSION['iserror']) ? ' isError' : ''; echo '
- +
- '; + // Show "Click to select"? + if (!empty($v['value']['show_select'])) { + echo ''; } - echo ''; - } + foreach ($v['value']['select_options'] as $option) { + if ($k_value == $option) { + $k_value = $option; + $selected = 'selected'; + } else { + $selected = ''; + } - echo ' + echo ''; + } + + echo ' +
'; break; /* Checkbox */ case 'checkbox': - $cls = in_array($k,$_SESSION['iserror']) ? ' isError' : ''; + $cls = in_array($k, $_SESSION['iserror']) ? ' isError' : ''; echo ' -
- +
+
'; - foreach ($v['value']['checkbox_options'] as $option) { - if (in_array($option,$k_value)) { - $checked = 'checked'; - } else { - $checked = ''; - } - - echo '
'; - } - echo '
+ foreach ($v['value']['checkbox_options'] as $option) { + if (in_array($option, $k_value)) { + $checked = 'checked'; + } else { + $checked = ''; + } + + echo '
'; + } + echo '
+
'; break; /* Large text box */ case 'textarea': - $cls = in_array($k,$_SESSION['iserror']) ? ' isError' : ''; - $k_value = hesk_msgToPlain($k_value,0,0); + $cls = in_array($k, $_SESSION['iserror']) ? ' isError' : ''; + $k_value = hesk_msgToPlain($k_value, 0, 0); echo ' -
- +
+
- + +
'; break; // Date case 'date': - $cls = in_array($k,$_SESSION['iserror']) ? ' isError' : ''; + if ($required_attribute !== '') { + $required_attribute .= ' pattern="[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])"'; + } + + $cls = in_array($k, $_SESSION['iserror']) ? ' isError' : ''; $k_value = hesk_custom_date_display_format($k_value, 'Y-m-d'); echo ' -
- +
+
- + +
'; break; // Email case 'email': - $cls = in_array($k,$_SESSION['iserror']) ? ' class="isError" ' : ''; + $cls = in_array($k, $_SESSION['iserror']) ? ' class="isError" ' : ''; - $suggest = $hesk_settings['detect_typos'] ? 'onblur="Javascript:hesk_suggestEmail(\''.$k.'\', \''.$k.'_suggestions\', 0, 1'.($v['value']['multiple'] ? ',1' : '').')"' : ''; + $suggest = $hesk_settings['detect_typos'] ? 'onblur="Javascript:hesk_suggestEmail(\'' . $k . '\', \'' . $k . '_suggestions\', 0, 1' . ($v['value']['multiple'] ? ',1' : '') . ')"' : ''; echo ' -
- +
+
- + +
-
+
'; break; @@ -467,37 +522,46 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php'); $v['value']['default_value'] = $k_value; } - $cls = in_array($k,$_SESSION['iserror']) ? ' isError' : ''; + $cls = in_array($k, $_SESSION['iserror']) ? ' isError' : ''; echo ' -
- +
+
- + +
'; } } } - ?> + } ?> +
+ *'; + $required_attribute = 'data-error="' . $hesklang['this_field_is_required'] . '" required'; + } - -
- + ?> + -
- - -
-
+
+ + +
+
+
- + +
+