101 lines
2.5 KiB
PHP
101 lines
2.5 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\bo;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Str;
|
|
use App\Models\FaqThemes;
|
|
|
|
class FaqThemesController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
$f = FaqThemes::orderBy('order', 'asc')->get();
|
|
return view('bo.faq-themes.index', compact('f'));
|
|
}
|
|
|
|
public function create()
|
|
{
|
|
return view('bo.faq-themes.create');
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
$name = $request->name;
|
|
$pictogram = $request->pictogram;
|
|
|
|
$request->validate([
|
|
'name' => 'required|max:100',
|
|
'pictogram' => 'required|max:255',
|
|
]);
|
|
|
|
$f = new FaqThemes();
|
|
$f->name = $name;
|
|
$f->pictogram = $pictogram;
|
|
$f->order = $this->getLastOrder();
|
|
$f->save();
|
|
|
|
return redirect()->route('bo.faq-themes.index');
|
|
}
|
|
|
|
public function edit($id)
|
|
{
|
|
$f = FaqThemes::findOrFail($id);
|
|
return view('bo.faq-themes.edit', compact('f'));
|
|
}
|
|
|
|
public function update(Request $request, $id)
|
|
{
|
|
$name = $request->name;
|
|
$pictogram = $request->pictogram;
|
|
|
|
$request->validate([
|
|
'name' => 'required|max:100',
|
|
'pictogram' => 'required|max:255',
|
|
]);
|
|
|
|
$f = FaqThemes::findOrFail($id);
|
|
|
|
$f->name = $name;
|
|
$f->pictogram = $pictogram;
|
|
$f->save();
|
|
|
|
return redirect()->route('bo.faq-themes.edit', $f->id)->with('success', 'Enregistré !');
|
|
}
|
|
|
|
public function destroy($id)
|
|
{
|
|
$f = FaqThemes::findOrFail($id);
|
|
$f->delete();
|
|
|
|
return redirect()->route('bo.faq-themes.index');
|
|
}
|
|
|
|
public function changeOrder($id, $action)
|
|
{
|
|
$current = FaqThemes::findOrFail($id);
|
|
|
|
if ($action === 'up'){
|
|
$tmp = FaqThemes::where('order', $current->order - 1)->first();
|
|
$tmp->order = $tmp->order + 1;
|
|
$current->order = $current->order - 1;
|
|
}else{
|
|
$tmp = FaqThemes::where('order', $current->order + 1)->first();
|
|
$tmp->order = $tmp->order - 1;
|
|
$current->order = $current->order + 1;
|
|
}
|
|
$tmp->save();
|
|
$current->save();
|
|
|
|
return redirect()->route('bo.faq-themes.index');
|
|
}
|
|
|
|
private function getLastOrder()
|
|
{
|
|
$order = FaqThemes::select('order')->orderBy('order', 'DESC')->first();
|
|
if ($order === NULL)
|
|
return 1;
|
|
return $order->order + 1;
|
|
}
|
|
}
|