query($sql); while ($db->next_record()) { $support_settings[$db->f("setting_name")] = $db->f("setting_value"); } $use_random_image = get_setting_value($support_settings, "use_random_image", 0); if (($use_random_image == 2) || ($use_random_image == 1 && !strlen(get_session("session_user_id")))) { $use_validation = true; } else { $use_validation = false; } $t = new VA_Template($settings["templates_dir"]); $t->set_file("main","support.html"); $t->set_var("site_url", $settings["site_url"]); $t->set_var("SUPPORT_TITLE", SUPPORT_TITLE); $t->set_var("MY_ACCOUNT_MSG", MY_ACCOUNT_MSG); $t->set_var("DATABASE_ERROR_MSG", DATABASE_ERROR_MSG); $t->set_var("MY_SUPPORT_ISSUES_MSG", MY_SUPPORT_ISSUES_MSG); $t->set_var("MY_SUPPORT_ISSUES_DESC", MY_SUPPORT_ISSUES_DESC); $t->set_var("NEW_SUPPORT_REQUEST_MSG", NEW_SUPPORT_REQUEST_MSG); $t->set_var("SUPPORT_REQUEST_ADDED_MSG",SUPPORT_REQUEST_ADDED_MSG); $t->set_var("SUPPORT_USER_NAME_FIELD", SUPPORT_USER_NAME_FIELD); $t->set_var("SUPPORT_USER_EMAIL_FIELD", SUPPORT_USER_EMAIL_FIELD); $t->set_var("SUPPORT_IDENTIFIER_FIELD", SUPPORT_IDENTIFIER_FIELD); $t->set_var("SUPPORT_ENVIRONMENT_FIELD",SUPPORT_ENVIRONMENT_FIELD); $t->set_var("SUPPORT_DEPARTMENT_FIELD", SUPPORT_DEPARTMENT_FIELD); $t->set_var("SUPPORT_PRODUCT_FIELD", SUPPORT_PRODUCT_FIELD); $t->set_var("SUPPORT_TYPE_FIELD", SUPPORT_TYPE_FIELD); $t->set_var("SUPPORT_SUMMARY_FIELD", SUPPORT_SUMMARY_FIELD); $t->set_var("SUPPORT_DESCRIPTION_FIELD",SUPPORT_DESCRIPTION_FIELD); $t->set_var("SUPPORT_REQUEST_BUTTON", SUPPORT_REQUEST_BUTTON); $t->set_var("VALIDATION_CODE_FIELD", VALIDATION_CODE_FIELD); $provide_info_message = str_replace("{button_name}", SUPPORT_REQUEST_BUTTON, PROVIDE_INFO_MSG); $t->set_var("PROVIDE_INFO_MSG", $provide_info_message); $t->set_var("ASTERISK_MSG", ASTERISK_MSG); $t->set_var("support_href", "support.php"); $t->set_var("user_home_href", "user_home.php"); $t->set_var("user_support_href", "user_support.php"); $t->set_var("rnd", time()); $r = new VA_Record($table_prefix . "support", "support"); $recommended = array( array(1, "Yes"), array(0, "No") ); $number_of_deps = get_db_value("SELECT COUNT(*) FROM " . $table_prefix . "support_departments WHERE show_for_user=1"); $support_deps = get_db_values("SELECT * FROM " . $table_prefix . "support_departments WHERE show_for_user=1 ", array(array("", SUPPORT_SELECT_DEP_MSG))); $number_of_products = get_db_value("SELECT COUNT(*) FROM " . $table_prefix . "support_products WHERE show_for_user=1"); $support_products = get_db_values("SELECT * FROM " . $table_prefix . "support_products WHERE show_for_user=1", array(array("", SUPPORT_SELECT_PROD_MSG))); $support_types = get_db_values("SELECT * FROM " . $table_prefix . "support_types WHERE show_for_user=1", array(array("", SUPPORT_SELECT_TYPE_MSG))); $r->add_where("support_id", INTEGER); $r->change_property("support_id", USE_IN_INSERT, true); $r->add_textbox("user_id", INTEGER); $r->add_textbox("user_name", TEXT); $r->change_property("user_name", TRIM, true); $r->add_textbox("user_email", TEXT, SUPPORT_USER_EMAIL_FIELD); $r->change_property("user_email", REGEXP_MASK, EMAIL_REGEXP); $r->change_property("user_email", TRIM, true); $r->add_textbox("remote_address", TEXT); $r->add_textbox("identifier", TEXT); $r->add_textbox("environment", TEXT); $r->add_select("dep_id", INTEGER, $support_deps); if ($number_of_deps < 2) { $r->parameters["dep_id"][SHOW] = false; } $r->add_select("support_product_id", INTEGER, $support_products); if ($number_of_products < 2) { $r->parameters["support_product_id"][SHOW] = false; } $r->add_select("support_type_id", INTEGER, $support_types); $r->add_textbox("summary", TEXT); $r->change_property("summary", TRIM, true); $r->add_textbox("description", TEXT); $r->change_property("description", TRIM, true); $r->add_textbox("support_status_id", INTEGER); $r->add_textbox("support_priority_id", INTEGER); $r->add_textbox("admin_id_assign_to", INTEGER); $r->add_textbox("date_added", DATETIME); $r->add_textbox("date_modified", DATETIME); $r->add_textbox("validation_number", TEXT, VALIDATION_CODE_FIELD); $r->change_property("validation_number", USE_IN_INSERT, false); $r->change_property("validation_number", USE_IN_UPDATE, false); $r->change_property("validation_number", USE_IN_SELECT, false); if ($use_validation) { $r->change_property("validation_number", REQUIRED, true); $r->change_property("validation_number", SHOW, true); } else { $r->change_property("validation_number", REQUIRED, false); $r->change_property("validation_number", SHOW, false); } $user_name_class = "normal"; $user_email_class = "normal"; $dep_class = "normal"; $product_class = "normal"; $type_class = "normal"; $summary_class = "normal"; $description_class = "normal"; $validation_class = "normal"; $action = get_param("action"); $rnd = get_param("rnd"); $filter = get_param("filter"); $remote_address = get_ip(); $session_rnd = get_session("session_rnd"); if($action && $rnd != $session_rnd) { set_session("session_rnd", $rnd); $r->get_form_values(); if($number_of_deps == 1) { $sql = " SELECT dep_id FROM " . $table_prefix . "support_departments WHERE show_for_user=1 "; $db->query($sql); if($db->next_record()) { $r->set_value("dep_id", $db->f("dep_id")); } else { $sql = " SELECT dep_id FROM " . $table_prefix . "support_departments "; $db->query($sql); if($db->next_record()) { $r->set_value("dep_id", $db->f("dep_id")); } } } if ($number_of_products == 1) { $sql = " SELECT product_id FROM " . $table_prefix . "support_products WHERE show_for_user=1 "; $db->query($sql); if($db->next_record()) { $r->set_value("support_product_id", $db->f("product_id")); } } else if ($number_of_products == 0) { $r->set_value("support_product_id", 0); } if ($use_validation) { if(!check_image_validation($r->get_value("validation_number"))) { $validation_class = "error"; $fill_error = true; $errors = true; } } if($r->is_empty("user_name")) { $user_name_class = "error"; $errors = true; } if($r->is_empty("user_email")) { $user_email_class = "error"; $errors = true; } if($number_of_deps > 1 && $r->is_empty("dep_id")) { $dep_class = "error"; $errors = true; } if($number_of_products > 1 && $r->is_empty("support_product_id")) { $product_class = "error"; $errors = true; } if($r->is_empty("support_type_id")) { $type_class = "error"; $errors = true; } if($r->is_empty("summary")) { $summary_class = "error"; $errors = true; } if($r->is_empty("description")) { $description_class = "error"; $errors = true; } if ($errors) { $t->parse("fill_error", false); set_session("session_rnd", ""); } else { $r->validate(); if (strlen($r->errors)) { $errors = true; set_session("session_rnd", ""); } } if(!$errors) { $user_id = strlen(get_session("session_user_id")) ? get_session("session_user_id") : 0; $user_email = trim($r->get_value("user_email")); // get status for new message $sql = " SELECT status_id,status_name,status_caption FROM " . $table_prefix . "support_statuses WHERE is_user_new=1 "; $db->query($sql); if($db->next_record()) { $r->set_value("support_status_id", $db->f("status_id")); $status_name = $db->f("status_name"); $status_caption = $db->f("status_caption"); } else { $sql = " SELECT status_id,status_name,status_caption FROM " . $table_prefix . "support_statuses ORDER BY status_id "; $db->query($sql); if($db->next_record()) { $r->set_value("support_status_id", $db->f("status_id")); $status_name = $db->f("status_name"); $status_caption = $db->f("status_caption"); } } // get priority for new message $sql = " SELECT sp.priority_id "; $sql .= " FROM " . $table_prefix . "support_priorities sp, " . $table_prefix . "support_users_priorities sup "; $sql .= " WHERE sp.priority_id=sup.priority_id "; if ($user_id > 0) { $sql .= " AND (user_id=" . $db->tosql($user_id, INTEGER); $sql .= " OR user_email=" . $db->tosql($user_email, TEXT) . ")"; } else { $sql .= " AND user_email=" . $db->tosql($user_email, TEXT); } $db->query($sql); if($db->next_record()) { $priority_id = $db->f("priority_id"); } else { $sql = " SELECT priority_id FROM " . $table_prefix . "support_priorities WHERE is_default=1 "; $db->query($sql); if($db->next_record()) { $priority_id = $db->f("priority_id"); } else { $sql = " SELECT priority_id FROM " . $table_prefix . "support_priorities ORDER BY priority_id "; $priority_id = get_db_value($sql); } } $db->query("SELECT MAX(support_id) FROM " . $table_prefix . "support"); $db->next_record(); $support_id = $db->f(0) + 1; $r->set_value("support_id", $support_id); $date_added = va_time(); $vc = md5($support_id . $date_added[3].$date_added[4].$date_added[5]); $support_url = $settings["site_url"] . "support_messages.php?support_id=" . $support_id . "&vc=" . $vc; $r->set_value("user_id", $user_id); $r->set_value("date_added", $date_added); $r->set_value("date_modified", va_time()); $r->set_value("remote_address", $remote_address); $r->set_value("admin_id_assign_to", 0); $r->set_value("support_priority_id", $priority_id); if($r->insert_record()) { // send email notification to admin if($support_settings["admin_notification"]) { $t->set_block("admin_subject", $support_settings["admin_subject"]); $t->set_block("admin_message", $support_settings["admin_message"]); $r->set_parameters(); $date_added_string = va_date($datetime_show_format, $date_added); $t->set_var("request_added", $date_added_string); $t->set_var("message_added", $date_added_string); $t->set_var("date_added", $date_added_string); $t->set_var("date_modified", $date_added_string); $t->set_var("vc", $vc); $t->set_var("support_url", $support_url); $t->set_var("product", get_array_value($r->get_value("support_product_id"), $support_products)); $t->set_var("type", get_array_value($r->get_value("support_type_id"), $support_types)); $t->set_var("status", $status_name); $t->set_var("status_name", $status_name); $t->set_var("status_caption", $status_caption); $t->set_var("priority", "Normal"); $t->set_var("message_text", $r->get_value("description")); $mail_to = get_setting_value($support_settings, "admin_email", $settings["admin_email"]); $mail_to = str_replace(";", ",", $mail_to); $mail_from = get_setting_value($support_settings, "admin_mail_from", $settings["admin_email"]); $mail_cc = get_setting_value($support_settings, "cc_emails"); $mail_bcc = get_setting_value($support_settings, "admin_mail_bcc"); $mail_reply_to = get_setting_value($support_settings, "admin_mail_reply_to"); $mail_return_path = get_setting_value($support_settings, "admin_mail_return_path"); $mail_type = get_setting_value($support_settings, "admin_message_type"); $email_headers = get_email_headers($mail_from, $mail_cc, $mail_bcc, $mail_reply_to, $mail_return_path, $mail_type); $t->parse("admin_subject", false); $t->parse("admin_message", false); $admin_message = preg_replace("/\r\n|\r|\n/", CRLF, $t->get_var("admin_message")); mail($mail_to, $t->get_var("admin_subject"), $admin_message, $email_headers); } $r->empty_values(); if(strlen(get_session("session_user_id"))) { $r->set_value("user_name", get_session("session_user_name")); $r->set_value("user_email", get_session("session_user_email")); } } else { $errors = true; if (!strlen($r->errors)) { $t->parse("db_error", false); } set_session("session_rnd", ""); } } } else if(strlen(get_session("session_user_id"))) { $r->set_value("user_name", get_session("session_user_name")); $r->set_value("user_email", get_session("session_user_email")); } $t->set_var("user_name_class", $user_name_class); $t->set_var("user_email_class", $user_email_class); $t->set_var("dep_class", $dep_class); $t->set_var("product_class", $product_class); $t->set_var("type_class", $type_class); $t->set_var("summary_class", $summary_class); $t->set_var("description_class", $description_class); $t->set_var("validation_class", $validation_class); $r->set_parameters(); if($errors) { $t->parse("support_errors", false); } if(!$errors && $action) { $t->parse("support_thanks", false); } $intro_text = get_translation(get_setting_value($support_settings, "intro_text", "")); if ($intro_text) { $t->set_var("intro_text", $intro_text); $t->parse("intro_block", false); } if(strlen(get_session("session_user_id"))) { $t->parse("user_links", false); } include("./header.php"); include("./footer.php"); $t->pparse("main"); ?>