FEATURE: move categories into own repository
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
<?php namespace Modules\Categories\Http\Controllers;
|
||||
|
||||
use App\CMS\Enumerations\ModuleNamesWithIds;
|
||||
use App\Http\Controllers\Admin\Controller;
|
||||
use Modules\Categories\Entities\Category;
|
||||
|
||||
class CategoriesOverview extends Controller
|
||||
{
|
||||
public function getOverview()
|
||||
{
|
||||
// get list of all categories
|
||||
$categories = Category::getTree()
|
||||
->toArray();
|
||||
|
||||
$modules = ModuleNamesWithIds::getWithTranslations();
|
||||
|
||||
return view('categories::admin.overview', [
|
||||
'categories' => $categories,
|
||||
'modules' => $modules
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
<?php namespace Modules\Categories\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Admin\Controller;
|
||||
use App\Http\Requests\Request;
|
||||
use App\Models\Module;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Str;
|
||||
use Modules\Categories\Entities\Category;
|
||||
|
||||
class CreateNewCategory extends Controller
|
||||
{
|
||||
/**
|
||||
* Display form for new category
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
*/
|
||||
public function getNew()
|
||||
{
|
||||
// get list of all categories
|
||||
$categories = Category::getTree()
|
||||
->toArray();
|
||||
|
||||
// get list of modules which supports categories
|
||||
$modules = Module::where('enabled', true)
|
||||
->where('support_categories', true)
|
||||
->get();
|
||||
|
||||
return view('categories::admin.new', [
|
||||
'category' => new Category(),
|
||||
'categories' => $categories,
|
||||
'modules' => $modules
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create new category
|
||||
*
|
||||
* @param Request $request
|
||||
*
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function postNew(Request $request)
|
||||
{
|
||||
$category = new Category();
|
||||
$category->user_id = Auth::user()->id;
|
||||
$category->module_id = $request->moduleId;
|
||||
$category->name = $request->name;
|
||||
$category->url = Str::slug($request->url);
|
||||
$category->description = $request->description;
|
||||
|
||||
if ((int)$request->parentCategory) {
|
||||
$category->parent_id = $request->parentCategory;
|
||||
}
|
||||
|
||||
$category->save();
|
||||
|
||||
return redirect()
|
||||
->route('categories.overview')
|
||||
->with('success', trans('categories::categories.saveSuccessfull'));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
<?php namespace Modules\Categories\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Admin\Controller;
|
||||
use App\Http\Requests\Request;
|
||||
use App\Models\Module;
|
||||
use Illuminate\Support\Str;
|
||||
use Modules\Categories\Entities\Category;
|
||||
|
||||
class EditCategory extends Controller
|
||||
{
|
||||
/**
|
||||
* Display form for editing category
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
*/
|
||||
public function getEdit($id)
|
||||
{
|
||||
$category = Category::findOrFail($id);
|
||||
|
||||
// get list of all categories
|
||||
$categories = Category::getTree()
|
||||
->toArray();
|
||||
|
||||
// get list of modules which supports categories
|
||||
$modules = Module::where('enabled', true)
|
||||
->where('support_categories', true)
|
||||
->get();
|
||||
|
||||
return view('categories::admin.edit', [
|
||||
'category' => $category,
|
||||
'categories' => $categories,
|
||||
'modules' => $modules
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create new category
|
||||
*
|
||||
* @param Request $request
|
||||
* @param $id
|
||||
*
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function postEdit(Request $request, $id)
|
||||
{
|
||||
$category = Category::findOrFail($id);
|
||||
|
||||
$category->name = $request->name;
|
||||
$category->url = Str::slug($request->url);
|
||||
$category->description = $request->description;
|
||||
|
||||
$category->save();
|
||||
|
||||
if ($category->parent_id !== $request->parentCategory) {
|
||||
$category->parent_id = empty($request->parentCategory) ? null : $request->parentCategory;
|
||||
$category->save();
|
||||
|
||||
if (empty($request->parentCategory)) {
|
||||
$category->makeRoot($category->position);
|
||||
}
|
||||
}
|
||||
|
||||
return redirect()
|
||||
->route('categories.edit', ['id' => $id])
|
||||
->with('success', trans('categories::categories.saveSuccessfull'));
|
||||
}
|
||||
|
||||
public function delete($id) {
|
||||
$category = Category::findOrFail($id);
|
||||
|
||||
$category->delete();
|
||||
|
||||
return redirect()
|
||||
->route('categories.overview')
|
||||
->with('success', trans('categories::categories.deleteSuccessfull'));
|
||||
}
|
||||
}
|
||||
Executable
Executable
Executable
+23
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
Route::group([
|
||||
'prefix' => LaravelLocalization::setLocale() . '/admin/categories',
|
||||
'middleware' => ['admin'],
|
||||
'namespace' => 'Modules\Categories\Http\Controllers'
|
||||
], function () {
|
||||
Route::get('/', 'CategoriesOverview@getOverview')
|
||||
->name('categories.overview');
|
||||
|
||||
Route::get('/new', 'CreateNewCategory@getNew')
|
||||
->name('categories.new');
|
||||
Route::post('/new', 'CreateNewCategory@postNew')
|
||||
->name('categories.postNew');
|
||||
|
||||
Route::get('/edit/{id}', 'EditCategory@getEdit')
|
||||
->name('categories.edit');
|
||||
Route::post('/edit/{id}', 'EditCategory@postEdit')
|
||||
->name('categories.postEdit');
|
||||
|
||||
Route::get('/delete/{id}', 'EditCategory@delete')
|
||||
->name('categories.delete');
|
||||
});
|
||||
Reference in New Issue
Block a user