priority.php
上传用户:gzy2002
上传日期:2010-02-11
资源大小:1785k
文件大小:11k
源码类别:

电子政务应用

开发平台:

Java

  1. <?php
  2. // +-------------------------------------------------------------+
  3. // | DeskPRO v [2.0.1 Production]
  4. // | Copyright (C) 2001 - 2004 Headstart Solutions Limited
  5. // | Supplied by WTN-WDYL
  6. // | Nullified by WTN-WDYL
  7. // | Distribution via WebForum, ForumRU and associated file dumps
  8. // +-------------------------------------------------------------+
  9. // | DESKPRO IS NOT FREE SOFTWARE
  10. // +-------------------------------------------------------------+
  11. // | License ID : Full Enterprise License =) ...
  12. // | License Owner : WTN-WDYL Team
  13. // +-------------------------------------------------------------+
  14. // | $RCSfile: priority.php,v $
  15. // | $Date: 2004/02/10 01:34:25 $
  16. // | $Revision: 1.30 $
  17. // +-------------------------------------------------------------+
  18. // | File Details:
  19. // | - Priorities maintenance (administration interface)
  20. // +-------------------------------------------------------------+
  21. error_reporting(E_ALL & ~E_NOTICE);
  22. require_once('./global.php');
  23. //Nullify WTN-WDYL Team
  24. // default do
  25. $_REQUEST['do'] = trim($_REQUEST['do']);
  26. if (!isset($_REQUEST['do']) or $_REQUEST['do'] == "") {
  27. $_REQUEST['do'] = "view";
  28. }
  29. // globalise variables
  30. $global = array (
  31. array('id', 'number')
  32. );
  33. rg($global);
  34. language_check();
  35. ############################### PRIORITY SETTINGS ###############################
  36. if ($_REQUEST['do'] == "settings") {
  37. admin_header('Priorities', 'Priority Settings');
  38. include('./settings_include.php');
  39. show_settings('priority.php', 'Priority Settings');
  40. }
  41. ############################### UPDATE PRIORITY SETTINGS ###############################
  42. if ($_REQUEST['do'] == "update") {
  43. include('./settings_include.php');
  44. update_settings();
  45. jump("priority.php?do=settings", 'Settings updated');
  46. }
  47. ############################### ORDER PRIORITY ###############################
  48. if ($_REQUEST['do'] == "pri_orders") {
  49. while (list ($key, $val) = each ($_REQUEST['order'])) {
  50. $key = mysql_escape_string($key);
  51. $val = mysql_escape_string($val);
  52. $db->query("UPDATE ticket_pri SET pri_order = '$val' WHERE id = '$key'");
  53. }
  54. jump("priority.php?do=view", 'Orders updated');
  55. }
  56. ############################### DELETE PRIORITY ###############################
  57. if ($_REQUEST['do'] == "delete") {
  58. admin_header('Priorities', 'Delete Priority');
  59. $db->query("SELECT * from ticket_pri WHERE id != '$id'");
  60. while ($pri = $db->row_array()) {
  61. $priority[$pri[id]] = $pri[name];
  62. }
  63. $db->query("SELECT * from ticket_pri WHERE id = '$id'");
  64. $result = $db->row_array();
  65. $name = $result[name];
  66. $bit = form_select('priority', $priority);
  67. $table = array('<b>Choose a new priority</b><br />You must select a priority to move the tickets with their current priority set as "' . $name . '"', $bit);
  68. table_header("Delete priority $name", 'priority.php', array('do' => 'delete2', 'id' => $id));
  69. table_content('', $table);
  70. table_footer('Delete priority');
  71. }
  72. ############################### DELETE (2) PRIORITY ###############################
  73. if ($_REQUEST['do'] == "delete2") { // update tickets to new priority and add entry into the ticketlog
  74. $db->query("SELECT id FROM ticket WHERE priority = " . intval($id) . "");
  75. while ($result = $db->row_array()) {
  76. $ticket_log[] = array($result[id], 'priority', intval($id), $_REQUEST[priority]);
  77. }
  78. ticketlog_array($ticket_log);
  79. $db->query("UPDATE ticket SET priority = '" . mysql_escape_string($_REQUEST['priority'])."' WHERE priority = " . intval($id));
  80. $db->query("DELETE from ticket_pri WHERE id='$id'");
  81. // delete langauage bits
  82. $priority_languages = unserialize(get_data('priority_languages'));
  83. if (is_array($priority_languages)) {
  84. foreach ($priority_languages AS $key => $var) {
  85. unset($priority_languages[$key][$id]);
  86. }
  87. }
  88. update_data('priority_languages', serialize($priority_languages));
  89. jump('priority.php?do=view', 'Priority deleted');
  90. }
  91. ############################### EDIT PRIORITY ###############################
  92. if (($_REQUEST['do'] == "edit") OR ($_REQUEST['do'] == "add")) {
  93. if ($_REQUEST['do'] == 'add') {
  94. admin_header('Priorities', 'Add Priority');
  95. // lets give some sensible defaults
  96. $priority[user_view] = 1;
  97. $priority[user_select] = 1;
  98. } else {
  99. admin_header('Priorities', 'Edit Priority');
  100. }
  101. $db->query("SELECT * from ticket_pri WHERE id != '$id' AND user_view = 1");
  102. while ($pri = $db->row_array()) {
  103. $priority2[$pri[id]] = $pri[name];
  104. }
  105. if ($_REQUEST['do'] == "edit") {
  106. $db->query("SELECT * from ticket_pri WHERE id = '$id'");
  107. $priority = $db->row_array();
  108. }
  109. $db->query("SELECT id, username FROM tech ORDER BY username");
  110. $techs[0] = 'Leave Unassigned';
  111. while ($tech = $db->row_array()) {
  112. $techs[$tech[id]] = $tech[username];
  113. }
  114. $bit = form_input('priority', $priority[name]);
  115. $table[] = array('<b>Priority name</b><br />The name for your priority', $bit);
  116. $bit = form_input('pri_order', $priority[pri_order], 5);
  117. $table[] = array('<b>Priority order</b><br />The display order of your priority (1 = high)', $bit);
  118. // there need to be other priorities to enable this
  119. if (is_array($priority2)) {
  120. $bit = form_radio_yn('user_view', '', $priority[user_view]);
  121. $table[] = array('<b>User viewable</b><br />Can the user view the priority? If not, you must select a priority to be displayed to the user instead', $bit);
  122. $bit = form_select('show_priority', $priority2, '', $priority[show_priority]);
  123. $table[] = array('<b>User display priority</b><br />If you are hiding the real priority choice from the user you should select a priority to display to the user instead', $bit);
  124. } else {
  125. $extra = form_hidden('user_view', 1);
  126. }
  127. $bit = form_radio_yn('user_select', '', $priority[user_select]);
  128. $table[] = array('<b>User selectable</b><br />Can the user select this priority when creating or editing tickets? This is different from user viewable because you may wish to have a priority that only techs can assign to tickets but when they do assign that priority to a ticket, the user can see this assignment.', $bit);
  129. $bit = form_radio_yn('require_registration', '', $priority[require_registration]);     
  130. $table[] = array('<b>Require registration</b><br />Will this priority only accept tickets from registered users?', $bit . $extra);
  131. unset($extra);
  132. $bit = form_select('auto_assign_tech', $techs, '', $priority[auto_assign_tech]);
  133. $table[] = array('<b>Assign to tech</b><br />If you select a tech here, new tickets in this priority will automatically be assigned to that tecb', $bit);
  134. // languages for priorities
  135. if ($settings['language_on']) {
  136. $priority_languages = unserialize(get_data('priority_languages'));
  137. $table[] = table_midheader('Language Options');
  138. $name = "<table cellpadding="2" cellspacing="0">";
  139. $db->query(" SELECT * FROM languages 
  140. WHERE id != '$settings[default_language]'
  141. ");
  142. while ($lang = $db->row_array()) {
  143. $name .= "<tr><td><b>$lang[name]</b>:</td><td>" . form_input($lang[id], $priority_languages[$lang[id]][$id]['name'], 30, 'language_name') . "</td></tr>";
  144. }
  145. $name .= "</table>";
  146. $table[] = array('<b>Priority name</b><br />The name for the priority in other languages.', $name);
  147. }
  148. $width = array('60%', '40%');
  149. if ($_REQUEST['do'] == "edit") {
  150. table_header('Edit Priority ' . $priority[name],'priority.php', array('do' => 'edit2', 'id' => $id));
  151. table_content('', $table, '', '', '', '', $width);
  152. table_footer('Edit Priority');
  153. } else {
  154. table_header('Create Priority', 'priority.php', array('do' => 'add2'));
  155. table_content('', $table, '', '', '', '', $width);
  156. table_footer('Create Priority');
  157. }
  158. }
  159. ############################### EDIT (2) PRIORITY ###############################
  160. if ($_REQUEST['do'] == "edit2") {
  161. $db->query("UPDATE ticket_pri SET
  162. name = '".mysql_escape_string($_REQUEST[priority])."',
  163. show_priority = " . intval($_REQUEST[show_priority]) . ",
  164. pri_order = '$_REQUEST[pri_order]',
  165. user_view = '$_REQUEST[user_view]',
  166. user_select = '$_REQUEST[user_select]',
  167. require_registration = '$_REQUEST[require_registration]',
  168. auto_assign_tech = '$_REQUEST[auto_assign_tech]'
  169. WHERE id = '$id'
  170. ");
  171. // language options for priority
  172. if ($settings['language_on']) {
  173. $priority_languages = unserialize(get_data('priority_languages'));
  174. if (is_array($_REQUEST['language_name'])) {
  175. foreach ($_REQUEST['language_name'] AS $key => $var) {
  176. $priority_languages[$key][$id] = array('name' => $var);
  177. }
  178. }
  179. update_data('priority_languages', serialize($priority_languages));
  180. }
  181. jump('priority.php?do=view', 'Priority updated');
  182. }
  183. ############################### ADD (2) PRIORITY ###############################
  184. if ($_REQUEST['do'] == "add2") {
  185. $db->query("INSERT into ticket_pri SET
  186. name = '" . mysql_escape_string($_REQUEST['priority']) . "',
  187. show_priority = " . intval($_REQUEST['show_priority']) . ",
  188. pri_order = '$_REQUEST[pri_order]',
  189. user_view = '$_REQUEST[user_view]',
  190. user_select = '$_REQUEST[user_select]',
  191. require_registration = '$_REQUEST[require_registration]',
  192. auto_assign_tech = '$_REQUEST[auto_assign_tech]'
  193. ");
  194. // language options fo priority
  195. if ($settings['language_on']) {
  196. $priority_languages = unserialize(get_data('priority_languages'));
  197. if (is_array($_REQUEST['language_name'])) {
  198. foreach ($_REQUEST['language_name'] AS $key => $var) {
  199. $priority_languages[$key][$id] = array('name' => $var);
  200. }
  201. }
  202. update_data('priority_languages', serialize($priority_languages));
  203. }
  204. jump('priority.php?do=view', 'New priority created');
  205. }
  206. ############################### VIEW PRIORITY ###############################
  207. if ($_REQUEST['do'] == "view") {
  208. admin_header('Priorities', 'View Priorities');
  209. $db->query("SELECT id, username FROM tech ORDER BY username");
  210. $techs[0] = 'Leave Unassigned';
  211. while ($tech = $db->row_array()) {
  212. $techs[$tech['id']] = $tech['username'];
  213. }
  214. $db->query("SELECT * from ticket_pri ORDER by pri_order");
  215. while ($priority = $db->row_array()) {
  216. $table[] = array(
  217. form_input($priority[id], $priority[pri_order], '4', 'order'),
  218. "<B>$priority[name]</b>",
  219. ifynb($priority['user_view']),
  220. ifynb($priority['user_select']),
  221. ifynb($priority['require_registration']),
  222. $techs[$priority['auto_assign_tech']],
  223. "<a href="priority.php?do=delete&id=$priority[id]">delete</a>",
  224. "<a href="priority.php?do=edit&id=$priority[id]">edit</a>"
  225. );
  226. }
  227. $cols = array('Order', 'Name', 'User Viewable', 'User Selectable', 'Registration Required', 'Assign to Technician', 'Delete', 'Edit');
  228. table_header('Priorities', 'priority.php', array('do' => 'pri_orders'));
  229. table_content($cols, $table);
  230. table_footer('Update Priority Orders');
  231. unset($table);
  232. echo "<P><center><font face="verdana, arial, helvetica" size="2"><a href="priority.php?do=add">Add New Priority</a></font></center>";
  233. }
  234. ##############################################################
  235. admin_footer();
  236. ?>