From af482734659a78fc1a138271de0bc4ec0a74ca49 Mon Sep 17 00:00:00 2001 From: printempw Date: Wed, 21 Dec 2016 22:53:53 +0800 Subject: [PATCH] add option for returning score when deleting textures --- app/Http/Controllers/AdminController.php | 25 +++++++- app/Http/Controllers/PlayerController.php | 4 +- app/Http/Controllers/SkinlibController.php | 4 +- app/Services/OptionForm.php | 2 +- app/helpers.php | 4 +- config/options.php | 3 +- resources/views/admin/score.tpl | 66 +--------------------- 7 files changed, 36 insertions(+), 72 deletions(-) diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php index 45829901..8b0b941b 100644 --- a/app/Http/Controllers/AdminController.php +++ b/app/Http/Controllers/AdminController.php @@ -27,7 +27,30 @@ class AdminController extends Controller public function score() { - return view('admin.score'); + $rate = Option::form('rate', '积分换算', function($form) + { + $form->group('score_per_storage', '存储', function($group) { + $group->text('score_per_storage'); + $group->addon('积分 = 1 KB'); + }); + + $form->group('private_score_per_storage', '私密材质存储', function($group) { + $group->text('private_score_per_storage'); + $group->addon('积分 = 1 KB'); + })->hint('上传私密材质将消耗更多积分'); + + $form->checkbox('return_score', '积分返还', '用户删除角色/材质时返还积分'); + + $form->group('score_per_player', '角色', function($group) { + $group->text('score_per_player'); + $group->addon('积分 = 一个角色'); + }); + + $form->text('user_initial_score', '新用户默认积分'); + + })->handle(); + + return view('admin.score', compact('rate')); } public function options() diff --git a/app/Http/Controllers/PlayerController.php b/app/Http/Controllers/PlayerController.php index 5630affb..6f639d3a 100644 --- a/app/Http/Controllers/PlayerController.php +++ b/app/Http/Controllers/PlayerController.php @@ -87,7 +87,9 @@ class PlayerController extends Controller Event::fire(new PlayerWillBeDeleted($this->player)); if ($this->player->delete()) { - $this->user->setScore(Option::get('score_per_player'), 'plus'); + + if (option('return_score')) + $this->user->setScore(Option::get('score_per_player'), 'plus'); Event::fire(new PlayerWasDeleted($player_name)); diff --git a/app/Http/Controllers/SkinlibController.php b/app/Http/Controllers/SkinlibController.php index 402f6ba1..7f993297 100644 --- a/app/Http/Controllers/SkinlibController.php +++ b/app/Http/Controllers/SkinlibController.php @@ -194,7 +194,9 @@ class SkinlibController extends Controller if (Texture::where('hash', $result['hash'])->count() == 1) Storage::delete($result['hash']); - $this->user->setScore($result->size * Option::get('score_per_storage'), 'plus'); + if (option('return_score')) { + $this->user->setScore($result->size * Option::get('score_per_storage'), 'plus'); + } if ($result->delete()) return json(trans('skinlib.delete.success'), 0); diff --git a/app/Services/OptionForm.php b/app/Services/OptionForm.php index 8be00362..b26e17c1 100644 --- a/app/Services/OptionForm.php +++ b/app/Services/OptionForm.php @@ -114,7 +114,7 @@ class OptionForm if (Str::is('*[*]', $item->id)) continue; - if ($_POST[$item->id] != option($item->id)) { + if ($_POST[$item->id] != option($item->id, null, false)) { Option::set($item->id, $_POST[$item->id]); } } diff --git a/app/helpers.php b/app/helpers.php index 60f37bcd..6f7c142a 100644 --- a/app/helpers.php +++ b/app/helpers.php @@ -195,7 +195,7 @@ if (! function_exists('bs_nickname')) { if (! function_exists('option')) { - function option($key = null, $default = null) + function option($key = null, $default = null, $bool = true) { $options = app('options'); @@ -210,7 +210,7 @@ if (! function_exists('option')) { return $options->save(); } - return $options->get($key); + return $options->get($key, $default, $bool); } } diff --git a/config/options.php b/config/options.php index ef2890f8..ad0f1c2e 100644 --- a/config/options.php +++ b/config/options.php @@ -3,7 +3,7 @@ * @Author: printempw * @Date: 2016-07-29 11:53:11 * @Last Modified by: printempw - * @Last Modified time: 2016-12-16 22:14:18 + * @Last Modified time: 2016-12-21 22:49:31 */ return [ @@ -25,6 +25,7 @@ return [ 'sign_score' => '10,100', 'score_per_storage' => '1', 'private_score_per_storage' => '10', + 'return_score' => '1', 'score_per_player' => '100', 'sign_after_zero' => '0', 'version' => '', diff --git a/resources/views/admin/score.tpl b/resources/views/admin/score.tpl index 728fc056..610f1160 100644 --- a/resources/views/admin/score.tpl +++ b/resources/views/admin/score.tpl @@ -18,71 +18,7 @@
-
-
-

积分换算

-
-
- -
- $value) { - if ($key != "option" && $key != "submit") - Option::set($key, $value); - } - echo '
设置已保存。
'; - } ?> - - - - - - - - - - - - - - - - - - - - - - -
存储 -
- - 积分 = 1 KB -
- -
私密材质存储 - - -
- - 积分 = 1 KB -
- -
角色 -
- - 积分 = 一个角色 -
-
新用户默认积分 - -
-
- -
-
+ {!! $rate->render() !!}