setting.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. defined('IN_PHPCMS') or exit('No permission resources.');
  3. pc_base::load_app_class('admin','admin',0);
  4. class setting extends admin {
  5. private $db;
  6. function __construct() {
  7. parent::__construct();
  8. $this->db = pc_base::load_model('module_model');
  9. pc_base::load_app_func('global');
  10. }
  11. /**
  12. * 配置信息
  13. */
  14. public function init() {
  15. $show_validator = true;
  16. $setconfig = pc_base::load_config('system');
  17. extract($setconfig);
  18. if(!function_exists('ob_gzhandler')) $gzip = 0;
  19. $info = $this->db->get_one(array('module'=>'admin'));
  20. extract(string2array($info['setting']));
  21. $show_header = true;
  22. $show_validator = 1;
  23. include $this->admin_tpl('setting');
  24. }
  25. /**
  26. * 保存配置信息
  27. */
  28. public function save() {
  29. $setting = array();
  30. $setting['admin_email'] = is_email($_POST['setting']['admin_email']) ? trim($_POST['setting']['admin_email']) : showmessage(L('email_illegal'),HTTP_REFERER);
  31. $setting['maxloginfailedtimes'] = intval($_POST['setting']['maxloginfailedtimes']);
  32. $setting['minrefreshtime'] = intval($_POST['setting']['minrefreshtime']);
  33. $setting['mail_type'] = intval($_POST['setting']['mail_type']);
  34. $setting['mail_server'] = trim($_POST['setting']['mail_server']);
  35. $setting['mail_port'] = intval($_POST['setting']['mail_port']);
  36. $setting['category_ajax'] = intval(abs($_POST['setting']['category_ajax']));
  37. $setting['mail_user'] = trim($_POST['setting']['mail_user']);
  38. $setting['mail_auth'] = intval($_POST['setting']['mail_auth']);
  39. $setting['mail_from'] = trim($_POST['setting']['mail_from']);
  40. $setting['mail_password'] = trim($_POST['setting']['mail_password']);
  41. $setting['errorlog_size'] = trim($_POST['setting']['errorlog_size']);
  42. $setting = array2string($setting);
  43. $this->db->update(array('setting'=>$setting), array('module'=>'admin')); //存入admin模块setting字段
  44. //如果开始盛大通行证接入,判断服务器是否支持curl
  45. $snda_error = '';
  46. if($_POST['setconfig']['snda_akey'] || $_POST['setconfig']['snda_skey']) {
  47. if(function_exists('curl_init') == FALSE) {
  48. $snda_error = L('snda_need_curl_init');
  49. $_POST['setconfig']['snda_enable'] = 0;
  50. }
  51. }
  52. set_config($_POST['setconfig']); //保存进config文件
  53. $this->setcache();
  54. showmessage(L('setting_succ').$snda_error, HTTP_REFERER);
  55. }
  56. /*
  57. * 测试邮件配置
  58. */
  59. public function public_test_mail() {
  60. pc_base::load_sys_func('mail');
  61. $subject = 'phpcms test mail';
  62. $message = 'this is a test mail from phpcms team';
  63. $mail= Array (
  64. 'mailsend' => 2,
  65. 'maildelimiter' => 1,
  66. 'mailusername' => 1,
  67. 'server' => $_POST['mail_server'],
  68. 'port' => intval($_POST['mail_port']),
  69. 'mail_type' => intval($_POST['mail_type']),
  70. 'auth' => intval($_POST['mail_auth']),
  71. 'from' => $_POST['mail_from'],
  72. 'auth_username' => $_POST['mail_user'],
  73. 'auth_password' => $_POST['mail_password']
  74. );
  75. if(sendmail($_GET['mail_to'],$subject,$message,$_POST['mail_from'],$mail)) {
  76. echo L('test_email_succ').$_GET['mail_to'];
  77. } else {
  78. echo L('test_email_faild');
  79. }
  80. }
  81. /**
  82. * 设置缓存
  83. * Enter description here ...
  84. */
  85. private function setcache() {
  86. $result = $this->db->get_one(array('module'=>'admin'));
  87. $setting = string2array($result['setting']);
  88. setcache('common', $setting,'commons');
  89. }
  90. }
  91. ?>