Add homepage

This commit is contained in:
Ludovic CANDELLIER
2022-03-30 22:23:57 +02:00
parent 7187a312eb
commit e3c60e7cde
27 changed files with 1200 additions and 2549 deletions

View File

@@ -0,0 +1,31 @@
<?php
namespace App\Datatables\Shop;
use Yajra\DataTables\Html\Column;
use App\Datatables\ParentDataTable as DataTable;
use App\Models\Shop\Homepage;
class HomepagesDataTable extends DataTable
{
public $model_name = 'homepages';
public function query(Homepage $model)
{
return $this->buildQuery($model);
}
public function modifier($datatables)
{
$datatables->rawColumns(['text', 'action']);
return parent::modifier($datatables);
}
protected function getColumns()
{
return [
Column::make('text')->title('Texte'),
$this->makeColumnButtons(),
];
}
}

View File

@@ -0,0 +1,44 @@
<?php
namespace App\Http\Controllers\Admin\Shop;
use Illuminate\Http\Request;
use App\Repositories\Shop\Homepages;
use App\Datatables\Shop\HomepagesDataTable;
class HomepageController extends Controller
{
public function index(HomepagesDataTable $dataTable)
{
$data = [];
return $dataTable->render('Admin.Shop.Homepages.list', $data);
}
public function create()
{
return view('Admin.Shop.Homepages.create', $data ?? []);
}
public function store(Request $request)
{
$ret = Homepages::store($request->all());
return redirect()->route('Admin.Shop.Homepages.index');
}
public function show($id)
{
return view('Admin.Shop.Homepages.view', $data ?? []);
}
public function edit($id)
{
$data['homepage'] = Homepages::edit($id);
return view('Admin.Shop.Homepages.edit', $data);
}
public function destroy($id)
{
return Homepages::destroy($id);
}
}

View File

@@ -10,6 +10,7 @@ use App\Repositories\Shop\Categories;
use App\Repositories\Shop\Offers;
use App\Repositories\Shop\Tags;
use App\Repositories\Shop\TagGroups;
use App\Repositories\Shop\Homepages;
class HomeController extends Controller
{
@@ -24,6 +25,7 @@ class HomeController extends Controller
$data = self::init();
$data['display_by_rows'] = $input['by_rows'] ?? false;
$data['shelves'] = Articles::getArticlesByHomepage();
$data['text'] = Homepages::getLast();
// dump($data['shelves']);
// exit;
$data['tags'] = TagGroups::getWithTagsAndCountOffers();

View File

@@ -42,5 +42,9 @@ class Shop
$menu->addTo('shop', 'Unités', [ 'route' => 'Admin.Shop.Unities.index', 'permission' => 'backend_access' ])
->activeIfRoute(['Admin.Shop.Unities.*'])->order(14);
$menu->addTo('shop', 'Accueil', [ 'route' => 'Admin.Shop.Homepages.index', 'permission' => 'backend_access' ])
->activeIfRoute(['Admin.Shop.Homepages.*'])->order(14);
}
}

View File

@@ -0,0 +1,10 @@
<?php
namespace App\Models\Shop;
use Illuminate\Database\Eloquent\Model;
class Homepage extends Model
{
protected $guarded = ['id'];
}

View File

@@ -0,0 +1,44 @@
<?php
namespace App\Repositories\Shop;
use App\Models\Shop\Homepage;
class Homepages
{
public static function getLast()
{
$model = Homepage::latest('id')->first();
return $model ? $model->text : '';
}
public static function get($id)
{
return Homepage::find($id);
}
public static function store($data)
{
$item = ($data['id'] ?? false) ? self::update($data) : self::create($data);
return $item->id;
}
public static function create($data)
{
return Homepage::create($data);
}
public static function update($data, $id = false)
{
$id = $id ? $id : $data['id'];
$item = self::get($id);
$item->update($data);
return $item;
}
public static function destroy($id)
{
return Homepage::destroy($id);
}
}