control(); } function control() { parent::__construct(); $this->check_priv(); if(!$this->user['isfounder'] && !$this->user['allowadminsetting']) { $this->message('no_permission_for_this_module'); } $this->check_priv(); } function onls() { $this->load('user'); $updated = false; if($this->submitcheck()) { $timeformat = getgpc('timeformat', 'P'); $dateformat = getgpc('dateformat', 'P'); $timeoffset = getgpc('timeoffset', 'P'); $privatepmthreadlimit = getgpc('privatepmthreadlimit', 'P'); $chatpmthreadlimit = getgpc('chatpmthreadlimit', 'P'); $chatpmmemberlimit = getgpc('chatpmmemberlimit', 'P'); $pmfloodctrl = getgpc('pmfloodctrl', 'P'); $pmsendregdays = getgpc('pmsendregdays', 'P'); $pmcenter = getgpc('pmcenter', 'P'); $sendpmseccode = getgpc('sendpmseccode', 'P'); $login_failedtime = getgpc('login_failedtime', 'P'); $dateformat = str_replace(array('yyyy', 'mm', 'dd'), array('y', 'n', 'j'), strtolower($dateformat)); $timeformat = $timeformat == 1 ? 'H:i' : 'h:i A'; $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; $this->set_setting('dateformat', $dateformat); $this->set_setting('timeformat', $timeformat); $timeoffset = $timeoffset * 3600; $this->set_setting('timeoffset', $timeoffset); $this->set_setting('privatepmthreadlimit', intval($privatepmthreadlimit)); $this->set_setting('chatpmthreadlimit', intval($chatpmthreadlimit)); $this->set_setting('chatpmmemberlimit', intval($chatpmmemberlimit)); $this->set_setting('pmfloodctrl', intval($pmfloodctrl)); $this->set_setting('pmsendregdays', intval($pmsendregdays)); $this->set_setting('pmcenter', $pmcenter); $this->set_setting('sendpmseccode', $sendpmseccode ? 1 : 0); $this->set_setting('login_failedtime', intval($login_failedtime) > 0 ? intval($login_failedtime) : 0); $updated = true; $this->updatecache(); } $settings = $this->get_setting($this->_setting_items); if($updated) { $this->_add_note_for_setting($settings); } $settings['dateformat'] = str_replace(array('y', 'n', 'j'), array('yyyy', 'mm', 'dd'), $settings['dateformat']); $settings['timeformat'] = $settings['timeformat'] == 'H:i' ? 1 : 0; $settings['pmcenter'] = $settings['pmcenter'] ? 1 : 0; $a = getgpc('a'); $this->view->assign('a', $a); $this->view->assign('dateformat', $settings['dateformat']); $timeformatchecked = array($settings['timeformat'] => 'checked="checked"'); $this->view->assign('timeformat', $timeformatchecked); $this->view->assign('privatepmthreadlimit', $settings['privatepmthreadlimit']); $this->view->assign('chatpmthreadlimit', $settings['chatpmthreadlimit']); $this->view->assign('chatpmmemberlimit', $settings['chatpmmemberlimit']); $this->view->assign('pmsendregdays', $settings['pmsendregdays']); $this->view->assign('pmfloodctrl', $settings['pmfloodctrl']); $pmcenterchecked = array($settings['pmcenter'] => 'checked="checked"'); $pmcenterchecked['display'] = $settings['pmcenter'] ? '' : 'style="display:none"'; $this->view->assign('pmcenter', $pmcenterchecked); $sendpmseccodechecked = array($settings['sendpmseccode'] => 'checked="checked"'); $this->view->assign('sendpmseccode', $sendpmseccodechecked); $timeoffset = intval($settings['timeoffset'] / 3600); $checkarray = array($timeoffset < 0 ? '0'.substr($timeoffset, 1) : $timeoffset => 'selected="selected"'); $this->view->assign('checkarray', $checkarray); $this->view->assign('updated', $updated); $this->view->assign('login_failedtime', $settings['login_failedtime']); $this->view->display('admin_setting'); } function updatecache() { $this->load('cache'); $_ENV['cache']->updatedata('settings'); } function onregister() { $updated = false; if($this->submitcheck()) { $this->set_setting('doublee', getgpc('doublee', 'P')); $this->set_setting('accessemail', getgpc('accessemail', 'P')); $this->set_setting('censoremail', getgpc('censoremail', 'P')); $this->set_setting('censorusername', getgpc('censorusername', 'P')); $updated = true; $this->writelog('setting_register_update'); $this->updatecache(); } $settings = $this->get_setting($this->_setting_items); if($updated) { $this->_add_note_for_setting($settings); } $this->view->assign('a', getgpc('a')); $doubleechecked = array($settings['doublee'] => 'checked="checked"'); $this->view->assign('doublee', $doubleechecked); $this->view->assign('accessemail', $settings['accessemail']); $this->view->assign('censoremail', $settings['censoremail']); $this->view->assign('censorusername', $settings['censorusername']); $this->view->assign('updated', $updated); $this->view->display('admin_setting'); } function onmail() { $items = array('maildefault', 'mailsend', 'mailserver', 'mailport', 'mailauth', 'mailfrom', 'mailauth_username', 'mailauth_password', 'maildelimiter', 'mailusername', 'mailsilent'); if($this->submitcheck()) { foreach($items as $item) { $value = getgpc($item, 'P'); $this->set_setting($item, $value); } $updated = true; $this->writelog('setting_mail_update'); $this->updatecache(); } $settings = $this->get_setting($this->_setting_items); if($updated) { $this->_add_note_for_setting($settings); } foreach($items as $item) { $this->view->assign($item, dhtmlspecialchars($settings[$item])); } $this->view->assign('updated', $updated); $this->view->display('admin_setting'); } function _add_note_for_setting($settings) { $this->load('note'); $_ENV['note']->add('updateclient', '', $this->serialize($settings, 1)); $_ENV['note']->send(); } }