fetch_all(null); $checkLanguage = checkLanguage(); //基本设置 if ($operation == 'basic') { $serverspace = C::t('local_storage')->fetch_all_orderby_disp(); if (!submitcheck('settingsubmit')) { $navtitle = lang('members_verify_base'); $spacesize = DB::result_first("select maxspacesize from " . DB::table('usergroup_field') . " where groupid='9'"); include_once libfile('function/organization'); if ($setting['defaultdepartment']) { $patharr = getPathByOrgid($setting['defaultdepartment']); $defaultdepartment = implode(' - ', ($patharr)); } if (empty($defaultdepartment)) { $defaultdepartment = lang('no_join_agency_department'); $setting['defaultdepartment'] = 'other'; } $setting['defaultsettingid'] = $setting['defaultspacesetting']['remoteid']; $applist = DB::fetch_all("select appname,identifier from %t where isshow>0 and `available`>0 and position>0 and app_path='dzz' ORDER BY disp", array('app_market')); $params = array(); $vapps = Hook::listen('vapplist', $params, null, true); foreach ($vapps as $key => $value) { $params = array('name' => 'vapp/' . $value['identifier'], 'perm' => 1, 'return_type' => 'bool'); if (Hook::listen('rolecheck', $params, null, true) === false) continue; $applist[] = array('appname' => $value['appname'], 'identifier' => 'vapp_' . $value['identify']); } $setting['sitelogoPath'] =getglobal('setting/attachurl').'sitelogo/sitelogo.png?'.VERHASH; exit(json_encode(array('settingdata' => $setting, 'appdata' => $applist,'serverspace'=>$serverspace))); } else { $settingnew = $_GET['settingnew']; $settingnew['bbname'] = $settingnew['sitename']; if(isset($settingnew['pathinfo'])){ $data = ['pathinfo'=>$settingnew['pathinfo']]; $routefile = CACHE_DIR . BS . 'route' . EXT; foreach(DB::fetch_all("SELECT * FROM %t where 1",array('pichome_route')) as $value) { $data[$value['url']]=$value['path']; } //写入缓存文件 @file_put_contents($routefile,"fetch_by_remoteid($remoteid); $hostdataarr = explode(':',$storagedata['hostname']); $defaultspacesettingdata = [ 'bucket'=>$storagedata['bucket'], 'bz'=>$storagedata['bz'], 'remoteid'=>$remoteid, 'region'=> ($storagedata['bz'] == 'ALIOSS') ? $storagedata['hostname']:$hostdataarr[1], 'did'=>$storagedata['did'], 'host'=>$storagedata['host'], ]; unset($settingnew['defaultsettingid']); if( DB::update('local_storage',array('isdefault'=>0),'1') &&DB::update('local_storage',array('isdefault'=>1),array('remoteid'=>$remoteid))){ $settingnew['defaultspacesetting'] = $defaultspacesettingdata; } } foreach ($settingnew['thumbsize'] as $key => $value) { $value['width'] = intval($value['width']); if (!$value['width']) { $value['width'] = ($key == 'samll' ? 256 : ($key == 'middle' ? 800 : 1440)); } $value['height'] = intval($value['height']); if (!$value['height']) { $value['height'] = ($key == 'samll' ? 256 : ($key == 'middle' ? 600 : 900)); } $settingnew['thumbsize'][$key] = $value; } //设置默认应用 if (!$settingnew["default_mod"] || $settingnew["default_mod"] != $_GET["old_default_mod"]) { $configfile = DZZ_ROOT . 'data/cache/default_mod.php'; $configarr = array(); //if (strpos($settingnew["default_mod"], 'vapp_') !== 0) $settingnew["default_mod"] = 'index'; //$configarr['default_mod'] = $settingnew["default_mod"]; $configarr['default_mod'] = 'banner'; @file_put_contents($configfile, "delete_by_aid($setting['sitelogo']); C::t('attachment')->addcopy_by_aid($settingnew['sitelogo'], 1); }*/ updatesetting($setting,$settingnew); exit(json_encode(array('success'=>true))); } }elseif($operation == 'upload'){//上传设置 if(!submitcheck('settingsubmit')){ $setting['maxChunkSize'] = round($setting['maxChunkSize'] / (1024 * 1024), 2); $navtitle = lang('upload_set'); $setting['unRunExts'] = implode(',', $setting['unRunExts']); $usergroups = DB::fetch_all("select f.*,g.grouptitle from %t f LEFT JOIN %t g ON g.groupid=f.groupid where f.groupid NOT IN ('2','3','4','5','6','7','8') order by groupid DESC", array('usergroup_field', 'usergroup')); exit(json_encode(array('setting'=>$setting))); }else{ $settingnew = $_GET['settingnew']; if ($settingnew['unRunExts']) $settingnew['unRunExts'] = explode(',', trim($settingnew['unRunExts'], ',')); else $settingnew['unRunExts'] = array(); if (!in_array('php', $settingnew['unRunExts'])) $settingnew['unRunExts'][] = 'php'; $settingnew['maxChunkSize'] = intval($settingnew['maxChunkSize'] * 1024 * 1024); $group = $_GET['group']; foreach ($group as $key => $value) { C::t('usergroup_field') -> update(intval($key), array('maxspacesize' => intval($value['maxspacesize']), 'maxattachsize' => intval($value['maxattachsize']), 'attachextensions' => trim($value['attachextensions']))); } updatesetting($setting,$settingnew); include_once libfile('function/cache'); updatecache('usergroups'); exit(json_encode(array('success'=>true))); } }elseif($operation == 'loginset'){//登录页设置 if(!submitcheck('settingsubmit')) { exit(json_encode(array('setting'=>$setting))); }else{ $settingnew = $_GET['settingnew']; if ($back = trim($settingnew['loginset']['background'])) { if (strpos($back, '#') === 0) { $settingnew['loginset']['bcolor'] = $back; } else { $arr = explode('.', $back); $ext = array_pop($arr); if ($ext && in_array(strtolower($ext), array('jpg', 'jpeg', 'gif', 'png','webp'))) { $settingnew['loginset']['img'] = $back; $settingnew['loginset']['bcolor'] = ''; } else { $settingnew['loginset']['url'] = $back; $settingnew['loginset']['bcolor'] = ''; } } } else { $settingnew['loginset']['bcolor'] = ''; } updatesetting($setting,$settingnew); exit(json_encode(array('success'=>true))); } }elseif($operation == 'access'){//登录设置 if(!submitcheck('settingsubmit')) { exit(json_encode(array('setting'=>$setting))); }else{ $settingnew = $_GET['settingnew']; isset($settingnew['reglinkname']) && empty($settingnew['reglinkname']) && $settingnew['reglinkname'] = lang('register_immediately'); $settingnew['pwlength'] = intval($settingnew['pwlength']); $settingnew['regstatus'] = intval($settingnew['regstatus']); if (empty($settingnew['strongpw'])) { $settingnew['strongpw'] = array(); } updatesetting($setting,$settingnew); exit(json_encode(array('success'=>true))); } }elseif($operation == 'mail'){ if(!submitcheck('settingsubmit')) { $passwordmask = $setting['mail']['auth_password'] ? $setting['mail']['auth_password']{0} . '********' . substr($setting['mail']['auth_password'], -2) : ''; $smtps = array(); foreach ($setting['mail']['smtp'] as $id => $smtp) { $smtp['auth'] = $smtp['auth'] ? true : false; $smtp['auth_password'] = $smtp['auth_password'] ? $smtp['auth_password']{0} . '********' . substr($smtp['auth_password'], -2) : ''; $smtp['id'] = $id; $smtps[] = $smtp; } exit(json_encode(array('setting'=>$setting,'smtps'=>$smtps))); }else{ $settingnew = $_GET['settingnew']; $settingnew['mail'] = ($settingnew['mail']); $oldsmtp = array(); if(intval($settingnew['mail']['mailsend']) == 3){ $oldsmtp = $settingnew['mail']['smtp']; }elseif(intval($settingnew['mail']['mailsend']) == 2){ $oldsmtp = $settingnew['mail']['esmtp']; } // $deletesmtp = $settingnew['mail']['mailsend'] != 1 ? ($settingnew['mail']['mailsend'] == 3 ? $settingnew['mail']['smtp']['delete'] : $settingnew['mail']['esmtp']['delete']) : array(); $settingnew['mail']['smtp'] = array(); foreach ($oldsmtp as $id => $value) { // if ((empty($deletesmtp) || !in_array($id, $deletesmtp)) && !empty($value['server']) && !empty($value['port'])) { // $passwordmask = $setting['mail']['smtp'][$id]['auth_password'] ? $setting['mail']['smtp'][$id]['auth_password']{0} . '********' . substr($setting['mail']['smtp'][$id]['auth_password'], -2) : ''; // $value['auth_password'] = $value['auth_password'] == $passwordmask ? $setting['mail']['smtp'][$id]['auth_password'] : $value['auth_password']; // $settingnew['mail']['smtp'][] = $value; // } if ( !$value['delete'] && !empty($value['server']) && !empty($value['port'])) { $passwordmask = $setting['mail']['smtp'][$id]['auth_password'] ? $setting['mail']['smtp'][$id]['auth_password']{0} . '********' . substr($setting['mail']['smtp'][$id]['auth_password'], -2) : ''; $value['auth_password'] = $value['auth_password'] == $passwordmask ? $setting['mail']['smtp'][$id]['auth_password'] : $value['auth_password']; $settingnew['mail']['smtp'][] = $value; } } // if (!empty($_GET['newsmtp'])) { // foreach ($_GET['newsmtp']['server'] as $id => $server) { // if (!empty($server) && !empty($_GET['newsmtp']['port'][$id])) { // $settingnew['mail']['smtp'][] = array('server' => $server, 'port' => $_GET['newsmtp']['port'][$id] ? intval($_GET['newsmtp']['port'][$id]) : 25, 'auth' => $_GET['newsmtp']['auth'][$id] ? 1 : 0, 'from' => $_GET['newsmtp']['from'][$id], 'auth_username' => $_GET['newsmtp']['auth_username'][$id], 'auth_password' => $_GET['newsmtp']['auth_password'][$id]); // } // } // } updatesetting($setting,$settingnew); exit(json_encode(array('success'=>true))); } }elseif($operation == 'uploadsitelogo'){ global $_G; $files = $_FILES['files']; if($files["type"] != 'image/png' || $files['size'] >= 1024*1024*2){ exit(json_encode(array('error'=>'file is not invalite'))); } $logopath = 'sitelogo/sitelogo.png'; $logofilepath =$_G['setting']['attachdir'] .$logopath; $logodir = dirname($logofilepath); dmkdir($logodir); //获取md5 $logomd5 = md5_file($files["tmp_name"]); $return = move_uploaded_file($files["tmp_name"],$logofilepath); if($return){ updatecache('setting'); exit(json_encode(array('success'=>true))); }else{ exit(json_encode(array('success'=>false))); } } elseif($operation == 'mailcheck'){//邮件检测 global $_G; if(!submitcheck('settingsubmit')) { $op = $_GET['op']?$_GET['op']:' '; $navtitle=lang('email_send_test'); }else{ if(!is_array($_G['setting']['mail'])) { $_G['setting']['mail'] = dunserialize($_G['setting']['mail']); } $test_to = $_GET['settingnew']['test_to']; $test_from = $_GET['settingnew']['test_from']; $date = date('Y-m-d H:i:s'); $alertmsg = ''; $title = lang('setting_mail_check_title_'.$_G['setting']['mail']['mailsend']); $message = lang('setting_mail_check_message_'.$_G['setting']['mail']['mailsend']).' '.$test_from.lang('setting_mail_check_date').' '.$date; $_G['setting']['bbname'] = lang('setting_mail_check_method_1'); include libfile('function/mail'); $succeed = sendmail($test_to, $title.' @ '.$date, $_G['setting']['bbname']."\n\n\n$message", $test_from); $_G['setting']['bbname'] = lang('setting_mail_check_method_2'); $succeed = sendmail($test_to, $title.' @ '.$date, $_G['setting']['bbname']."\n\n\n$message", $test_from); if($succeed) { $alertmsg = lang('setting_mail_check_success_1')."$title @ $date".lang('setting_mail_check_success_2'); exit(json_encode(array('success'=>$alertmsg))); } else { $alertmsg = lang('setting_mail_check_error').$alertmsg; exit(json_encode(array('error'=>$alertmsg))); } } }elseif($operation == 'image'){//缩略图设置 if(!submitcheck('settingsubmit')) { $setting['thumbsize'] = ($setting['thumbsize']); foreach ($setting['thumbsize'] as $key => $value) { $value['width'] = intval($value['width']); if (!$value['width']) { $value['width'] = ($key == 'samll' ? 256 : ($key == 'middle' ? 800 : 1440)); } $value['height'] = intval($value['height']); if (!$value['height']) { $value['height'] = ($key == 'samll' ? 256 : ($key == 'middle' ? 600 : 900)); } $setting['thumbsize'][$key] = $value; } $setting['waterimg'] = isset($setting['waterimg']) ? $setting['waterimg']:'';; exit(json_encode(array('setting'=>$setting))); }else{ $settingnew = $_GET['settingnew']; foreach ($settingnew['thumbsize'] as $key => $value) { $value['width'] = intval($value['width']); if (!$value['width']) { $value['width'] = ($key == 'samll' ? 256 : ($key == 'middle' ? 800 : 1440)); } $value['height'] = intval($value['height']); if (!$value['height']) { $value['height'] = ($key == 'samll' ? 256 : ($key == 'middle' ? 600 : 900)); } $settingnew['thumbsize'][$key] = $value; } updatesetting($setting,$settingnew); exit(json_encode(array('success'=>true))); } }elseif($operation == 'waterimg'){ global $_G; $files = $_FILES['file']; if($files["type"] != 'image/png' || $files['size'] >= 1024*1024*2){ exit(json_encode(array('error'=>'file is not invalite'))); } $waterpath = 'waterimg/water.png'; $waterfilepath =$_G['setting']['attachdir'] .$waterpath; $waterdir = dirname($waterfilepath); dmkdir($waterdir); //获取缩略图的md5 $watermd5 = md5_file($files["tmp_name"]); $return = move_uploaded_file($files["tmp_name"],$waterfilepath); if($return){ //rename($waterpath.$files['name'],$waterpath.'water.png'); //@unlink($_G['setting']['waterimg']); //C::t('setting')->update('waterimg',$_G['setting']['attachurl'] .$waterpath); C::t('setting')->update('watermd5',$watermd5); updatecache('setting'); if(!isset($_G['setting']['defaultspacesetting'])){ //如果未查询到默认存储位置设置 $settingdata = C::t('setting')->fetch_all('defaultspacesetting',true); if($settingdata){ $defaultspacesetting = $settingdata['defaultspacesetting']; }else{ //获取默认存储位置 $space = C::t('connect_storage')->fetch_default_space(); $hostdataarr = explode(':',$space['hostname']); $defaultspacesettingdata = [ 'bucket'=>$space['bucket'], 'bz'=>$space['bz'], 'remoteid'=>$space['id'], 'region'=> ($space['bz'] == 'ALIOSS') ? $space['hostname']:$hostdataarr[1], 'did'=>$space['id'], 'host'=>$space['host'], ]; $defaultspacesetting = $defaultspacesettingdata; } }else{ $defaultspacesetting = $_G['setting']['defaultspacesetting']; } if($defaultspacesetting['bz'] == 'ALIOSS'){ $did = $defaultspacesetting['did']; include_once DZZ_ROOT . './core/api/oss_sdk/autoload.php'; $ossconfig = C::t('connect_storage')->fetch($did); $access_id = $ossconfig['access_id']; $access_key = dzzdecode($ossconfig['access_key'], 'ALIOSS'); $osswaterpath = 'static/waterimg/water.png'; $oss = new OSS\OssClient($access_id, $access_key, $ossconfig['hostname']); try{ $return = $oss->putObject($ossconfig['bucket'],$osswaterpath, file_get_contents($waterfilepath)); }catch (\Exception $e){ echo $e->getMessage(); exit(json_encode(array('error'=>'oss create error'))); } } elseif($defaultspacesetting['bz'] =='QCOS' ){ $did = $defaultspacesetting['did']; $qcosconfig = C::t('connect_storage')->fetch($did); $qcoswaterpath = '/static/waterimg/water.png'; include_once DZZ_ROOT . './core/api/Qcos/vendor/autoload.php'; $hostnamearr = explode(':', $qcosconfig['hostname']); $schema = isset($hostnamearr[0]) ? $hostnamearr[0] : 'http'; $region = isset($hostnamearr[1]) ? $hostnamearr[1] : 'ap-beijing'; $qcos_config = [ 'credentials' => array( 'secretId' => $qcosconfig['access_id'], 'secretKey' => dzzdecode($qcosconfig['access_key'], 'QCOS')), 'region' =>$region, 'schema' => $schema, 'bucket'=>$qcosconfig['bucket'] ]; $qcos = new Qcloud\Cos\Client($qcos_config); try { $save_path = $qcos->putObject(array('Bucket' => $qcos_config['bucket'], 'Key' => $qcoswaterpath, 'Body' =>fopen($waterfilepath,'rb'))); //C::t('setting')->update('qcoswaterimg','QCOS:'.$did.':'.$qcos_config['bucket'].$qcoswaterpath); //updatecache('setting'); } catch (\Exception $e) { exit(json_encode(array('error'=>'qcos create error'))); } exit(json_encode(array('path'=>$_G['setting']['attachurl'] .$waterpath))); } exit(json_encode(array('path'=>getglobal('setting/attachurl').$waterpath.'?'.VERHASH))); }else{ exit(json_encode(array('error'=>'upload failer'))); } }elseif($operation == 'watermark'){//水印设置 if(!submitcheck('settingsubmit')) { $fontlist = array(); $dir = opendir(DZZ_ROOT.'./static/image/seccode/font/en'); while($entry = readdir($dir)) { if(in_array(strtolower(fileext($entry)), array('ttf', 'ttc'))) { $fontlist[]=$entry; } } $dir = opendir(DZZ_ROOT.'./static/image/seccode/font/ch'); while($entry = readdir($dir)) { if(in_array(strtolower(fileext($entry)), array('ttf', 'ttc'))) { $fontlist[]=$entry; } } exit(json_encode(array('setting'=>$setting,'fontlist'=>$fontlist))); }else{ $settingnew = $_GET['settingnew']; //更新水印 if(isset($settingnew['updatethumbwater']) && $settingnew['updatethumbwater']){ C::t('thumb_record')->update_waterstatus(); } unset($settingnew['updatethumbwater']); updatesetting($setting,$settingnew); exit(json_encode(array('success'=>true))); } } function dateformat($string, $operation = 'formalise') { $string = dhtmlspecialchars(trim($string)); $replace = $operation == 'formalise' ? array(array('n', 'j', 'y', 'Y'), array('mm', 'dd', 'yy', 'yyyy')) : array(array('mm', 'dd', 'yyyy', 'yy'), array('n', 'j', 'Y', 'y')); return str_replace($replace[0], $replace[1], $string); } //更新设置函数 function updatesetting($setting, $settingnew) { $updatecache = false; $settings = array(); $updatethumb = false; foreach ($settingnew as $key => $val) { if ($setting[$key] != $val) { $updatecache = TRUE; if (in_array($key, array('timeoffset', 'regstatus', 'oltimespan', 'seccodestatus'))) { $val = (float)$val; } $settings[$key] = $val; } } if ($settings) { C::t('setting')->update_batch($settings); } if ($updatecache) { updatecache('setting'); } return true; }