| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375 |
- <?php
- namespace App\Http\Controllers\Admin;
- use App\Models\Setting;
- use Illuminate\Http\Request;
- class SettingController extends AdminController
- {
- /*站点设置*/
- public function website(Request $request)
- {
- $validateRules = [
- 'website_name' => 'required|max:128',
- 'website_slogan' => 'sometimes|max:128',
- 'website_welcome' => 'sometimes|max:256',
- 'website_url' => 'required|url',
- 'website_icp' => 'sometimes|max:128',
- 'website_cache_time' => 'sometimes|digits_between:0,8640',
- 'website_admin_email' => 'required|email',
- ];
- $themes = [];
- /*获取模板主题目录下主题列表*/
- $themePath = base_path()."/resources/views/themes";
- if ($dh = opendir($themePath)) {
- while (($file = readdir($dh)) !== false) {
- if( is_dir($themePath.'/'.$file) && $file{0} !== '.' ){
- $themes[] = $file;
- }
- }
- closedir($dh);
- }
- if($request->isMethod('post')){
- $this->validate($request,$validateRules);
- $data = $request->except('_token');
- foreach($data as $name=>$value){
- Setting()->set($name,$value);
- }
- $envParams['APP_URL'] = $request->input('website_url','');
- $envParams['WEBSITE_THEME'] = $request->input('website_theme','default');
- $envParams['WEBSITE_SKIN'] = $request->input('website_skin','default');
- $envParams['WEBSITE_ADMIN_EMAIL'] = $request->input('website_admin_email','');
- Setting()->setEnvParams($envParams);
- return $this->success(route('admin.setting.website'),'站点设置保存成功');
- }
- return view('admin.setting.website')->with('themes',$themes);
- }
- /*邮件配置*/
- public function email(Request $request)
- {
- if($request->isMethod('post')){
- $data = $request->except('_token');
- unset($data['_token']);
- $envParams = [];
- foreach($data as $name=>$value){
- $envParams[strtoupper($name)] = $value;
- Setting()->set($name,$value);
- }
- Setting()->setEnvParams($envParams);
- return $this->success(route('admin.setting.email'),'邮箱配置保存成功');
- }
- return view('admin.setting.email');
- }
- /*时间格式设置*/
- public function time(Request $request)
- {
- $timeOffsets = [
- '-12' => '(标准时-12:00) 日界线西',
- '-11' => '(标准时-11:00) 中途岛、萨摩亚群岛',
- '-10' => '(标准时-10:00) 夏威夷',
- '-9' => '(标准时-9:00) 阿拉斯加',
- '-8' => '(标准时-8:00) 太平洋时间(美国和加拿大)',
- '-7' => '(标准时-7:00) 山地时间(美国和加拿大)',
- '-6' => '(标准时-6:00) 中部时间(美国和加拿大)、墨西哥城',
- '-5' => '(标准时-5:00) 东部时间(美国和加拿大)、波哥大',
- '-4' => '(标准时-4:00) 大西洋时间(加拿大)、加拉加斯',
- '-3.5' => '(标准时-3:30) 纽芬兰',
- '-3' => '(标准时-3:00) 巴西、布宜诺斯艾利斯、乔治敦',
- '-2' => '(标准时-2:00) 中大西洋',
- '-1' => '(标准时-1:00) 亚速尔群岛、佛得角群岛',
- '0' => '(格林尼治标准时) 西欧时间、伦敦、卡萨布兰卡',
- '1' => '(标准时+1:00) 中欧时间、安哥拉、利比亚',
- '2' => '(标准时+2:00) 东欧时间、开罗,雅典',
- '3' => '(标准时+3:00) 巴格达、科威特、莫斯科',
- '3.5' => '(标准时+3:30) 德黑兰',
- '4' => '(标准时+4:00) 阿布扎比、马斯喀特、巴库',
- '4.5' => '(标准时+4:30) 喀布尔',
- '5' => '(标准时+5:00) 叶卡捷琳堡、伊斯兰堡、卡拉奇',
- '5.5' => '(标准时+5:30) 孟买、加尔各答、新德里',
- '6' => '(标准时+6:00) 阿拉木图、 达卡、新亚伯利亚',
- '7' => '(标准时+7:00) 曼谷、河内、雅加达',
- '8' => '(标准时+8:00)北京、重庆、香港、新加坡',
- '9' => '(标准时+9:00) 东京、汉城、大阪、雅库茨克',
- '9.5' => '(标准时+9:30) 阿德莱德、达尔文',
- '10' => '(标准时+10:00) 悉尼、关岛',
- '11' => '(标准时+11:00) 马加丹、索罗门群岛',
- '12' => '(标准时+12:00) 奥克兰、惠灵顿、堪察加半岛'
- ];
- $validateRules = [
- 'time_diff' => 'integer',
- ];
- if($request->isMethod('post'))
- {
- $this->validate($request,$validateRules);
- $data = $request->except('_token');
- foreach($data as $name=>$value){
- Setting()->set($name,$value);
- }
- return $this->success(route('admin.setting.time'),'时间设置成功');
- }
- return view('admin.setting.time')->with('timeOffsets',$timeOffsets);
- }
- /*防灌水设置*/
- public function irrigation(Request $request)
- {
- if($request->isMethod('post')){
- $data = $request->except('_token');
- $data['code_login'] = $request->input('code_login',0);
- $data['code_register'] = $request->input('code_register',0);
- $data['code_create_question'] = $request->input('code_create_question',0);
- $data['code_create_article'] = $request->input('code_create_article',0);
- $data['code_create_answer'] = $request->input('code_create_answer',0);
- foreach($data as $name => $value ){
- Setting()->set($name,$value);
- }
- return $this->success(route('admin.setting.irrigation'),'防灌水策略设置成功');
- }
- return view('admin.setting.irrigation');
- }
- /*注册策略设置*/
- public function register(Request $request)
- {
- $validateRules = [];
- if($request->isMethod('post')){
- $this->validate($request,$validateRules);
- $data = $request->except('_token');
- foreach($data as $name=>$value){
- Setting()->set($name,$value);
- }
- return $this->success(route('admin.setting.register'),'注册设置成功');
- }
- return view('admin.setting.register');
- }
- /*积分策略设置*/
- public function credits(Request $request)
- {
- $validateRules = [
- 'credits_register' => 'required|integer',
- 'coins_register' => 'required|integer',
- 'credits_login' => 'required|integer',
- 'coins_login' => 'required|integer',
- 'credits_sign' => 'required|integer',
- 'coins_sign' => 'required|integer',
- 'credits_ask' => 'required|integer',
- 'coins_ask' => 'required|integer',
- 'credits_answer' => 'required|integer',
- 'coins_answer' => 'required|integer',
- 'credits_adopted' => 'required|integer',
- 'coins_adopted' => 'required|integer',
- ];
- if($request->isMethod('post')){
- $this->validate($request,$validateRules);
- $data = $request->except('_token');
- unset($data['_token']);
- foreach($data as $name=>$value){
- Setting()->set($name,$value);
- }
- return $this->success(route('admin.setting.credits'),'积分策略设置成功');
- }
- return view('admin.setting.credits');
- }
- public function seo(Request $request)
- {
- if($request->isMethod('post')){
- $data = $request->except('_token');
- unset($data['_token']);
- foreach($data as $name=>$value){
- Setting()->set($name,$value);
- }
- return $this->success(route('admin.setting.seo'),'seo策略设置成功');
- }
- return view('admin.setting.seo');
- }
- /*变量设置*/
- public function variables(Request $request){
- return view('admin.setting.variables');
- }
- public function attach(Request $request){
- if($request->isMethod('post')){
- $validateRules = [
- 'attach_image_size' => 'required|integer',
- 'attach_file_size' => 'required|integer',
- ];
- $request->flash();
- $this->validate($request,$validateRules);
- $imageSize = $request->input('attach_image_size');
- $attachSize = $request->input('attach_file_size');
- $openWaterMark = $request->input('attach_open_watermark',0);
- $envParams['UPLOAD_IMAGE_SIZE'] = $imageSize;
- $envParams['UPLOAD_ATTACH_SIZE'] = $attachSize;
- $envParams['UPLOAD_OPEN_WATERMARK'] = $openWaterMark;
- if($request->hasFile('attach_watermark_image')){
- $savePath = storage_path('app/watermarks');
- $file = $request->file('attach_watermark_image');
- $fileName = uniqid(str_random(8)).'.'.$file->getClientOriginalExtension();
- $target = $file->move($savePath,$fileName);
- if($target){
- $envParams['UPLOAD_WATERMARK_IMAGE'] = 'watermarks-'.$fileName;
- }
- }
- Setting()->setEnvParams($envParams);
- return $this->success(route('admin.setting.attach'),'设置成功');
- }
- return view('admin.setting.attach');
- }
- /*xunsearch整合*/
- public function xunSearch(Request $request)
- {
- if($request->isMethod('post')){
- $data = $request->except('_token');
- foreach($data as $name=>$value){
- Setting()->set($name,$value);
- }
- $envParams['XUNSEARCH_INDEX'] = $data['xunsearch_index'];
- $envParams['XUNSEARCH_SEARCH'] = $data['xunsearch_search'];
- Setting()->setEnvParams($envParams);
- return $this->success(route('admin.setting.xunSearch'),'xunSearch设置成功');
- }
- return view('admin.setting.xunSearch');
- }
- public function oauth(Request $request)
- {
- if($request->isMethod('post')){
- /*总开关*/
- $envParams['OAUTH_OPEN'] = $request->input('oauth_open',0);
- /*qq登陆参数*/
- $envParams['OAUTH_QQ_OPEN'] = $request->input('oauth_qq_open',0);
- $envParams['OAUTH_QQ_KEY'] = $request->input('oauth_qq_key','');
- $envParams['OAUTH_QQ_SECRET'] = $request->input('oauth_qq_secret','');
- $envParams['OAUTH_QQ_REDIRECT'] = $request->input('oauth_qq_redirect','');
- /*微博登陆参数*/
- $envParams['OAUTH_WEIBO_OPEN'] = $request->input('oauth_weibo_open',0);
- $envParams['OAUTH_WEIBO_KEY'] = $request->input('oauth_weibo_key','');
- $envParams['OAUTH_WEIBO_SECRET'] = $request->input('oauth_weibo_secret','');
- $envParams['OAUTH_WEIBO_REDIRECT'] = $request->input('oauth_weibo_redirect','');
- /*微信扫描登陆*/
- $envParams['OAUTH_WEIXINWEB_OPEN'] = $request->input('oauth_weixinweb_open',0);
- $envParams['OAUTH_WEIXINWEB_KEY'] = $request->input('oauth_weixinweb_key','');
- $envParams['OAUTH_WEIXINWEB_SECRET'] = $request->input('oauth_weixinweb_secret','');
- $envParams['OAUTH_WEIXINWEB_REDIRECT'] = $request->input('oauth_weixinweb_redirect','');
- /*微信公众号内登陆*/
- $envParams['OAUTH_WEIXIN_OPEN'] = $request->input('oauth_weixin_open',0);
- $envParams['OAUTH_WEIXIN_KEY'] = $request->input('oauth_weixin_key','');
- $envParams['OAUTH_WEIXIN_SECRET'] = $request->input('oauth_weixin_secret','');
- $envParams['OAUTH_WEIXIN_REDIRECT'] = $request->input('oauth_weixin_redirect','');
- Setting()->setEnvParams($envParams);
- return $this->success(route('admin.setting.oauth'),'一键登录设置成功');
- }
- return view('admin.setting.oauth');
- }
- public function sms($type='sms', Request $request){
- if($request->isMethod('post')){
- if($type == 'sms'){//短信参数配置
- $envParams['SMS_OPEN'] = $request->input('sms_open',0);
- $envParams['SMS_SIGN_NAME'] = $request->input('sms_sign_name','');
- $envParams['SMS_KEY_ID'] = $request->input('sms_key_id','');
- $envParams['SMS_KEY_SECRET'] = $request->input('sms_key_secret','');
- Setting()->setEnvParams($envParams);
- }else if($type == 'template'){ //消息模板配置
- $messageTemplates = $request->except(['_token']);
- foreach ($messageTemplates as $key => $value){
- if(str_contains($key,'_template')){
- Setting()->set($key, $value);
- }
- }
- }
- return $this->success(route('admin.setting.sms'),'配置保存成功');
- }
- return view('admin.setting.sms');
- }
- public function geetest(Request $request){
- if($request->isMethod('post')){
- $envParams['GEETEST_OPEN'] = $request->input('geetest_open',false);
- $envParams['GEETEST_ID'] = $request->input('geetest_id','');
- $envParams['GEETEST_KEY'] = $request->input('geetest_key','');
- Setting()->setEnvParams($envParams);
- return $this->success(route('admin.setting.geetest'),'配置保存成功');
- }
- return view('admin.setting.geetest');
- }
- /*系统功能自定义*/
- public function custom(Request $request){
- if($request->isMethod('post')){
- $data = $request->except('_token');
- foreach($data as $name => $value){
- Setting()->set($name,$value);
- }
- return $this->success(route('admin.setting.custom'),'配置保存成功');
- }
- return view('admin.setting.custom');
- }
- /*微信小程序配置*/
- public function weChatApp(Request $request){
- if($request->isMethod('post')){
- $data = $request->except(['_token','weapp_arcode_image']);
- foreach($data as $name => $value){
- Setting()->set($name,$value);
- }
- $envParams['WEAPP_OPEN'] = $request->input('weapp_open',0);
- $envParams['WEAPP_APP_ID'] = $request->input('weapp_app_id','');
- $envParams['WEAPP_APP_SECRET'] = $request->input('weapp_app_secret','');
- Setting()->setEnvParams($envParams);
- if($request->hasFile('weapp_qrcode_image')){
- $savePath = storage_path('app/wechat');
- $file = $request->file('weapp_qrcode_image');
- $fileName = uniqid(str_random(8)).'.'.$file->getClientOriginalExtension();
- $target = $file->move($savePath,$fileName);
- if($target){
- Setting()->set('weapp_qrcode_image','wechat-'.$fileName);
- }
- }
- return $this->success(route('admin.setting.weChatApp'),'配置保存成功');
- }
- return view('admin.setting.weChatApp');
- }
- }
|