setting.php 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. <?php
  2. /*
  3. [UCenter] (C)2001-2099 Comsenz Inc.
  4. This is NOT a freeware, use is subject to license terms
  5. $Id: setting.php 1174 2014-11-03 04:38:12Z hypowang $
  6. */
  7. !defined('IN_UC') && exit('Access Denied');
  8. class control extends adminbase {
  9. var $_setting_items = array('doublee', 'accessemail', 'censoremail', 'censorusername',
  10. 'dateformat', 'timeoffset', 'timeformat', 'extra', 'maildefault', 'mailsend', 'mailserver',
  11. 'mailport', 'mailauth', 'mailfrom', 'mailauth_username', 'mailauth_password', 'maildelimiter',
  12. 'mailusername', 'mailsilent', 'pmcenter', 'privatepmthreadlimit', 'chatpmthreadlimit',
  13. 'chatpmmemberlimit', 'pmfloodctrl', 'sendpmseccode', 'pmsendregdays', 'login_failedtime');
  14. function __construct() {
  15. $this->control();
  16. }
  17. function control() {
  18. parent::__construct();
  19. $this->check_priv();
  20. if(!$this->user['isfounder'] && !$this->user['allowadminsetting']) {
  21. $this->message('no_permission_for_this_module');
  22. }
  23. $this->check_priv();
  24. }
  25. function onls() {
  26. $this->load('user');
  27. $updated = false;
  28. if($this->submitcheck()) {
  29. $timeformat = getgpc('timeformat', 'P');
  30. $dateformat = getgpc('dateformat', 'P');
  31. $timeoffset = getgpc('timeoffset', 'P');
  32. $privatepmthreadlimit = getgpc('privatepmthreadlimit', 'P');
  33. $chatpmthreadlimit = getgpc('chatpmthreadlimit', 'P');
  34. $chatpmmemberlimit = getgpc('chatpmmemberlimit', 'P');
  35. $pmfloodctrl = getgpc('pmfloodctrl', 'P');
  36. $pmsendregdays = getgpc('pmsendregdays', 'P');
  37. $pmcenter = getgpc('pmcenter', 'P');
  38. $sendpmseccode = getgpc('sendpmseccode', 'P');
  39. $login_failedtime = getgpc('login_failedtime', 'P');
  40. $dateformat = str_replace(array('yyyy', 'mm', 'dd'), array('y', 'n', 'j'), strtolower($dateformat));
  41. $timeformat = $timeformat == 1 ? 'H:i' : 'h:i A';
  42. $timeoffset = in_array($timeoffset, array('-12', '-11', '-10', '-9', '-8', '-7', '-6', '-5', '-4', '-3.5', '-3', '-2', '-1', '0', '1', '2', '3', '3.5', '4', '4.5', '5', '5.5', '5.75', '6', '6.5', '7', '8', '9', '9.5', '10', '11', '12')) ? $timeoffset : 8;
  43. $this->set_setting('dateformat', $dateformat);
  44. $this->set_setting('timeformat', $timeformat);
  45. $timeoffset = $timeoffset * 3600;
  46. $this->set_setting('timeoffset', $timeoffset);
  47. $this->set_setting('privatepmthreadlimit', intval($privatepmthreadlimit));
  48. $this->set_setting('chatpmthreadlimit', intval($chatpmthreadlimit));
  49. $this->set_setting('chatpmmemberlimit', intval($chatpmmemberlimit));
  50. $this->set_setting('pmfloodctrl', intval($pmfloodctrl));
  51. $this->set_setting('pmsendregdays', intval($pmsendregdays));
  52. $this->set_setting('pmcenter', $pmcenter);
  53. $this->set_setting('sendpmseccode', $sendpmseccode ? 1 : 0);
  54. $this->set_setting('login_failedtime', intval($login_failedtime) > 0 ? intval($login_failedtime) : 0);
  55. $updated = true;
  56. $this->updatecache();
  57. }
  58. $settings = $this->get_setting($this->_setting_items);
  59. if($updated) {
  60. $this->_add_note_for_setting($settings);
  61. }
  62. $settings['dateformat'] = str_replace(array('y', 'n', 'j'), array('yyyy', 'mm', 'dd'), $settings['dateformat']);
  63. $settings['timeformat'] = $settings['timeformat'] == 'H:i' ? 1 : 0;
  64. $settings['pmcenter'] = $settings['pmcenter'] ? 1 : 0;
  65. $a = getgpc('a');
  66. $this->view->assign('a', $a);
  67. $this->view->assign('dateformat', $settings['dateformat']);
  68. $timeformatchecked = array($settings['timeformat'] => 'checked="checked"');
  69. $this->view->assign('timeformat', $timeformatchecked);
  70. $this->view->assign('privatepmthreadlimit', $settings['privatepmthreadlimit']);
  71. $this->view->assign('chatpmthreadlimit', $settings['chatpmthreadlimit']);
  72. $this->view->assign('chatpmmemberlimit', $settings['chatpmmemberlimit']);
  73. $this->view->assign('pmsendregdays', $settings['pmsendregdays']);
  74. $this->view->assign('pmfloodctrl', $settings['pmfloodctrl']);
  75. $pmcenterchecked = array($settings['pmcenter'] => 'checked="checked"');
  76. $pmcenterchecked['display'] = $settings['pmcenter'] ? '' : 'style="display:none"';
  77. $this->view->assign('pmcenter', $pmcenterchecked);
  78. $sendpmseccodechecked = array($settings['sendpmseccode'] => 'checked="checked"');
  79. $this->view->assign('sendpmseccode', $sendpmseccodechecked);
  80. $timeoffset = intval($settings['timeoffset'] / 3600);
  81. $checkarray = array($timeoffset < 0 ? '0'.substr($timeoffset, 1) : $timeoffset => 'selected="selected"');
  82. $this->view->assign('checkarray', $checkarray);
  83. $this->view->assign('updated', $updated);
  84. $this->view->assign('login_failedtime', $settings['login_failedtime']);
  85. $this->view->display('admin_setting');
  86. }
  87. function updatecache() {
  88. $this->load('cache');
  89. $_ENV['cache']->updatedata('settings');
  90. }
  91. function onregister() {
  92. $updated = false;
  93. if($this->submitcheck()) {
  94. $this->set_setting('doublee', getgpc('doublee', 'P'));
  95. $this->set_setting('accessemail', getgpc('accessemail', 'P'));
  96. $this->set_setting('censoremail', getgpc('censoremail', 'P'));
  97. $this->set_setting('censorusername', getgpc('censorusername', 'P'));
  98. $updated = true;
  99. $this->writelog('setting_register_update');
  100. $this->updatecache();
  101. }
  102. $settings = $this->get_setting($this->_setting_items);
  103. if($updated) {
  104. $this->_add_note_for_setting($settings);
  105. }
  106. $this->view->assign('a', getgpc('a'));
  107. $doubleechecked = array($settings['doublee'] => 'checked="checked"');
  108. $this->view->assign('doublee', $doubleechecked);
  109. $this->view->assign('accessemail', $settings['accessemail']);
  110. $this->view->assign('censoremail', $settings['censoremail']);
  111. $this->view->assign('censorusername', $settings['censorusername']);
  112. $this->view->assign('updated', $updated);
  113. $this->view->display('admin_setting');
  114. }
  115. function onmail() {
  116. $items = array('maildefault', 'mailsend', 'mailserver', 'mailport', 'mailauth', 'mailfrom', 'mailauth_username', 'mailauth_password', 'maildelimiter', 'mailusername', 'mailsilent');
  117. if($this->submitcheck()) {
  118. foreach($items as $item) {
  119. $value = getgpc($item, 'P');
  120. $this->set_setting($item, $value);
  121. }
  122. $updated = true;
  123. $this->writelog('setting_mail_update');
  124. $this->updatecache();
  125. }
  126. $settings = $this->get_setting($this->_setting_items);
  127. if($updated) {
  128. $this->_add_note_for_setting($settings);
  129. }
  130. foreach($items as $item) {
  131. $this->view->assign($item, dhtmlspecialchars($settings[$item]));
  132. }
  133. $this->view->assign('updated', $updated);
  134. $this->view->display('admin_setting');
  135. }
  136. function _add_note_for_setting($settings) {
  137. $this->load('note');
  138. $_ENV['note']->add('updateclient', '', $this->serialize($settings, 1));
  139. $_ENV['note']->send();
  140. }
  141. }