From 55f8c87b922fe851c8a6d37d1d72d191b97b9d5b Mon Sep 17 00:00:00 2001 From: printempw Date: Sat, 17 Dec 2016 19:52:59 +0800 Subject: [PATCH] add PluginController --- app/Http/Controllers/AdminController.php | 85 ----------------------- app/Http/Controllers/PluginController.php | 71 +++++++++++++++++++ app/Http/Routes/web.php | 19 ++--- 3 files changed, 82 insertions(+), 93 deletions(-) create mode 100644 app/Http/Controllers/PluginController.php diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php index 89aa4ae4..45829901 100644 --- a/app/Http/Controllers/AdminController.php +++ b/app/Http/Controllers/AdminController.php @@ -10,7 +10,6 @@ use App\Models\User; use App\Models\Player; use App\Models\Texture; use Illuminate\Http\Request; -use App\Services\PluginManager; use App\Exceptions\PrettyPageException; use App\Services\Repositories\UserRepository; @@ -80,90 +79,6 @@ class AdminController extends Controller return view('admin.options')->with('forms', compact('general', 'cache')); } - /** - * Handle Upload Checking & Downloading - * - * @param Request $request - * @return void - */ - public function update(Request $request) - { - if ($request->action == "check") { - $updater = new \Updater(\App::version()); - - if ($updater->newVersionAvailable()) { - return json([ - 'new_version_available' => true, - 'latest_version' => $updater->latest_version - ]); - } else { - return json([ - 'new_version_available' => false, - 'latest_version' => $updater->current_version - ]); - } - } elseif ($request->action == "download") { - return view('admin.download'); - } else { - return view('admin.update'); - } - } - - public function plugins(Request $request, PluginManager $plugins) - { - if ($request->has('action') && $request->has('id')) { - $id = $request->get('id'); - - if ($plugins->getPlugins()->has($id)) { - $plugin = $plugins->getPlugin($id); - switch ($request->get('action')) { - case 'enable': - $plugins->enable($id); - - return redirect('admin/plugins/manage'); - break; - - case 'disable': - $plugins->disable($id); - - return redirect('admin/plugins/manage'); - break; - - case 'delete': - if ($request->isMethod('post')) { - event(new Events\PluginWasDeleted($plugin)); - - $plugins->uninstall($id); - - return json('插件已被成功删除', 0); - } - break; - - case 'config': - if ($plugin->isEnabled() && $plugin->hasConfigView()) { - return View::file($plugin->getViewPath('config')); - } else { - abort(404); - } - - break; - - default: - # code... - break; - } - } - - } - - $data = [ - 'installed' => $plugins->getPlugins(), - 'enabled' => $plugins->getEnabledPlugins() - ]; - - return view('admin.plugins', $data); - } - /** * Show Manage Page of Users. * diff --git a/app/Http/Controllers/PluginController.php b/app/Http/Controllers/PluginController.php new file mode 100644 index 00000000..a2a99909 --- /dev/null +++ b/app/Http/Controllers/PluginController.php @@ -0,0 +1,71 @@ +has('action') && $request->has('id')) { + $id = $request->get('id'); + + if ($plugins->getPlugins()->has($id)) { + $plugin = $plugins->getPlugin($id); + switch ($request->get('action')) { + case 'enable': + $plugins->enable($id); + + return redirect('admin/plugins/manage'); + break; + + case 'disable': + $plugins->disable($id); + + return redirect('admin/plugins/manage'); + break; + + case 'delete': + if ($request->isMethod('post')) { + event(new Events\PluginWasDeleted($plugin)); + + $plugins->uninstall($id); + + return json('插件已被成功删除', 0); + } + break; + + case 'config': + if ($plugin->isEnabled() && $plugin->hasConfigView()) { + return View::file($plugin->getViewPath('config')); + } else { + abort(404); + } + + break; + + default: + # code... + break; + } + } + + } + + $data = [ + 'installed' => $plugins->getPlugins(), + 'enabled' => $plugins->getEnabledPlugins() + ]; + + return view('admin.plugins', $data); + } +} diff --git a/app/Http/Routes/web.php b/app/Http/Routes/web.php index 42a9da53..cbb4df22 100644 --- a/app/Http/Routes/web.php +++ b/app/Http/Routes/web.php @@ -98,21 +98,24 @@ Route::group(['middleware' => 'admin', 'prefix' => 'admin'], function () { Route::get('/', 'AdminController@index'); - Route::any('/plugins/manage', 'AdminController@plugins'); - Route::any('/customize', 'AdminController@customize'); Route::any('/score', 'AdminController@score'); Route::any('/options', 'AdminController@options'); - Route::any('/update', 'UpdateController@showUpdatePage'); - - Route::any('/update/download', 'UpdateController@download'); - - Route::get('/update/check', 'UpdateController@checkUpdates'); - Route::get('/users', 'AdminController@users'); Route::get('/players', 'AdminController@players'); // ajax handlers Route::post('/users', 'AdminController@userAjaxHandler'); Route::post('/players', 'AdminController@playerAjaxHandler'); + + Route::group(['prefix' => 'plugins'], function () { + Route::get('/manage', 'PluginController@manage'); + Route::any('/market', 'PluginController@showMarket'); + }); + + Route::group(['prefix' => 'update'], function () { + Route::any('/update', 'UpdateController@showUpdatePage'); + Route::get('/update/check', 'UpdateController@checkUpdates'); + Route::any('/update/download', 'UpdateController@download'); + }); });