PageRenderTime 45ms CodeModel.GetById 16ms RepoModel.GetById 1ms app.codeStats 0ms

/trunk/inc/admin_pref.php

#
PHP | 196 lines | 169 code | 11 blank | 16 comment | 53 complexity | adaf9e4db5d2c2db788bd31f41ae1fdf MD5 | raw file
  1. <?php
  2. /*
  3. eTicket, Open Source Support Ticket System
  4. http://eticket.sourceforge.net/
  5. Released under the GNU General Public License
  6. */
  7. if(!defined('ISINC')) die('serious error');
  8. if ($_SESSION['user']['type'] !== 'admin') { die(LANG_ERROR_DENIED); }
  9. if ($login[$a] || $login['ID'] == ADMIN) {
  10. if ($_POST['submitpref']) {
  11. $sqls=array();
  12. if ($_POST['accept_attachments']) {
  13. if (!(is_writable($config['attachment_dir'])) && (file_exists($config['attachment_dir']))) {
  14. unset($config['accept_attachments']);
  15. $inc = 'pref';
  16. }
  17. }
  18. $_POST['accept_attachments']=isset($_POST['accept_attachments'])?1:0;
  19. $_POST['remove_original']=isset($_POST['remove_original'])?1:0;
  20. $_POST['search_disp']=isset($_POST['search_disp'])?1:0;
  21. $_POST['save_headers']=isset($_POST['save_headers'])?1:0;
  22. //keys for config table
  23. $query=mysql_query("SHOW COLUMNS FROM ".$db_table['config']);
  24. $keys=array();
  25. while ($fields=mysql_fetch_array($query)) {
  26. $keys[]=$fields['Field'];
  27. }
  28. foreach ($keys as $key) {
  29. if (isset($_POST[$key])) $sqls[]="UPDATE ".$db_table['config']." SET ".$key." = ".escape_string($_POST[$key]).";";
  30. }
  31. if (!empty($sqls)) {
  32. if (mysql_error()) { $err[] = LANG_FAILED.': '.mysql_error(); }
  33. foreach ($sqls as $sql) {
  34. if (!mysql_query($sql)) { $err[] = LANG_FAILED.': '.mysql_error()." :<br>\n $sql"; }
  35. }
  36. }
  37. if (empty($err)) { header('Location: '.$_SERVER['REQUEST_URI']); die(); }
  38. }
  39. elseif ($_POST['submitset']) {
  40. $sqls=array();
  41. //normal keys for settings
  42. $query=@mysql_query("SELECT `key` FROM `".$db_table['settings']."` WHERE `group`='' OR `group` IS NULL");
  43. if ($query) {
  44. while ($keys=mysql_fetch_array($query)) {
  45. $key=$keys['key'];
  46. if (isset($_POST[$key])) $sqls[]="UPDATE ".$db_table['settings']." SET VALUE = ".escape_string($_POST[$key])." WHERE `key` = '".$key."' LIMIT 1;";
  47. }
  48. }
  49. if (!empty($sqls)) {
  50. if (mysql_error()) { $err[] = LANG_FAILED.': '.mysql_error(); }
  51. foreach ($sqls as $sql) {
  52. if (!mysql_query($sql)) { $err[] = LANG_FAILED.': '.mysql_error()." :<br>\n $sql"; }
  53. }
  54. }
  55. if (empty($err)) { header('Location: '.$_SERVER['REQUEST_URI']); die(); }
  56. }
  57. elseif ($_POST['remove_filetype'] && $_POST['filetypes']) {
  58. $sql="UPDATE ".$db_table['config']." SET filetypes = REPLACE(filetypes, ".escape_string($_POST['filetypes'].';').", '')";
  59. if (!mysql_query($sql)) { $err[] = LANG_FAILED.': '.mysql_error()." :<br>\n $sql"; }
  60. if (empty($err)) { header('Location: '.$_SERVER['REQUEST_URI']); die(); }
  61. }
  62. elseif ($_POST['add_filetype'] && $_POST['ext']) {
  63. $ext=$_POST['ext'];
  64. if ($ext{0} != '.') { $ext='.'.$ext; }
  65. $sql="UPDATE ".$db_table['config']." SET filetypes = CONCAT(filetypes, '$ext;')";
  66. if (!mysql_query($sql)) { $err[] = LANG_FAILED.': '.mysql_error()." :<br>\n $sql"; }
  67. if (empty($err)) { header('Location: '.$_SERVER['REQUEST_URI']); die(); }
  68. }
  69. elseif ($_POST['answer_add']) {//button submit
  70. $group=escape_string('answers');
  71. $value=escape_string($_POST['answer_value']);
  72. $key=escape_string($_POST['answer_key']);
  73. $sql = "INSERT INTO ".$db_table['settings']." (`group`,`key`,`value`) VALUES (".$group.",".$key.",".$value.");";
  74. if (!mysql_query($sql)) { $err[] = LANG_FAILED.': '.mysql_error()." :<br>\n $sql"; }
  75. $config['answers'][$_POST['answer_key']]=$_POST['answer_value'];
  76. $_POST['answer']=$_POST['answer_key'];
  77. }
  78. elseif ($_POST['answer_save']) {//button submit
  79. $group='answers';
  80. $value=escape_string($_POST['answer_value']);
  81. $key=escape_string($_POST['answer']);
  82. $sql = "UPDATE `".$db_table['settings']."` SET `value` = ".$value." WHERE `key` = ".$key." AND `group` = '".$group."' LIMIT 1;";
  83. if (!mysql_query($sql)) { $err[] = LANG_FAILED.': '.mysql_error()." :<br>\n $sql"; }
  84. $config['answers'][$_POST['answer']]=$_POST['answer_value'];
  85. }
  86. elseif ($_POST['answer_remove']) {//button submit
  87. $group='answers';
  88. $key=escape_string($_POST['answer']);
  89. $sql="DELETE FROM `".$db_table['settings']."` WHERE `key` = ".$key." AND `group` = '".$group."' LIMIT 1";
  90. if (!mysql_query($sql)) { $err[] = LANG_FAILED.': '.mysql_error()." :<br>\n $sql"; }
  91. if (empty($err)) { header('Location: '.$_SERVER['REQUEST_URI']); die(); }
  92. }
  93. elseif ($_POST['pri_save']) {//button submit
  94. $key=(string) escape_string($_POST['pri']);
  95. $group='pri_text';
  96. $value=escape_string($_POST[$group]);
  97. $sql = "UPDATE `".$db_table['settings']."` SET `value` = ".$value." WHERE `key` = ".$key." AND `group` = '".$group."' LIMIT 1;";
  98. if (!mysql_query($sql)) { $err[] = LANG_FAILED.': '.mysql_error()." :<br>\n $sql"; }
  99. $config['pri_text'][(string) $config['pri'][$_POST['pri']]]=stripslashes($_POST['pri_text']);
  100. $group='pri_style';
  101. $value=escape_string($_POST[$group]);
  102. $sql = "UPDATE `".$db_table['settings']."` SET `value` = ".$value." WHERE `key` = ".$key." AND `group` = '".$group."' LIMIT 1;";
  103. if (!mysql_query($sql)) { $err[] = LANG_FAILED.': '.mysql_error()." :<br>\n $sql"; }
  104. $config['pri_style'][(string) $config['pri'][$_POST['pri']]]=stripslashes($_POST['pri_style']);
  105. }
  106. $inc = 'admin_pref.html';
  107. }
  108. /* html start */
  109. //filetypes
  110. $array=explode(';', $config['filetypes']);
  111. $tmp='';
  112. if (!empty($array)) {
  113. foreach ($array as $key => $val) {
  114. if (!empty($val)) {
  115. $tmp.=sprintf($html['option'],$val,'',$val)."\n";
  116. }
  117. }
  118. }
  119. $vars['filetypes']=$tmp;
  120. //timezones
  121. if ($timezones) { $array=$timezones; }
  122. $tmp='';
  123. if (!empty($array)) {
  124. foreach ($array as $key => $val) {
  125. $selected=($config['timezone'] == $key)?' SELECTED':'';
  126. $tmp.=sprintf($html['option'],$key,$selected,$val)."\n";
  127. }
  128. }
  129. $vars['timezones']=$tmp;
  130. //tickets per page
  131. $array=array(5,10,15,20,25,50,100);
  132. $tmp='';
  133. if (!empty($array)) {
  134. foreach ($array as $key => $val) {
  135. $selected=($config['tickets_per_page'] == $val)?' SELECTED': '';
  136. $tmp.=sprintf($html['option'],$val,$selected,$val)."\n";
  137. }
  138. }
  139. $vars['tickets_per_page']=$tmp;
  140. //number of last answered to display
  141. $array=array(5,10,15,20,25,50,100);
  142. $tmp='';
  143. if (!empty($array)) {
  144. foreach ($array as $key => $val) {
  145. $selected=($config['umq'] == $val)?' SELECTED': '';
  146. $tmp.=sprintf($html['option'],$val,$selected,$val)."\n";
  147. }
  148. }
  149. $vars['umq']=$tmp;
  150. //predef_answers
  151. $tmp='';
  152. if ($config['answers']) { $array=$config['answers']; }
  153. if (!empty($array)) {
  154. foreach ($array as $key => $val) {
  155. $selected=($_POST['answer'] == $key) ? ' SELECTED': '';
  156. $key=htmlspecialchars($key);
  157. $tmp.=sprintf($html['option'],$key,$selected,$key)."\n";
  158. }
  159. }
  160. $vars['predef_answers']=$tmp;
  161. //pri text/pri style
  162. $tmp='';
  163. $pri=$config['pri'][(string) $_POST['pri']];
  164. if ($config['pri']) { $array=$config['pri']; }
  165. if (!empty($array)) {
  166. foreach ($array as $key => $val) {
  167. $selected=($pri == $val) ? ' SELECTED': '';
  168. $tmp.=sprintf($html['option'],$key,$selected,$val)."\n";
  169. }
  170. }
  171. $vars['pri']=$tmp;
  172. $vars['pri_text']=$pri?htmlspecialchars($config['pri_text'][$pri]):'';
  173. $vars['pri_style']=$pri?htmlspecialchars($config['pri_style'][$pri]):'';
  174. $array=getdirs($themes_dir);
  175. $tmp='';
  176. if (!empty($array)) {
  177. foreach ($array as $key => $val) {
  178. $selected=($config['theme'] == $val) ? ' SELECTED': '';
  179. $tmp.=sprintf($html['option'],$val,$selected,$val)."\n";
  180. }
  181. }
  182. $vars['themes']=$tmp;
  183. /* html end */
  184. ?>