⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 modifyticket.php

📁 jsp程序开发系统
💻 PHP
字号:
<?php
// +-------------------------------------------------------------+
// | DeskPRO v [2.0.1 Production]
// | Copyright (C) 2001 - 2004 Headstart Solutions Limited
// | Supplied by WTN-WDYL
// | Nullified by WTN-WDYL
// | Distribution via WebForum, ForumRU and associated file dumps
// +-------------------------------------------------------------+
// | DESKPRO IS NOT FREE SOFTWARE
// +-------------------------------------------------------------+
// | License ID : Full Enterprise License =) ...
// | License Owner : WTN-WDYL Team
// +-------------------------------------------------------------+
// | $RCSfile: modifyticket.php,v $
// | $Date: 2004/02/10 01:34:25 $
// | $Revision: 1.24 $
// +-------------------------------------------------------------+
// | File Details:
// | - Ticket modification handler (fields, etc.)
// +-------------------------------------------------------------+

error_reporting(E_ALL & ~E_NOTICE);
require_once('./global.php');
//Nullify WTN-WDYL Team

$template_cache = templatecache('HF_header,HF_footer,VIEW_edit');

// globalise variables
$global = array	(
			array('ticketref')
);
rg($global);

// default do
$_REQUEST['do'] = trim($_REQUEST['do']);
if (!isset($_REQUEST['do']) or $_REQUEST['do'] == "") {
	$_REQUEST['do'] = "start";
}

check_user();

// check ticket ref
if (!ticketref) {
	error("error_noticket");
}

############################### UPDATE TICKET ###############################

if ($_REQUEST['do'] == "submit") {

	//////////////// categories ////////////////

	if ($settings[category_user_viewable] AND $settings[category_user_editable]) {
	
		$db->query("	SELECT * FROM ticket_cat 
						WHERE user_view
						AND user_select
						ORDER by cat_order
				");

		while ($cat = $db->row_array()) {
			$cats[] = $cat[id];
		}

		// only valid categories
		if (!(in_array($_REQUEST[category], $cats))) {
			unset($_REQUEST[category]);
		}

		// category required
		if ($settings[category_require_selection] AND !$_REQUEST[category]) {
			$stop = 1;
			$error_category = 1;
		}
	}

	//////////////// priorities ////////////////
	
	if (!$settings[priority_disable] AND $settings[priority_user_viewable] AND $settings[priority_user_editable]) {
	
		$db->query("	SELECT * FROM ticket_pri 
						WHERE user_view
						AND user_select
						ORDER by pri_order
				");

		while ($pri = $db->row_array()) {
			$pris[] = $pri[id];
		}

		// only valid priorities
		if (!(in_array($_REQUEST[priority], $pris))) {
			unset($_REQUEST[priority]);
		}

		// priority required
		if ($priority_settings[require_selection] AND !$_REQUEST[priority]) {
			$stop = 1;
			$error_priority = 1;
		}
	}

	//////////////// custom fields ////////////////

	$custom = array();
	$custom_error = array();
	
	$db->query("SELECT * from ticket_def WHERE user_editable");

	$terms = array();

	while ($result = $db->row_array()) {

		$data = field_def_val($result, $_REQUEST[custom_fields][$result[name]], $_REQUEST[custom_fields]["extra" . $result[name]]);

		if ($data === NULL) {

			$tmp = unserialize($result[error_message]);
			$error_message = $tmp[$session[language]];

			// form errors;
			$custom_error[] = array('error' => $error_message);

			// for form design
			$custom_errors[] = $result[name];
	
			$stop = 1;
	
		} else {
			$terms[] = " $result[name] = '" . mysql_escape_string($data) . "' ";
		}
	}

	if ($stop) {
		$_REQUEST['do'] = 'start';
	} else {
		if (count($terms)) {
			$query2 = ', ' . join(', ', $terms);
		}
		$db->query("
			UPDATE ticket 
			SET priority = '" . mysql_escape_string($_REQUEST[priority]) . "',
			category = '" .  mysql_escape_string($_REQUEST[category]) . "'
			$query2
			WHERE ref = '" . mysql_escape_string($ticketref) ."'
		");

		jump("view.php?ticketref=$ticketref", 'redirect_updated_ticket');
	}

}

############################### DISPLAY FORM ###############################

if ($_REQUEST['do'] == "start") {

	$ticket = $db->query_return("
		SELECT ticket.*, ticket_cat.name AS catname, ticket_pri.name AS priname
		FROM ticket
		LEFT JOIN ticket_cat ON (ticket.category = ticket_cat.id)
		LEFT JOIN ticket_pri ON (ticket.priority = ticket_pri.id)
		WHERE	ticket.ref = '" . mysql_escape_string($ticketref) . "' AND
				ticket.userid = '$session[userid]'
	");

	// no ticket
	if (!$db->num_rows()) {
		error("NEW_error_modify");
	}

	// ticket closed
	if ($ticket[is_open] == "0") {
		error("REPLY_error_ticket_closed");
	}

	// categories
	$categories = user_category_array('edit');
	if (is_array($categories)) {
		$category_html = form_select('category', $categories, $ticket['category']);
	}

	// priorities
	$priorities = user_priority_array('edit');
	if (is_array($priorities)) {
		$priority_html = form_select('priority', $priorities, $ticket['priority']);
	}
	
	// get rest of ticket data
	$db->query(
	"SELECT * from ticket_def
	WHERE user_editable
	ORDER by displayorder"
	);

	while ($result = $db->row_array()) {

		unset($name, $description, $error, $html);

		$tmp = unserialize($result[display_name]);
		$name = $tmp[$session[language]];

		$tmp = unserialize($result[description]);
		$description = $tmp[$session[language]];

		if ($stop) {
			$html = field_def($result, 1, $ticket[custom_fields][$result[name]], $ticket[custom_fields]["extra" . $result[name]]);
		} else {
			$html = field_def($result, 'edit', '', '', $ticket[$result[name]]);
		}

		$tmp = unserialize($result[error_message]);
		$error = $tmp[$session[language]];

		// two arrays, one for loop and one to allow custom form design
		$custom[] = array(
			'name' => $name,
			'description' => $description,
			'html' => $html,
			'error' => iff(@in_array($result[name], $custom_errors), $error, '')

		);

		${$result[name]} = array(
			'name' => $name,
			'description' => $description,
			'html' => $html,
			'error' => iff(@in_array($result[name], $custom_errors), $error, '')
		);
	
	}

	eval(makeeval('header', 'HF_header'));
	eval(makeeval('footer', 'HF_footer'));
	eval(makeeval('echo', 'VIEW_edit'));

}
?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -