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