wip 3d
This commit is contained in:
69
app/Http/Controllers/Admin/Shop/MerchandiseController.php
Normal file
69
app/Http/Controllers/Admin/Shop/MerchandiseController.php
Normal file
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Admin\Shop;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
use App\Repositories\Shop\Merchandises;
|
||||
use App\Repositories\Shop\TagGroups;
|
||||
use App\Datatables\Shop\MerchandisesDataTable;
|
||||
|
||||
use App\Models\Shop\Merchandise;
|
||||
|
||||
class MerchandiseController extends Controller
|
||||
{
|
||||
public function index(MerchandisesDataTable $dataTable)
|
||||
{
|
||||
return $dataTable->render('Admin.Shop.Merchandises.list');
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
$data['tags_list'] = TagGroups::getTreeTags();
|
||||
return view('Admin.Shop.Merchandises.create', $data);
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
$data = $request->all();
|
||||
Merchandises::storeFull($data);
|
||||
return redirect()->route('Admin.Shop.Merchandises.index');
|
||||
}
|
||||
|
||||
public function show($id)
|
||||
{
|
||||
return view('Admin.Shop.Merchandises.view', Merchandises::get($id));
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
$data['merchandise'] = Merchandises::getFull($id);
|
||||
$data['tags_list'] = TagGroups::getTreeTags();
|
||||
return view('Admin.Shop.Merchandises.edit', $data);
|
||||
}
|
||||
|
||||
public function destroy($id)
|
||||
{
|
||||
return Merchandises::destroy($id);
|
||||
}
|
||||
|
||||
public function getImages(Request $request, $id = false, $can_edit = true)
|
||||
{
|
||||
$id = $id ? $id : $request->input('id');
|
||||
$data['images'] = Merchandises::getImages($id);
|
||||
$data['can_edit'] = $can_edit;
|
||||
return view('components.uploader.mini-gallery-items', $data);
|
||||
}
|
||||
|
||||
public function deleteImage(Request $request)
|
||||
{
|
||||
$id = $request->input('id');
|
||||
$index = $request->input('index');
|
||||
return Merchandises::deleteImage($id, $index);
|
||||
}
|
||||
|
||||
public function exportExcel()
|
||||
{
|
||||
return Merchandises::exportExcel();
|
||||
}
|
||||
}
|
||||
@@ -6,8 +6,6 @@ use App\Http\Controllers\Controller;
|
||||
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Repositories\Layout;
|
||||
use Carbon\Carbon;
|
||||
|
||||
class LoginController extends Controller
|
||||
{
|
||||
@@ -22,25 +20,11 @@ class LoginController extends Controller
|
||||
|
||||
public function showLoginForm()
|
||||
{
|
||||
$data = \App\Repositories\Config::init();
|
||||
return view('auth.login', $data);
|
||||
return view('Shop.auth.login', $data);
|
||||
}
|
||||
|
||||
public function authenticated(Request $request, $user)
|
||||
{
|
||||
$request->session()->forget('password_expired_id');
|
||||
|
||||
if ($user->passwordSecurity->password_expiry_days > 0) {
|
||||
$password_updated_at = $user->passwordSecurity->password_updated_at;
|
||||
$password_expiry_days = $user->passwordSecurity->password_expiry_days;
|
||||
$password_expiry_at = Carbon::parse($password_updated_at)->addDays($password_expiry_days);
|
||||
if ($password_expiry_at->lessThan(Carbon::now())) {
|
||||
$request->session()->put('password_expired_id', $user->id);
|
||||
auth()->logout();
|
||||
return redirect('/reset-password')->with('message', "Your password is expired. You need to change your password.");
|
||||
}
|
||||
}
|
||||
|
||||
return redirect()->intended($this->redirectPath());
|
||||
}
|
||||
|
||||
|
||||
24
app/Http/Controllers/Shop/Auth/ForgotPasswordController.php
Normal file
24
app/Http/Controllers/Shop/Auth/ForgotPasswordController.php
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Shop\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Contracts\Foundation\Application;
|
||||
use Illuminate\Contracts\View\Factory;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
|
||||
|
||||
class ForgotPasswordController extends Controller
|
||||
{
|
||||
use SendsPasswordResetEmails;
|
||||
|
||||
/**
|
||||
* Get password request form view.
|
||||
*
|
||||
* @return Application|Factory|View
|
||||
*/
|
||||
public function showLinkRequestForm()
|
||||
{
|
||||
return view('boilerplate::auth.passwords.email');
|
||||
}
|
||||
}
|
||||
@@ -40,49 +40,43 @@ class LoginController extends Controller
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('customer')->except('logout');
|
||||
// $this->middleware('guest')->except('logout');
|
||||
}
|
||||
|
||||
public function showLoginForm()
|
||||
{
|
||||
$data['url'] = route('Shop.Auth.login.post');
|
||||
return view('Shop.Auth.login', $data);
|
||||
$data['url'] = route('Shop.login.post');
|
||||
return view('Shop.auth.login', $data);
|
||||
}
|
||||
|
||||
protected function guard()
|
||||
{
|
||||
return Auth::guard('customer');
|
||||
return Auth::guard('guest');
|
||||
}
|
||||
|
||||
public function login(Request $request)
|
||||
{
|
||||
$this->validate($request, [
|
||||
'username' => 'required|email',
|
||||
'password' => 'required|min:6'
|
||||
'password' => 'required|min:8'
|
||||
]);
|
||||
|
||||
if (Auth::guard('customer')->attempt(['username' => $request->username, 'password' => $request->password], $request->get('remember'))) {
|
||||
return redirect()->intended(route('Conferencing.event'));
|
||||
if (Auth::guard('guest')->attempt(['username' => $request->username, 'password' => $request->password], $request->get('remember'))) {
|
||||
return redirect()->intended(route('home'));
|
||||
}
|
||||
return back()->withInput($request->only('username', 'remember'));
|
||||
}
|
||||
|
||||
public function logout(Request $request)
|
||||
{
|
||||
|
||||
// Get the session key for this user
|
||||
$sessionKey = $this->guard()->getName();
|
||||
|
||||
$this->guard()->logout();
|
||||
|
||||
// Delete single session key (just for this user)
|
||||
$request->session()->forget($sessionKey);
|
||||
|
||||
return redirect()->route('home');
|
||||
}
|
||||
|
||||
public function username()
|
||||
{
|
||||
return 'username';
|
||||
return 'email';
|
||||
}
|
||||
}
|
||||
|
||||
161
app/Http/Controllers/Shop/Auth/RegisterController.php
Normal file
161
app/Http/Controllers/Shop/Auth/RegisterController.php
Normal file
@@ -0,0 +1,161 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Shop\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Contracts\Foundation\Application;
|
||||
use Illuminate\Contracts\View\Factory;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Foundation\Auth\EmailVerificationRequest;
|
||||
use Illuminate\Foundation\Auth\RegistersUsers;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Routing\Redirector;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Sebastienheyd\Boilerplate\Rules\Password;
|
||||
|
||||
class RegisterController extends Controller
|
||||
{
|
||||
use RegistersUsers;
|
||||
|
||||
/**
|
||||
* Where to redirect users after registration.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $redirectTo;
|
||||
|
||||
/**
|
||||
* Is registering the first user ?
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
protected $firstUser;
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$userModel = config('auth.providers.users.model');
|
||||
$this->firstUser = $userModel::whereRoleIs('admin')->count() === 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return route where to redirect after login success.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function redirectTo()
|
||||
{
|
||||
return route(config('boilerplate.app.redirectTo', 'boilerplate.dashboard'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a validator for an incoming registration request.
|
||||
*
|
||||
* @param array $data
|
||||
* @return \Illuminate\Contracts\Validation\Validator
|
||||
*/
|
||||
protected function validator(array $data)
|
||||
{
|
||||
return Validator::make($data, [
|
||||
'last_name' => 'required|max:255',
|
||||
'first_name' => 'required|max:255',
|
||||
'email' => 'required|email|max:255|unique:users,email,NULL,id,deleted_at,NULL',
|
||||
'password' => ['required', 'confirmed', new Password()],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the application registration form.
|
||||
*
|
||||
* @return Application|Factory|View
|
||||
*/
|
||||
public function showRegistrationForm()
|
||||
{
|
||||
if (! $this->firstUser && ! config('boilerplate.auth.register')) {
|
||||
abort('404');
|
||||
}
|
||||
|
||||
return view('boilerplate::auth.register', ['firstUser' => $this->firstUser]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new user instance after a valid registration.
|
||||
*
|
||||
* @param array $data
|
||||
* @return mixed
|
||||
*/
|
||||
protected function create(array $data)
|
||||
{
|
||||
if (! $this->firstUser && ! config('boilerplate.auth.register')) {
|
||||
abort('404');
|
||||
}
|
||||
|
||||
$userModel = config('auth.providers.users.model');
|
||||
$roleModel = config('laratrust.models.role');
|
||||
|
||||
$user = $userModel::withTrashed()->updateOrCreate(['email' => $data['email']], [
|
||||
'active' => true,
|
||||
'first_name' => $data['first_name'],
|
||||
'last_name' => $data['last_name'],
|
||||
'email' => $data['email'],
|
||||
'password' => bcrypt($data['password']),
|
||||
'last_login' => Carbon::now()->toDateTimeString(),
|
||||
]);
|
||||
|
||||
if ($this->firstUser) {
|
||||
$admin = $roleModel::whereName('admin')->first();
|
||||
$user->attachRole($admin);
|
||||
} else {
|
||||
$user->restore();
|
||||
$role = $roleModel::whereName(config('boilerplate.auth.register_role'))->first();
|
||||
$user->roles()->sync([$role->id]);
|
||||
}
|
||||
|
||||
return $user;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show message to verify e-mail.
|
||||
*
|
||||
* @return Application|Factory|View
|
||||
*/
|
||||
public function emailVerify()
|
||||
{
|
||||
if (Auth::user()->hasVerifiedEmail()) {
|
||||
return redirect(route(config('boilerplate.app.redirectTo', 'boilerplate.dashboard')));
|
||||
}
|
||||
|
||||
return view('boilerplate::auth.verify-email');
|
||||
}
|
||||
|
||||
/**
|
||||
* If e-mail has been verified, redirect to the given route.
|
||||
*
|
||||
* @param EmailVerificationRequest $request
|
||||
* @return Application|RedirectResponse|Redirector
|
||||
*/
|
||||
public function emailVerifyRequest(EmailVerificationRequest $request)
|
||||
{
|
||||
$request->fulfill();
|
||||
|
||||
return redirect(route(config('boilerplate.app.redirectTo', 'boilerplate.dashboard')));
|
||||
}
|
||||
|
||||
/**
|
||||
* Send verification e-mail.
|
||||
*
|
||||
* @param Request $request
|
||||
* @return RedirectResponse
|
||||
*/
|
||||
public function emailSendVerification(Request $request)
|
||||
{
|
||||
$request->user()->sendEmailVerificationNotification();
|
||||
|
||||
return back()->with('message', 'Verification link sent!');
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,8 @@ use App\Http\Controllers\Controller;
|
||||
|
||||
use App\Repositories\Core\User\ShopCart;
|
||||
use App\Repositories\Shop\Offers;
|
||||
use App\Repositories\Shop\Orders;
|
||||
|
||||
|
||||
class BasketController extends Controller
|
||||
{
|
||||
@@ -52,6 +54,12 @@ class BasketController extends Controller
|
||||
return ShopCart::count();
|
||||
}
|
||||
|
||||
public function getSummary()
|
||||
{
|
||||
$data = ShopCart::getSummary();
|
||||
return response()->json(['data' => $data, 'code' => '200']);
|
||||
}
|
||||
|
||||
public function order(Request $request)
|
||||
{
|
||||
ShopCart::clear();
|
||||
@@ -60,8 +68,6 @@ class BasketController extends Controller
|
||||
$data['user_id'] = Users::getId();
|
||||
Orders::newOrder($data);
|
||||
return response()->json(['code' => '200']);
|
||||
|
||||
// return redirect()->route('ThirdParty.select');
|
||||
}
|
||||
|
||||
public function clearBasket()
|
||||
|
||||
13
app/Http/Controllers/Shop/Controller.php
Normal file
13
app/Http/Controllers/Shop/Controller.php
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Commercial;
|
||||
|
||||
use App\Http\Controllers\Controller as ParentController;
|
||||
|
||||
class Controller extends ParentController
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
// $this->middleware('auth:guest');
|
||||
}
|
||||
}
|
||||
@@ -6,19 +6,11 @@ use Illuminate\Http\Request;
|
||||
use App\Http\Controllers\Controller;
|
||||
|
||||
use App\Repositories\Shop\Articles;
|
||||
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
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
// $this->middleware('auth');
|
||||
}
|
||||
|
||||
public function index(Request $request)
|
||||
{
|
||||
$input = $request->input();
|
||||
|
||||
@@ -9,18 +9,24 @@ class Botanic
|
||||
{
|
||||
public function make(Builder $menu)
|
||||
{
|
||||
$menu->add('Botanique', [ 'permission' => 'backend_access', 'icon' => 'leaf' ])
|
||||
$menu->add('Botanique', ['icon' => 'leaf' ])
|
||||
->id('botanic')
|
||||
->activeIfRoute('botanic')
|
||||
->order(5);
|
||||
|
||||
$menu->addTo('botanic', 'Familles', [ 'route' => 'Admin.Botanic.Families.index', 'permission' => 'backend_access' ])
|
||||
->activeIfRoute(['Admin.Botanic.Families.*'])->order(1);
|
||||
$menu->addTo('botanic', 'Genres', [ 'route' => 'Admin.Botanic.Genres.index', 'permission' => 'backend_access' ])
|
||||
->activeIfRoute(['Admin.Botanic.Genres.*'])->order(2);
|
||||
$menu->addTo('botanic', 'Espèces', [ 'route' => 'Admin.Botanic.Species.index', 'permission' => 'backend_access' ])
|
||||
->activeIfRoute(['Admin.Botanic.Species.*'])->order(3);
|
||||
$menu->addTo('botanic', 'Variétés', [ 'route' => 'Admin.Botanic.Varieties.index', 'permission' => 'backend_access' ])
|
||||
->activeIfRoute(['Admin.Botanic.Varieties.*'])->order(4);
|
||||
$menu->addTo('botanic', 'Familles', [
|
||||
'route' => 'Admin.Botanic.Families.index',
|
||||
])->activeIfRoute(['Admin.Botanic.Families.*'])->order(1);
|
||||
|
||||
$menu->addTo('botanic', 'Genres', [
|
||||
'route' => 'Admin.Botanic.Genres.index',
|
||||
])->activeIfRoute(['Admin.Botanic.Genres.*'])->order(2);
|
||||
|
||||
$menu->addTo('botanic', 'Espèces', [
|
||||
'route' => 'Admin.Botanic.Species.index',
|
||||
])->activeIfRoute(['Admin.Botanic.Species.*'])->order(3);
|
||||
|
||||
$menu->addTo('botanic', 'Variétés', [
|
||||
'route' => 'Admin.Botanic.Varieties.index',
|
||||
])->activeIfRoute(['Admin.Botanic.Varieties.*'])->order(4);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,15 +8,12 @@ class Customers
|
||||
{
|
||||
public function make(Builder $menu)
|
||||
{
|
||||
$menu->add('Clients finaux', [ 'permission' => 'backend_access', 'icon' => 'address-card' ])
|
||||
$menu->add('Clients finaux', ['icon' => 'address-card' ])
|
||||
->id('customers')
|
||||
->activeIfRoute('customers')
|
||||
->order(4);
|
||||
|
||||
$menu->addTo('customers', __('customer.customers.name'), [
|
||||
'route' => 'Admin.Shop.Customers.index',
|
||||
'permission' => 'backend_access',
|
||||
])
|
||||
->activeIfRoute(['Admin.Shop.Customers.*'])->order(1);
|
||||
])->activeIfRoute(['Admin.Shop.Customers.*'])->order(1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,24 +8,16 @@ class Deliveries
|
||||
{
|
||||
public function make(Builder $menu)
|
||||
{
|
||||
$menu->add('Modes de vente', [
|
||||
'permission' => 'backend_access',
|
||||
'icon' => 'address-card'
|
||||
])
|
||||
$menu->add('Modes de vente', ['icon' => 'store'])
|
||||
->id('sales_mode')
|
||||
->activeIfRoute('sales_mode')
|
||||
->order(3);
|
||||
|
||||
$menu->addTo('sales_mode', __('shop.sale_channels.name'), [
|
||||
'route' => 'Admin.Shop.SaleChannels.index',
|
||||
'permission' => 'backend_access',
|
||||
])
|
||||
->activeIfRoute(['Admin.Shop.SaleChannels.*'])->order(1);
|
||||
])->activeIfRoute(['Admin.Shop.SaleChannels.*'])->order(1);
|
||||
|
||||
$menu->addTo('sales_mode', __('shop.deliveries.title'), [
|
||||
'route' => 'Admin.Shop.Deliveries.index',
|
||||
'permission' => 'backend_access',
|
||||
])
|
||||
->activeIfRoute(['Admin.Shop.Deliveries.*'])->order(1);
|
||||
])->activeIfRoute(['Admin.Shop.Deliveries.*'])->order(1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,18 +8,24 @@ class Orders
|
||||
{
|
||||
public function make(Builder $menu)
|
||||
{
|
||||
$menu->add('Commandes', [ 'permission' => 'backend_access', 'icon' => 'shopping-basket' ])
|
||||
$menu->add('Commandes', ['icon' => 'shopping-basket'])
|
||||
->id('orders')
|
||||
->activeIfRoute('orders')
|
||||
->order(1);
|
||||
|
||||
$menu->addTo('orders', 'Commandes', [ 'route' => 'Admin.Shop.Orders.index', 'permission' => 'backend_access' ])
|
||||
->activeIfRoute(['Admin.Shop.Orders.*'])->order(1);
|
||||
$menu->addTo('orders', 'Factures', [ 'route' => 'Admin.Shop.Invoices.index', 'permission' => 'backend_access' ])
|
||||
->activeIfRoute(['Admin.Shop.Invoices.*'])->order(2);
|
||||
$menu->addTo('orders', 'Avoirs', [ 'route' => 'Admin.Shop.Invoices.index', 'permission' => 'backend_access' ])
|
||||
->activeIfRoute(['Admin.Shop.Invoices.*'])->order(3);
|
||||
$menu->addTo('orders', 'Bons de livraison', [ 'route' => 'Admin.Shop.Invoices.index', 'permission' => 'backend_access' ])
|
||||
->activeIfRoute(['Admin.Shop.Invoices.*'])->order(4);
|
||||
$menu->addTo('orders', 'Commandes', [
|
||||
'route' => 'Admin.Shop.Orders.index',
|
||||
])->activeIfRoute(['Admin.Shop.Orders.*'])->order(1);
|
||||
|
||||
$menu->addTo('orders', 'Factures', [
|
||||
'route' => 'Admin.Shop.Invoices.index',
|
||||
])->activeIfRoute(['Admin.Shop.Invoices.*'])->order(2);
|
||||
|
||||
$menu->addTo('orders', 'Avoirs', [
|
||||
'route' => 'Admin.Shop.Invoices.index',
|
||||
])->activeIfRoute(['Admin.Shop.Invoices.*'])->order(3);
|
||||
|
||||
$menu->addTo('orders', 'Bons de livraison', [
|
||||
'route' => 'Admin.Shop.Invoices.index',
|
||||
])->activeIfRoute(['Admin.Shop.Invoices.*'])->order(4);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,43 +8,57 @@ class Shop
|
||||
{
|
||||
public function make(Builder $menu)
|
||||
{
|
||||
$menu->add('En vente', [ 'permission' => 'backend_access', 'icon' => 'store' ])
|
||||
$menu->add('En vente', ['icon' => 'shopping-cart' ])
|
||||
->id('shop')
|
||||
->activeIfRoute('shop')
|
||||
->order(2);
|
||||
|
||||
$menu->addTo('shop', 'Articles', [ 'route' => 'Admin.Shop.Articles.index', 'permission' => 'backend_access' ])
|
||||
->activeIfRoute(['Admin.Shop.Articles.*'])->order(1);
|
||||
$menu->addTo('shop', 'Déclinaisons', [ 'route' => 'Admin.Shop.Variations.index', 'permission' => 'backend_access' ])
|
||||
->activeIfRoute(['Admin.Shop.Variations.*'])->order(2);
|
||||
$menu->addTo('shop', 'Tarifs', [ 'route' => 'Admin.Shop.Tariffs.index', 'permission' => 'backend_access' ])
|
||||
->activeIfRoute(['Admin.Shop.Tariffs.*'])->order(3);
|
||||
$menu->addTo('shop', 'Offres', [ 'route' => 'Admin.Shop.Offers.index', 'permission' => 'backend_access' ])
|
||||
->activeIfRoute(['Admin.Shop.Offers.*'])->order(4);
|
||||
$menu->addTo('shop', 'Articles', [
|
||||
'route' => 'Admin.Shop.Articles.index',
|
||||
])->activeIfRoute(['Admin.Shop.Articles.*'])->order(1);
|
||||
|
||||
$menu->addTo('shop', 'Déclinaisons', [
|
||||
'route' => 'Admin.Shop.Variations.index',
|
||||
])->activeIfRoute(['Admin.Shop.Variations.*'])->order(2);
|
||||
|
||||
$menu->addTo('shop', 'Tarifs', [
|
||||
'route' => 'Admin.Shop.Tariffs.index',
|
||||
])->activeIfRoute(['Admin.Shop.Tariffs.*'])->order(3);
|
||||
|
||||
$menu->addTo('shop', 'Offres', [
|
||||
'route' => 'Admin.Shop.Offers.index',
|
||||
])->activeIfRoute(['Admin.Shop.Offers.*'])->order(4);
|
||||
|
||||
$menu->addTo('shop', 'Rayons', [ 'route' => 'Admin.Shop.Categories.index', 'permission' => 'backend_access' ])
|
||||
->activeIfRoute(['Admin.Shop.Categories.*'])->order(6);
|
||||
$menu->addTo('shop', 'Rayons', [
|
||||
'route' => 'Admin.Shop.Categories.index',
|
||||
])->activeIfRoute(['Admin.Shop.Categories.*'])->order(6);
|
||||
|
||||
$menu->addTo('shop', 'Tags', [ 'route' => 'Admin.Shop.Tags.index', 'permission' => 'backend_access' ])
|
||||
->activeIfRoute(['Admin.Shop.Tags.*'])->order(8);
|
||||
$menu->addTo('shop', 'Tags', [
|
||||
'route' => 'Admin.Shop.Tags.index',
|
||||
])->activeIfRoute(['Admin.Shop.Tags.*'])->order(8);
|
||||
|
||||
$menu->addTo('shop', 'Groupes de tags', [ 'route' => 'Admin.Shop.TagGroups.index', 'permission' => 'backend_access' ])
|
||||
->activeIfRoute(['Admin.Shop.TagGroups.*'])->order(8);
|
||||
$menu->addTo('shop', 'Groupes de tags', [
|
||||
'route' => 'Admin.Shop.TagGroups.index',
|
||||
])->activeIfRoute(['Admin.Shop.TagGroups.*'])->order(8);
|
||||
|
||||
$menu->addTo('shop', 'Natures d\'articles', [ 'route' => 'Admin.Shop.ArticleNatures.index', 'permission' => 'backend_access' ])
|
||||
->activeIfRoute(['Admin.Shop.ArticleNatures.*'])->order(9);
|
||||
$menu->addTo('shop', 'Natures d\'articles', [
|
||||
'route' => 'Admin.Shop.ArticleNatures.index',
|
||||
])->activeIfRoute(['Admin.Shop.ArticleNatures.*'])->order(9);
|
||||
|
||||
$menu->addTo('shop', 'Packages', [ 'route' => 'Admin.Shop.Packages.index', 'permission' => 'backend_access' ])
|
||||
->activeIfRoute(['Admin.Shop.Packages.*'])->order(12);
|
||||
$menu->addTo('shop', 'Packages', [
|
||||
'route' => 'Admin.Shop.Packages.index',
|
||||
])->activeIfRoute(['Admin.Shop.Packages.*'])->order(12);
|
||||
|
||||
$menu->addTo('shop', 'Unités de tarifs', [ 'route' => 'Admin.Shop.TariffUnities.index', 'permission' => 'backend_access' ])
|
||||
->activeIfRoute(['Admin.Shop.TariffUnities.*'])->order(13);
|
||||
$menu->addTo('shop', 'Unités de tarifs', [
|
||||
'route' => 'Admin.Shop.TariffUnities.index',
|
||||
])->activeIfRoute(['Admin.Shop.TariffUnities.*'])->order(13);
|
||||
|
||||
$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);
|
||||
$menu->addTo('shop', 'Unités', [
|
||||
'route' => 'Admin.Shop.Unities.index',
|
||||
])->activeIfRoute(['Admin.Shop.Unities.*'])->order(14);
|
||||
|
||||
$menu->addTo('shop', 'Accueil', [
|
||||
'route' => 'Admin.Shop.Homepages.index',
|
||||
])->activeIfRoute(['Admin.Shop.Homepages.*'])->order(14);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,22 +2,15 @@
|
||||
|
||||
namespace App\Models\Shop;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
use Spatie\MediaLibrary\HasMedia;
|
||||
use Spatie\MediaLibrary\InteractsWithMedia;
|
||||
use Spatie\MediaLibrary\MediaCollections\Models\Media;
|
||||
|
||||
// use Rinvex\Categories\Traits\Categorizable;
|
||||
use Cesargb\Database\Support\CascadeDelete;
|
||||
use Rinvex\Tags\Traits\Taggable;
|
||||
use Wildside\Userstamps\Userstamps;
|
||||
|
||||
// use Kalnoy\Nestedset\NodeTrait;
|
||||
|
||||
use Rinvex\Categories\Models\Category as parentCategory;
|
||||
use Kalnoy\Nestedset\NestedSet;
|
||||
|
||||
use App\Repositories\Shop\SaleChannels;
|
||||
|
||||
class Category extends parentCategory
|
||||
{
|
||||
use CascadeDelete, Taggable, Userstamps;
|
||||
@@ -72,4 +65,12 @@ class Category extends parentCategory
|
||||
{
|
||||
return $query->where('id', '<>', 1);
|
||||
}
|
||||
|
||||
public function scopeHasAvailableOffers($query, $sale_channel_id = false)
|
||||
{
|
||||
$sale_channel_id = $sale_channel_id ? $sale_channel_id : SaleChannels::getDefaultID();
|
||||
return $query->whereHas('articles', function ($query) use ($sale_channel_id) {
|
||||
$query->WithAvailableOffers($sale_channel_id);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,4 +7,6 @@ use Illuminate\Database\Eloquent\Model;
|
||||
class Homepage extends Model
|
||||
{
|
||||
protected $guarded = ['id'];
|
||||
protected $table = 'shop_homepages';
|
||||
|
||||
}
|
||||
|
||||
@@ -33,9 +33,10 @@ class Categories
|
||||
return self::getModel()->defaultOrder()->get()->toTree();
|
||||
}
|
||||
|
||||
public static function getCategoryTreeVisibles()
|
||||
public static function getCategoryTreeVisibles($sale_channel_id = false)
|
||||
{
|
||||
return self::getModel()->defaultOrder()->where('visible', 1)->get()->toTree();
|
||||
// return self::getModel()->defaultOrder()->visible()->hasAvailableOffers($sale_channel_id)->get()->toTree();
|
||||
return self::getModel()->defaultOrder()->visible()->get()->toTree();
|
||||
}
|
||||
|
||||
public static function getChildren($data, $withFolder = false)
|
||||
|
||||
@@ -19,6 +19,15 @@ class ShopCart
|
||||
];
|
||||
}
|
||||
|
||||
public static function getSummary()
|
||||
{
|
||||
return [
|
||||
'count' => self::count(),
|
||||
'quantity' => self::getTotalQuantity(),
|
||||
'total' => self::getTotal(),
|
||||
];
|
||||
}
|
||||
|
||||
public static function remove($id)
|
||||
{
|
||||
return self::get()->remove($id);
|
||||
|
||||
@@ -486,5 +486,4 @@ class Articles
|
||||
{
|
||||
return self::update(['homepage' => $homepage], $id);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ trait Imageable
|
||||
|
||||
public static function getPreviewSrc($image)
|
||||
{
|
||||
return $image ? Medias::getPreviewSrc($image) : null;
|
||||
return $image ? Medias::getPreviewSrc($image) : '/img/visuel-non-disponible.jpg';
|
||||
}
|
||||
|
||||
public static function getImage($image)
|
||||
@@ -43,7 +43,7 @@ trait Imageable
|
||||
|
||||
public static function getImageSrc($image)
|
||||
{
|
||||
return $image ? Medias::getImageSrc($image) : null;
|
||||
return $image ? Medias::getImageSrc($image) : '/img/visuel-non-disponible.jpg';
|
||||
}
|
||||
|
||||
public static function deleteImage($id, $index)
|
||||
|
||||
Reference in New Issue
Block a user