Update (all): fix php formatting using laravel pint, fix blade using shufo

This commit is contained in:
2023-07-25 22:18:01 +08:00
parent 6adc27076d
commit 82353c1ecd
37 changed files with 536 additions and 480 deletions

View File

@@ -1,5 +1,4 @@
<?php
require 'string_helper.php';
require 'geo_helper.php';

View File

@@ -5,7 +5,6 @@
* A better function to check if a value is empty or null. Strings, arrays, and Objects are supported.
*
* @param mixed $value
* @return bool
*/
function is_empty($value): bool
{

View File

@@ -4,9 +4,6 @@
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class DashboardController extends Controller
{
/**

View File

@@ -3,9 +3,8 @@
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Hash;
use App\Http\Requests\ProfileUpdateRequest;
use Illuminate\Support\Facades\Hash;
class ProfileController extends Controller
{

View File

@@ -3,7 +3,6 @@
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\User;
class UserController extends Controller

View File

@@ -3,8 +3,8 @@
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use App\Models\User;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
@@ -44,7 +44,6 @@ public function __construct()
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
@@ -59,7 +58,6 @@ protected function validator(array $data)
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return \App\Models\User
*/
protected function create(array $data)

View File

@@ -3,32 +3,27 @@
namespace App\Http\Controllers\Front;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Stevebauman\Location\Facades\Location;
use App\Models\Category;
use App\Models\CountryLocale;
use Illuminate\Http\Request;
class HomeController extends Controller
{
public function index(Request $request)
{
return redirect()->route('home.country', ['country' => 'my']);
return redirect()->route('home.country', ['country' => 'my']);
}
public function country(Request $request, $country)
{
$country = CountryLocale::where('slug', $country)->first();
$country = CountryLocale::where('slug', $country)->first();
if (!is_null($country))
{
$categories = Category::where('country_locale_id', $country->id)->get();
if (! is_null($country)) {
$categories = Category::where('country_locale_id', $country->id)->get();
return view('front.country', ['categories' => $categories, 'country' => $country]);
}
return view('front.country', ['categories' => $categories, 'country' => $country]);
}
return redirect()->route('home.country', ['country' => 'my']);
return redirect()->route('home.country', ['country' => 'my']);
}
}

View File

@@ -2,9 +2,9 @@
namespace App\Http\Requests;
use Illuminate\Validation\Rule;
use Illuminate\Support\Facades\Auth;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Auth;
use Illuminate\Validation\Rule;
class ProfileUpdateRequest extends FormRequest
{

View File

@@ -26,39 +26,37 @@
* @property string|null $deleted_at
* @property Carbon|null $created_at
* @property Carbon|null $updated_at
*
* @property CountryLocale $country_locale
*
* @package App\Models
*/
class Category extends Model
{
use SoftDeletes;
protected $table = 'categories';
use SoftDeletes;
protected $casts = [
'country_locale_id' => 'int',
'enabled' => 'bool',
'is_top' => 'bool',
'_lft' => 'int',
'_rgt' => 'int',
'parent_id' => 'int'
];
protected $table = 'categories';
protected $fillable = [
'country_locale_id',
'name',
'short_name',
'slug',
'enabled',
'is_top',
'_lft',
'_rgt',
'parent_id'
];
protected $casts = [
'country_locale_id' => 'int',
'enabled' => 'bool',
'is_top' => 'bool',
'_lft' => 'int',
'_rgt' => 'int',
'parent_id' => 'int',
];
public function country_locale()
{
return $this->belongsTo(CountryLocale::class);
}
protected $fillable = [
'country_locale_id',
'name',
'short_name',
'slug',
'enabled',
'is_top',
'_lft',
'_rgt',
'parent_id',
];
public function country_locale()
{
return $this->belongsTo(CountryLocale::class);
}
}

View File

@@ -21,22 +21,21 @@
* @property string|null $deleted_at
* @property Carbon|null $created_at
* @property Carbon|null $updated_at
*
* @package App\Models
*/
class CountryLocale extends Model
{
use SoftDeletes;
protected $table = 'country_locales';
use SoftDeletes;
protected $casts = [
'enabled' => 'bool'
];
protected $table = 'country_locales';
protected $fillable = [
'name',
'slug',
'i18n',
'enabled'
];
protected $casts = [
'enabled' => 'bool',
];
protected $fillable = [
'name',
'slug',
'i18n',
'enabled',
];
}

View File

@@ -20,7 +20,7 @@
},
"require-dev": {
"fakerphp/faker": "^1.9.1",
"laravel/pint": "^1.0",
"laravel/pint": "^1.10",
"laravel/sail": "^1.18",
"laraveldaily/larastarters": "^2.3",
"mockery/mockery": "^1.4.4",

2
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "7c7dee8e0b413eb119aa5455e2d5a6ce",
"content-hash": "d4622e7e11ee1dc87e72a4ec06a255f9",
"packages": [
{
"name": "artesaos/seotools",

View File

@@ -489,18 +489,18 @@
|
*/
// 'connections' => [
// 'read_only_external' => [
// 'parent' => \App\Models\ReadOnlyModel::class,
// 'connection' => true,
// 'users' => [
// 'connection' => false,
// ],
// 'my_other_database' => [
// 'password_resets' => [
// 'connection' => false,
// ]
// ]
// ],
// ],
// 'connections' => [
// 'read_only_external' => [
// 'parent' => \App\Models\ReadOnlyModel::class,
// 'connection' => true,
// 'users' => [
// 'connection' => false,
// ],
// 'my_other_database' => [
// 'password_resets' => [
// 'connection' => false,
// ]
// ]
// ],
// ],
];

View File

@@ -1,7 +1,7 @@
<?php
return [
'app_version' => '1.0.0',
'app_version' => '1.0.0',
'dev_default_ip' => env('DEV_DEFAULT_IP','127.0.0.1'),
'dev_default_ip' => env('DEV_DEFAULT_IP', '127.0.0.1'),
];

View File

@@ -8,25 +8,25 @@
/*
* The default configurations to be used by the meta generator.
*/
'defaults' => [
'title' => "It's Over 9000!", // set false to total remove
'titleBefore' => false, // Put defaults.title before page title, like 'It's Over 9000! - Dashboard'
'description' => 'For those who helped create the Genki Dama', // set false to total remove
'separator' => ' - ',
'keywords' => [],
'canonical' => false, // Set to null or 'full' to use Url::full(), set to 'current' to use Url::current(), set false to total remove
'robots' => false, // Set to 'all', 'none' or any combination of index/noindex and follow/nofollow
'defaults' => [
'title' => "It's Over 9000!", // set false to total remove
'titleBefore' => false, // Put defaults.title before page title, like 'It's Over 9000! - Dashboard'
'description' => 'For those who helped create the Genki Dama', // set false to total remove
'separator' => ' - ',
'keywords' => [],
'canonical' => false, // Set to null or 'full' to use Url::full(), set to 'current' to use Url::current(), set false to total remove
'robots' => false, // Set to 'all', 'none' or any combination of index/noindex and follow/nofollow
],
/*
* Webmaster tags are always added.
*/
'webmaster_tags' => [
'google' => null,
'bing' => null,
'alexa' => null,
'google' => null,
'bing' => null,
'alexa' => null,
'pinterest' => null,
'yandex' => null,
'norton' => null,
'yandex' => null,
'norton' => null,
],
'add_notranslate_class' => false,
@@ -36,12 +36,12 @@
* The default configurations to be used by the opengraph generator.
*/
'defaults' => [
'title' => 'Over 9000 Thousand!', // set false to total remove
'title' => 'Over 9000 Thousand!', // set false to total remove
'description' => 'For those who helped create the Genki Dama', // set false to total remove
'url' => false, // Set null for using Url::current(), set false to total remove
'type' => false,
'site_name' => false,
'images' => [],
'url' => false, // Set null for using Url::current(), set false to total remove
'type' => false,
'site_name' => false,
'images' => [],
],
],
'twitter' => [
@@ -58,11 +58,11 @@
* The default configurations to be used by the json-ld generator.
*/
'defaults' => [
'title' => 'Over 9000 Thousand!', // set false to total remove
'title' => 'Over 9000 Thousand!', // set false to total remove
'description' => 'For those who helped create the Genki Dama', // set false to total remove
'url' => false, // Set to null or 'full' to use Url::full(), set to 'current' to use Url::current(), set false to total remove
'type' => 'WebPage',
'images' => [],
'url' => false, // Set to null or 'full' to use Url::full(), set to 'current' to use Url::current(), set false to total remove
'type' => 'WebPage',
'images' => [],
],
],
];

View File

@@ -1,11 +1,10 @@
<?php
use App\Models\CountryLocale;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use App\Models\CountryLocale;
return new class extends Migration
{
/**

View File

@@ -1,7 +1,6 @@
@extends('layouts.admin.app')
@section('custom_styles')
@endsection
@section('content')

View File

@@ -28,21 +28,21 @@
</tr>
</thead>
<tbody>
@foreach($users as $user)
<tr>
<td>{{ $user->name }}</td>
<td>{{ $user->email }}</td>
<td>{{ $user->created_at }}</td>
<td>{{ $user->updated_at->diffForhumans() }}</td>
</tr>
@endforeach
@foreach ($users as $user)
<tr>
<td>{{ $user->name }}</td>
<td>{{ $user->email }}</td>
<td>{{ $user->created_at }}</td>
<td>{{ $user->updated_at->diffForhumans() }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
@if( $users->hasPages() )
<div class="card-footer pb-0">
{{ $users->links() }}
</div>
@if ($users->hasPages())
<div class="card-footer pb-0">
{{ $users->links() }}
</div>
@endif
</div>
</div>

View File

@@ -9,9 +9,11 @@
<div class="mb-3">
<label class="form-label">{{ __('Email address') }}</label>
<input type="email" name="email" value="{{ old('email') }}" class="form-control @error('email') is-invalid @enderror" placeholder="{{ __('Enter email') }}" required autofocus tabindex="1">
<input type="email" name="email" value="{{ old('email') }}"
class="form-control @error('email') is-invalid @enderror" placeholder="{{ __('Enter email') }}" required
autofocus tabindex="1">
@error('email')
<div class="invalid-feedback">{{ $message }}</div>
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
@@ -19,14 +21,15 @@
<label class="form-label">
{{ __('Password') }}
@if (Route::has('password.request'))
<span class="form-label-description">
<a href="{{ route('password.request') }}" tabindex="5">{{ __('Forgot Password?') }}</a>
</span>
<span class="form-label-description">
<a href="{{ route('password.request') }}" tabindex="5">{{ __('Forgot Password?') }}</a>
</span>
@endif
</label>
<input type="password" name="password" class="form-control @error('password') is-invalid @enderror" placeholder="{{ __('Password') }}" required tabindex="2">
<input type="password" name="password" class="form-control @error('password') is-invalid @enderror"
placeholder="{{ __('Password') }}" required tabindex="2">
@error('password')
<div class="invalid-feedback">{{ $message }}</div>
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
@@ -44,9 +47,8 @@
</form>
@if (Route::has('register'))
<div class="text-center text-muted mt-3">
{{ __("Don't have account yet?") }} <a href="{{ route('register') }}" tabindex="-1">{{ __('Sign up') }}</a>
</div>
<div class="text-center text-muted mt-3">
{{ __("Don't have account yet?") }} <a href="{{ route('register') }}" tabindex="-1">{{ __('Sign up') }}</a>
</div>
@endif
@endsection

View File

@@ -13,14 +13,16 @@
<label class="form-label">
{{ __('Password') }}
@if (Route::has('password.request'))
<span class="form-label-description">
<a href="{{ route('password.request') }}">{{ __('Forgot Password?') }}</a>
</span>
<span class="form-label-description">
<a href="{{ route('password.request') }}">{{ __('Forgot Password?') }}</a>
</span>
@endif
</label>
<input type="password" name="password" class="form-control form-control-user @error('password') is-invalid @enderror" placeholder="{{ __('Enter Password') }}">
<input type="password" name="password"
class="form-control form-control-user @error('password') is-invalid @enderror"
placeholder="{{ __('Enter Password') }}">
@error('password')
<div class="invalid-feedback">{{ $message }}</div>
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>

View File

@@ -1,11 +1,10 @@
@extends('layouts.admin.guest')
@section('content')
@if (session('status'))
<div class="alert alert-success" role="alert">
{{ session('status') }}
</div>
<div class="alert alert-success" role="alert">
{{ session('status') }}
</div>
@endif
<form class="card card-md" action="{{ route('password.email') }}" method="post" autocomplete="off">
@@ -14,13 +13,16 @@
<div class="card-body">
<h2 class="card-title text-center mb-4">{{ __('Forgot password') }}</h2>
<p class="text-muted mb-4">{{ __('Enter your email address and your password will be reset and emailed to you.') }}</p>
<p class="text-muted mb-4">
{{ __('Enter your email address and your password will be reset and emailed to you.') }}</p>
<div class="mb-3">
<label class="form-label">{{ __('Email address') }}</label>
<input type="email" name="email" value="{{ old('email') }}" class="form-control form-control-user @error('email') is-invalid @enderror" placeholder="{{ __('Enter Email Address...') }}">
<input type="email" name="email" value="{{ old('email') }}"
class="form-control form-control-user @error('email') is-invalid @enderror"
placeholder="{{ __('Enter Email Address...') }}">
@error('email')
<div class="invalid-feedback">{{ $message }}</div>
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
@@ -33,9 +35,8 @@
</form>
@if (Route::has('login'))
<div class="text-center text-muted mt-3">
{{ __('Already have account?') }} <a href="{{ route('login') }}" tabindex="-1">{{ __('Sign in') }}</a>
</div>
<div class="text-center text-muted mt-3">
{{ __('Already have account?') }} <a href="{{ route('login') }}" tabindex="-1">{{ __('Sign in') }}</a>
</div>
@endif
@endsection

View File

@@ -11,25 +11,29 @@
<div class="mb-3">
<label class="form-label">{{ __('Email address') }}</label>
<input type="email" name="email" value="{{ old('email') }}" class="form-control @error('email') is-invalid @enderror" placeholder="{{ __('Email Address') }}">
<input type="email" name="email" value="{{ old('email') }}"
class="form-control @error('email') is-invalid @enderror" placeholder="{{ __('Email Address') }}">
@error('email')
<div class="invalid-feedback">{{ $message }}</div>
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="mb-3">
<label class="form-label">{{ __('New Password') }}</label>
<input type="password" name="password" class="form-control @error('password') is-invalid @enderror" placeholder="{{ __('New Password') }}">
<input type="password" name="password" class="form-control @error('password') is-invalid @enderror"
placeholder="{{ __('New Password') }}">
@error('password')
<div class="invalid-feedback">{{ $message }}</div>
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="mb-3">
<label class="form-label">{{ __('Repeat New Password') }}</label>
<input type="password" name="password_confirmation" class="form-control @error('password_confirmation') is-invalid @enderror" placeholder="{{ __('Repeat New Password') }}">
<input type="password" name="password_confirmation"
class="form-control @error('password_confirmation') is-invalid @enderror"
placeholder="{{ __('Repeat New Password') }}">
@error('password_confirmation')
<div class="invalid-feedback">{{ $message }}</div>
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
@@ -42,8 +46,8 @@
</form>
@if (Route::has('login'))
<div class="text-center text-muted mt-3">
{{ __('Already have account?') }} <a href="{{ route('login') }}" tabindex="-1">{{ __('Sign in') }}</a>
</div>
<div class="text-center text-muted mt-3">
{{ __('Already have account?') }} <a href="{{ route('login') }}" tabindex="-1">{{ __('Sign in') }}</a>
</div>
@endif
@endsection

View File

@@ -6,10 +6,10 @@
<div class="page-header d-print-none">
<div class="row align-items-center">
<div class="col">
<!-- Page pre-title -->
<div class="page-pretitle">
{{ config('app.name') }}
</div>
<!-- Page pre-title -->
<div class="page-pretitle">
{{ config('app.name') }}
</div>
<h2 class="page-title">
{{ __('My profile') }}
</h2>
@@ -21,20 +21,22 @@
<div class="container-xl">
@if ($message = Session::get('success'))
<div class="alert alert-success alert-dismissible">
<div class="d-flex">
<div>
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon alert-icon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path d="M5 12l5 5l10 -10"></path>
</svg>
<div class="alert alert-success alert-dismissible">
<div class="d-flex">
<div>
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon alert-icon" width="24"
height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none"
stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path d="M5 12l5 5l10 -10"></path>
</svg>
</div>
<div>
{{ $message }}
</div>
</div>
<div>
{{ $message }}
</div>
</div>
<a class="btn-close" data-bs-dismiss="alert" aria-label="close"></a>
</div>
<a class="btn-close" data-bs-dismiss="alert" aria-label="close"></a>
</div>
@endif
<form action="{{ route('profile.update') }}" method="POST" class="card" autocomplete="off">
@@ -46,34 +48,39 @@
<div class="mb-3">
<label class="form-label required">{{ __('Name') }}</label>
<input type="text" name="name" class="form-control @error('name') is-invalid @enderror" placeholder="{{ __('Name') }}" value="{{ old('name', auth()->user()->name) }}" required>
<input type="text" name="name" class="form-control @error('name') is-invalid @enderror"
placeholder="{{ __('Name') }}" value="{{ old('name', auth()->user()->name) }}" required>
</div>
@error('name')
<div class="invalid-feedback">{{ $message }}</div>
<div class="invalid-feedback">{{ $message }}</div>
@enderror
<div class="mb-3">
<label class="form-label required">{{ __('Email address') }}</label>
<input type="email" name="email" class="form-control @error('email') is-invalid @enderror" placeholder="{{ __('Email') }}" value="{{ old('email', auth()->user()->email) }}" required>
<input type="email" name="email" class="form-control @error('email') is-invalid @enderror"
placeholder="{{ __('Email') }}" value="{{ old('email', auth()->user()->email) }}" required>
</div>
@error('email')
<div class="invalid-feedback">{{ $message }}</div>
<div class="invalid-feedback">{{ $message }}</div>
@enderror
<div class="mb-3">
<label class="form-label required">{{ __('New password') }}</label>
<input type="password" name="password" class="form-control @error('password') is-invalid @enderror" placeholder="{{ __('New password') }}">
<input type="password" name="password" class="form-control @error('password') is-invalid @enderror"
placeholder="{{ __('New password') }}">
</div>
@error('password')
<div class="invalid-feedback">{{ $message }}</div>
<div class="invalid-feedback">{{ $message }}</div>
@enderror
<div class="mb-3">
<label class="form-label required">{{ __('New password confirmation') }}</label>
<input type="password" name="password_confirmation" class="form-control @error('password_confirmation') is-invalid @enderror" placeholder="{{ __('New password confirmation') }}" autocomplete="new-password">
<input type="password" name="password_confirmation"
class="form-control @error('password_confirmation') is-invalid @enderror"
placeholder="{{ __('New password confirmation') }}" autocomplete="new-password">
</div>
@error('password_confirmation')
<div class="invalid-feedback">{{ $message }}</div>
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
@@ -86,5 +93,4 @@
</div>
</div>
@endsection

View File

@@ -9,30 +9,35 @@
<div class="mb-3">
<label class="form-label">{{ __('Name') }}</label>
<input type="text" name="name" class="form-control @error('name') is-invalid @enderror" placeholder="{{ __('Name') }}">
<input type="text" name="name" class="form-control @error('name') is-invalid @enderror"
placeholder="{{ __('Name') }}">
@error('name')
<div class="invalid-feedback">{{ $message }}</div>
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="mb-3">
<label class="form-label">{{ __('Email address') }}</label>
<input type="email" name="email" class="form-control @error('email') is-invalid @enderror" placeholder="{{ __('Email Address') }}">
<input type="email" name="email" class="form-control @error('email') is-invalid @enderror"
placeholder="{{ __('Email Address') }}">
@error('email')
<div class="invalid-feedback">{{ $message }}</div>
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="mb-3">
<label class="form-label">{{ __('Password') }}</label>
<input type="password" name="password" class="form-control @error('password') is-invalid @enderror" placeholder="{{ __('Password') }}">
<input type="password" name="password" class="form-control @error('password') is-invalid @enderror"
placeholder="{{ __('Password') }}">
@error('password')
<div class="invalid-feedback">{{ $message }}</div>
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="mb-3">
<label class="form-label">{{ __('Repeat Password') }}</label>
<input type="password" name="password_confirmation" class="form-control form-control-user @error('password_confirmation') is-invalid @enderror" placeholder="{{ __('Repeat Password') }}">
<input type="password" name="password_confirmation"
class="form-control form-control-user @error('password_confirmation') is-invalid @enderror"
placeholder="{{ __('Repeat Password') }}">
@error('password_confirmation')
<div class="invalid-feedback">{{ $message }}</div>
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
@@ -43,9 +48,8 @@
</form>
@if (Route::has('login'))
<div class="text-center text-muted mt-3">
{{ __('Already have account?') }} <a href="{{ route('login') }}" tabindex="-1">{{ __('Sign in') }}</a>
</div>
<div class="text-center text-muted mt-3">
{{ __('Already have account?') }} <a href="{{ route('login') }}" tabindex="-1">{{ __('Sign in') }}</a>
</div>
@endif
@endsection

View File

@@ -1,69 +1,74 @@
@extends('layouts.front.app')
@section('content')
<div class="container py-3">
<div class="row justify-content-center text-center">
<div class="col-12 col-lg-8 py-5">
<h2 class="h3 fw-bold">ProductAlert is the place to be for top rated product reviews with recommendation such as the right price, latest trend, from the best brands.</h2>
</div>
</div>
</div>
<div class="container-fluid py-4 bg-dark text-light">
<div class="container">
<h3 class="h4 fw-bold text-center mb-3">Featured Articles</h3>
<div class="row g-3 justify-content-center">
@for($i = 1; $i <= 3; $i++)
<div class="col-12 col-xl-3">
<a href="#" class="text-decoration-none">
<div class="card shadow-sm">
<img src="https://placekitten.com/400/300" alt="" class="card-img-top">
<div class="card-body">
<p class="card-text fw-bold">Here is why a kitten catches mice faster than an adult cat.</p>
<div class="d-flex justify-content-between align-items-center">
<small class="text-body-secondary">5 April 2023</small>
<small class="text-body-secondary">9 mins</small>
<div class="container py-3">
<div class="row justify-content-center text-center">
<div class="col-12 col-lg-8 py-5">
<h2 class="h3 fw-bold">ProductAlert is the place to be for top rated product reviews with recommendation such
as the right price, latest trend, from the best brands.</h2>
</div>
</div>
</div>
</a>
</div>
@endfor
</div>
</div>
</div>
<div class="container-fluid py-4">
<div class="container">
<div class="row justify-content-center">
<div class="col col-lg-9">
<h3 class="h4 fw-bold text-center mb-3">What's New</h3>
<div class="row g-3">
@for($i = 1; $i <= 12; $i++)
<div class="col-6">
<a href="#" class="text-decoration-none">
<div class="card">
<div class="row g-0">
<div class="col-md-4">
<img src="https://placekitten.com/400/300" class="img-fluid rounded-start" alt="...">
<div class="container-fluid py-4 bg-dark text-light">
<div class="container">
<h3 class="h4 fw-bold text-center mb-3">Featured Articles</h3>
<div class="row g-3 justify-content-center">
@for ($i = 1; $i <= 3; $i++)
<div class="col-12 col-xl-3">
<a href="#" class="text-decoration-none">
<div class="card shadow-sm">
<img src="https://placekitten.com/400/300" alt="" class="card-img-top">
<div class="card-body">
<p class="card-text fw-bold">Here is why a kitten catches mice faster than an adult cat.
</p>
<div class="d-flex justify-content-between align-items-center">
<small class="text-body-secondary">5 April 2023</small>
<small class="text-body-secondary">9 mins</small>
</div>
</div>
</div>
</a>
</div>
@endfor
</div>
<div class="col-md-8">
<div class="card-body">
<p class="card-title fw-bold">Here is why a kitten catches mice faster than an adult cat.</p>
<p class="card-text"><small class="text-body-secondary">5 April 2023 <span class="mx-4"></span> 3 mins</small></p>
</div>
</div>
</div>
</div>
</a>
</div>
@endfor
</div>
<div class="container-fluid py-4">
<div class="container">
<div class="row justify-content-center">
<div class="col col-lg-9">
<h3 class="h4 fw-bold text-center mb-3">What's New</h3>
<div class="row g-3">
@for ($i = 1; $i <= 12; $i++)
<div class="col-6">
<a href="#" class="text-decoration-none">
<div class="card">
<div class="row g-0">
<div class="col-md-4">
<img src="https://placekitten.com/400/300" class="img-fluid rounded-start"
alt="...">
</div>
<div class="col-md-8">
<div class="card-body">
<p class="card-title fw-bold">Here is why a kitten catches mice faster
than an adult cat.</p>
<p class="card-text"><small class="text-body-secondary">5 April 2023
<span class="mx-4"></span> 3 mins</small></p>
</div>
</div>
</div>
</div>
</a>
</div>
@endfor
</div>
<div class="text-center py-3">
<a href="#" class="btn btn-primary">All News & Updates</a>
</div>
</div>
</div>
</div>
</div>
<div class="text-center py-3">
<a href="#" class="btn btn-primary">All News & Updates</a>
</div>
</div>
</div>
</div>
</div>
@endsection

View File

@@ -14,23 +14,24 @@
@yield('custom_styles')
</head>
<body class="theme-light">
<div class="page">
<div class="sticky-top">
@include('layouts.admin.header')
@include('layouts.admin.header')
@include('layouts.admin.navigation')
@include('layouts.admin.navigation')
</div>
<div class="page-wrapper">
</div>
<div class="page-wrapper">
@yield('content')
@yield('content')
@include('layouts.admin.footer')
@include('layouts.admin.footer')
</div>
</div>
</div>
</div>
</div>
<!-- Core plugin JavaScript-->
@@ -40,4 +41,5 @@
@yield('custom_scripts')
</body>
</html>

View File

@@ -1,9 +1,9 @@
<footer class="footer footer-transparent d-print-none">
<div class="container-xl">
<div class="row text-center align-items-center flex-row-reverse">
<div class="col-lg-auto ms-lg-auto">
<ul class="list-inline list-inline-dots mb-0">
{{-- <li class="list-inline-item"><a href="https://preview.tabler.io" target="_blank" class="link-secondary" rel="noopener">Tabler Demo</a></li>
<div class="container-xl">
<div class="row text-center align-items-center flex-row-reverse">
<div class="col-lg-auto ms-lg-auto">
<ul class="list-inline list-inline-dots mb-0">
{{-- <li class="list-inline-item"><a href="https://preview.tabler.io" target="_blank" class="link-secondary" rel="noopener">Tabler Demo</a></li>
<li class="list-inline-item"><a href="https://preview.tabler.io/docs/index.html" target="_blank" class="link-secondary" rel="noopener">Tabler Doc.</a></li>
<li class="list-inline-item"><a href="https://preview.tabler.io/license.html" target="_blank" class="link-secondary" rel="noopener">Tabler License</a></li>
<li class="list-inline-item"><a href="https://github.com/tabler/tabler" target="_blank" class="link-secondary" rel="noopener">Tabler Source code</a></li>
@@ -14,22 +14,22 @@
Sponsor
</a>
</li> --}}
</ul>
</div>
<div class="col-12 col-lg-auto mt-3 mt-lg-0">
<ul class="list-inline list-inline-dots mb-0">
<li class="list-inline-item">
&copy; {{ date('Y') }}
<a href="{{ config('app.url') }}" class="link-secondary">{{ config('app.name') }}</a>
</li>
<li class="list-inline-item">
Version {{ config('platform.general.app_version') }}
</li>
<li class="list-inline-item">
Created by Charles Teh
</li>
</ul>
</div>
</ul>
</div>
<div class="col-12 col-lg-auto mt-3 mt-lg-0">
<ul class="list-inline list-inline-dots mb-0">
<li class="list-inline-item">
&copy; {{ date('Y') }}
<a href="{{ config('app.url') }}" class="link-secondary">{{ config('app.name') }}</a>
</li>
<li class="list-inline-item">
Version {{ config('platform.general.app_version') }}
</li>
<li class="list-inline-item">
Created by Charles Teh
</li>
</ul>
</div>
</div>
</div>
</div>
</footer>

View File

@@ -1,5 +1,6 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -9,6 +10,7 @@
@vite('resources/sass/app.scss')
</head>
<body class="border-top-wide border-primary d-flex flex-column">
<div class="page page-center">
@@ -26,4 +28,5 @@
@vite('resources/js/app.js')
</body>
</html>

View File

@@ -1,34 +1,37 @@
<header class="navbar navbar-expand-md navbar-light sticky-top d-print-none">
<div class="container-xl">
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar-menu">
<span class="navbar-toggler-icon"></span>
</button>
<a href="#" class="h1 navbar-brand navbar-brand-autodark d-none-navbar-horizontal pe-0 pe-md-3">
{{ config('app.name') }} CMS
</a>
<div class="navbar-nav flex-row order-md-last">
@auth
<div class="nav-item dropdown">
<a href="#" class="nav-link d-flex lh-1 text-reset p-0" data-bs-toggle="dropdown" aria-label="Open user menu">
<span class="avatar avatar-sm" style="background-image: url(https://eu.ui-avatars.com/api/?name={{ urlencode(auth()->user()->name) }})"></span>
<div class="d-none d-xl-block ps-2">
{{ auth()->user()->name ?? null }}
</div>
<div class="container-xl">
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar-menu">
<span class="navbar-toggler-icon"></span>
</button>
<a href="#" class="h1 navbar-brand navbar-brand-autodark d-none-navbar-horizontal pe-0 pe-md-3">
{{ config('app.name') }} CMS
</a>
<div class="dropdown-menu dropdown-menu-end dropdown-menu-arrow">
<a href="{{ route('profile.show') }}" class="dropdown-item">{{ __('Profile') }}</a>
<div class="dropdown-divider"></div>
<form method="POST" action="{{ route('logout') }}">
@csrf
<a href="{{ route('logout') }}" class="dropdown-item" onclick="event.preventDefault(); this.closest('form').submit();">
{{ __('Log Out') }}
</a>
</form>
</div>
</div>
@endauth
<div class="navbar-nav flex-row order-md-last">
@auth
<div class="nav-item dropdown">
<a href="#" class="nav-link d-flex lh-1 text-reset p-0" data-bs-toggle="dropdown"
aria-label="Open user menu">
<span class="avatar avatar-sm"
style="background-image: url(https://eu.ui-avatars.com/api/?name={{ urlencode(auth()->user()->name) }})"></span>
<div class="d-none d-xl-block ps-2">
{{ auth()->user()->name ?? null }}
</div>
</a>
<div class="dropdown-menu dropdown-menu-end dropdown-menu-arrow">
<a href="{{ route('profile.show') }}" class="dropdown-item">{{ __('Profile') }}</a>
<div class="dropdown-divider"></div>
<form method="POST" action="{{ route('logout') }}">
@csrf
<a href="{{ route('logout') }}" class="dropdown-item"
onclick="event.preventDefault(); this.closest('form').submit();">
{{ __('Log Out') }}
</a>
</form>
</div>
</div>
@endauth
</div>
</div>
</div>
</header>

View File

@@ -4,15 +4,18 @@
<div class="container-xl">
<ul class="navbar-nav">
<li class="nav-item @if(request()->routeIs('home')) active @endif">
<a class="nav-link" href="{{ route('home') }}" >
<span class="nav-link-icon d-md-none d-lg-inline-block"><!-- Download SVG icon from http://tabler-icons.io/i/home -->
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-door-exit" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path d="M13 12v.01"></path>
<path d="M3 21h18"></path>
<path d="M5 21v-16a2 2 0 0 1 2 -2h7.5m2.5 10.5v7.5"></path>
<path d="M14 7h7m-3 -3l3 3l-3 3"></path>
<li class="nav-item @if (request()->routeIs('home')) active @endif">
<a class="nav-link" href="{{ route('home') }}">
<span
class="nav-link-icon d-md-none d-lg-inline-block"><!-- Download SVG icon from http://tabler-icons.io/i/home -->
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-door-exit"
width="24" height="24" viewBox="0 0 24 24" stroke-width="2"
stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path d="M13 12v.01"></path>
<path d="M3 21h18"></path>
<path d="M5 21v-16a2 2 0 0 1 2 -2h7.5m2.5 10.5v7.5"></path>
<path d="M14 7h7m-3 -3l3 3l-3 3"></path>
</svg>
</span>
<span class="nav-link-title">
@@ -22,10 +25,18 @@
</li>
<li class="nav-item @if(request()->routeIs('dashboard')) active @endif">
<a class="nav-link" href="{{ route('dashboard') }}" >
<span class="nav-link-icon d-md-none d-lg-inline-block"><!-- Download SVG icon from http://tabler-icons.io/i/home -->
<svg xmlns="http://www.w3.org/2000/svg" class="icon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><polyline points="5 12 3 12 12 3 21 12 19 12" /><path d="M5 12v7a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-7" /><path d="M9 21v-6a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v6" /></svg>
<li class="nav-item @if (request()->routeIs('dashboard')) active @endif">
<a class="nav-link" href="{{ route('dashboard') }}">
<span
class="nav-link-icon d-md-none d-lg-inline-block"><!-- Download SVG icon from http://tabler-icons.io/i/home -->
<svg xmlns="http://www.w3.org/2000/svg" class="icon" width="24" height="24"
viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none"
stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<polyline points="5 12 3 12 12 3 21 12 19 12" />
<path d="M5 12v7a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-7" />
<path d="M9 21v-6a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v6" />
</svg>
</span>
<span class="nav-link-title">
{{ __('Dashboard') }}
@@ -33,10 +44,13 @@
</a>
</li>
<li class="nav-item @if(request()->routeIs('users.index')) active @endif">
<a class="nav-link" href="{{ route('users.index') }}" >
<span class="nav-link-icon d-md-none d-lg-inline-block"><!-- Download SVG icon from http://tabler-icons.io/i/file-text -->
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-users" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<li class="nav-item @if (request()->routeIs('users.index')) active @endif">
<a class="nav-link" href="{{ route('users.index') }}">
<span
class="nav-link-icon d-md-none d-lg-inline-block"><!-- Download SVG icon from http://tabler-icons.io/i/file-text -->
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-users"
width="24" height="24" viewBox="0 0 24 24" stroke-width="2"
stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<circle cx="9" cy="7" r="4"></circle>
<path d="M3 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"></path>
@@ -50,15 +64,18 @@
</a>
</li>
<li class="nav-item @if(request()->routeIs('about')) active @endif">
<a class="nav-link" href="{{ route('about') }}" >
<span class="nav-link-icon d-md-none d-lg-inline-block"><!-- Download SVG icon from http://tabler-icons.io/i/file-text -->
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-info-circle" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<circle cx="12" cy="12" r="9"></circle>
<line x1="12" y1="8" x2="12.01" y2="8"></line>
<polyline points="11 12 12 12 12 16 13 16"></polyline>
</svg>
<li class="nav-item @if (request()->routeIs('about')) active @endif">
<a class="nav-link" href="{{ route('about') }}">
<span
class="nav-link-icon d-md-none d-lg-inline-block"><!-- Download SVG icon from http://tabler-icons.io/i/file-text -->
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-info-circle"
width="24" height="24" viewBox="0 0 24 24" stroke-width="2"
stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<circle cx="12" cy="12" r="9"></circle>
<line x1="12" y1="8" x2="12.01" y2="8"></line>
<polyline points="11 12 12 12 12 16 13 16"></polyline>
</svg>
</span>
<span class="nav-link-title">
{{ __('About') }}
@@ -67,43 +84,51 @@
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#navbar-extra" data-bs-toggle="dropdown" data-bs-auto-close="outside" role="button" aria-expanded="false" >
<span class="nav-link-icon d-md-none d-lg-inline-block"><!-- Download SVG icon from http://tabler-icons.io/i/star -->
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-list-details" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<a class="nav-link dropdown-toggle" href="#navbar-extra" data-bs-toggle="dropdown"
data-bs-auto-close="outside" role="button" aria-expanded="false">
<span
class="nav-link-icon d-md-none d-lg-inline-block"><!-- Download SVG icon from http://tabler-icons.io/i/star -->
<svg xmlns="http://www.w3.org/2000/svg"
class="icon icon-tabler icon-tabler-list-details" width="24" height="24"
viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none"
stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path d="M13 5h8"></path>
<path d="M13 9h5"></path>
<path d="M13 15h8"></path>
<path d="M13 19h5"></path>
<rect x="3" y="4" width="6" height="6" rx="1"></rect>
<rect x="3" y="14" width="6" height="6" rx="1"></rect>
<rect x="3" y="4" width="6" height="6"
rx="1"></rect>
<rect x="3" y="14" width="6" height="6"
rx="1"></rect>
</svg>
</span>
<span class="nav-link-title">
Submenus
Submenus
</span>
</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="#" >
<a class="dropdown-item" href="#">
Submenu Item #1
</a>
<div class="dropend">
<a class="dropdown-item dropdown-toggle" href="#" data-bs-toggle="dropdown" data-bs-auto-close="outside" role="button" aria-expanded="false">
<a class="dropdown-item dropdown-toggle" href="#" data-bs-toggle="dropdown"
data-bs-auto-close="outside" role="button" aria-expanded="false">
Submenu Item #2
</a>
<div class="dropdown-menu">
<a href="#" class="dropdown-item">
Subsubmenu Item #1
</a>
<a href="#" class="dropdown-item">
Subsubmenu Item #2
</a>
<a href="#" class="dropdown-item">
Subsubmenu Item #3
</a>
<a href="#" class="dropdown-item">
Subsubmenu Item #1
</a>
<a href="#" class="dropdown-item">
Subsubmenu Item #2
</a>
<a href="#" class="dropdown-item">
Subsubmenu Item #3
</a>
</div>
</div>
<a class="dropdown-item" href="#" >
</div>
<a class="dropdown-item" href="#">
Submenu Item #3
</a>
</div>

View File

@@ -16,6 +16,7 @@
@include('layouts.front.header')
</head>
<body>
@include('layouts.front.navigation')
@@ -31,4 +32,5 @@
@yield('custom_scripts')
</body>
</html>

View File

@@ -1,59 +1,73 @@
<div class="container-fluid border-top">
<footer class="py-5 container">
<div class="row">
<div class="col-6 col-md-2 mb-3">
<h5>Section</h5>
<ul class="nav flex-column">
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Home</a></li>
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Features</a></li>
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Pricing</a></li>
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">FAQs</a></li>
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">About</a></li>
</ul>
</div>
<footer class="py-5 container">
<div class="row">
<div class="col-6 col-md-2 mb-3">
<h5>Section</h5>
<ul class="nav flex-column">
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Home</a></li>
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Features</a></li>
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Pricing</a>
</li>
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">FAQs</a></li>
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">About</a></li>
</ul>
</div>
<div class="col-6 col-md-2 mb-3">
<h5>Section</h5>
<ul class="nav flex-column">
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Home</a></li>
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Features</a></li>
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Pricing</a></li>
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">FAQs</a></li>
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">About</a></li>
</ul>
</div>
<div class="col-6 col-md-2 mb-3">
<h5>Section</h5>
<ul class="nav flex-column">
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Home</a></li>
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Features</a>
</li>
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Pricing</a>
</li>
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">FAQs</a></li>
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">About</a></li>
</ul>
</div>
<div class="col-6 col-md-2 mb-3">
<h5>Section</h5>
<ul class="nav flex-column">
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Home</a></li>
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Features</a></li>
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Pricing</a></li>
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">FAQs</a></li>
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">About</a></li>
</ul>
</div>
<div class="col-6 col-md-2 mb-3">
<h5>Section</h5>
<ul class="nav flex-column">
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Home</a></li>
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Features</a>
</li>
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">Pricing</a>
</li>
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">FAQs</a></li>
<li class="nav-item mb-2"><a href="#" class="nav-link p-0 text-body-secondary">About</a></li>
</ul>
</div>
<div class="col-md-5 offset-md-1 mb-3">
<form>
<h5>Subscribe to our newsletter</h5>
<p>Monthly digest of what's new and exciting from us.</p>
<div class="d-flex flex-column flex-sm-row w-100 gap-2">
<label for="newsletter1" class="visually-hidden">Email address</label>
<input id="newsletter1" type="text" class="form-control" placeholder="Email address">
<button class="btn btn-primary" type="button">Subscribe</button>
</div>
</form>
</div>
</div>
<div class="col-md-5 offset-md-1 mb-3">
<form>
<h5>Subscribe to our newsletter</h5>
<p>Monthly digest of what's new and exciting from us.</p>
<div class="d-flex flex-column flex-sm-row w-100 gap-2">
<label for="newsletter1" class="visually-hidden">Email address</label>
<input id="newsletter1" type="text" class="form-control" placeholder="Email address">
<button class="btn btn-primary" type="button">Subscribe</button>
</div>
</form>
</div>
</div>
<div class="d-flex flex-column flex-sm-row justify-content-between py-4 my-4">
<p>© {{ date('Y') }} {{ config('app.name') }}. All rights reserved.</p>
<ul class="list-unstyled d-flex">
<li class="ms-3"><a class="link-body-emphasis" href="#"><svg class="bi" width="24" height="24"><use xlink:href="#twitter"></use></svg></a></li>
<li class="ms-3"><a class="link-body-emphasis" href="#"><svg class="bi" width="24" height="24"><use xlink:href="#instagram"></use></svg></a></li>
<li class="ms-3"><a class="link-body-emphasis" href="#"><svg class="bi" width="24" height="24"><use xlink:href="#facebook"></use></svg></a></li>
</ul>
</div>
</footer>
<div class="d-flex flex-column flex-sm-row justify-content-between py-4 my-4">
<p>© {{ date('Y') }} {{ config('app.name') }}. All rights reserved.</p>
<ul class="list-unstyled d-flex">
<li class="ms-3"><a class="link-body-emphasis" href="#"><svg class="bi" width="24"
height="24">
<use xlink:href="#twitter"></use>
</svg></a></li>
<li class="ms-3"><a class="link-body-emphasis" href="#"><svg class="bi" width="24"
height="24">
<use xlink:href="#instagram"></use>
</svg></a></li>
<li class="ms-3"><a class="link-body-emphasis" href="#"><svg class="bi" width="24"
height="24">
<use xlink:href="#facebook"></use>
</svg></a></li>
</ul>
</div>
</footer>
</div>

View File

@@ -1,52 +1,55 @@
<div class="container-fluid border-bottom">
<header class="d-flex flex-wrap align-items-center justify-content-center justify-content-md-between py-3">
<div class="col-md-3 mb-2 mb-md-0">
<button class="navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasNavbar" aria-controls="offcanvasNavbar" aria-label="Toggle navigation">
<i class="h4 bi bi-list"></i>
</button>
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvasNavbar" aria-labelledby="offcanvasNavbarLabel">
<div class="offcanvas-header">
<h4 class="offcanvas-title fw-bold mb-0" id="offcanvasNavbarLabel">{{ config('app.name') }}</h4>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<ul class="navbar-nav justify-content-end flex-grow-1 pe-3">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Home</a>
</li>
@foreach ($categories as $category)
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">{{ $category->name }}</a>
</li>
@endforeach
<header class="d-flex flex-wrap align-items-center justify-content-center justify-content-md-between py-3">
<div class="col-md-3 mb-2 mb-md-0">
<button class="navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasNavbar"
aria-controls="offcanvasNavbar" aria-label="Toggle navigation">
<i class="h4 bi bi-list"></i>
</button>
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvasNavbar"
aria-labelledby="offcanvasNavbarLabel">
<div class="offcanvas-header">
<h4 class="offcanvas-title fw-bold mb-0" id="offcanvasNavbarLabel">{{ config('app.name') }}</h4>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<ul class="navbar-nav justify-content-end flex-grow-1 pe-3">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Home</a>
</li>
@foreach ($categories as $category)
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">{{ $category->name }}</a>
</li>
@endforeach
</ul>
</div>
</div>
<a href="/" class="d-inline-flex link-body-emphasis text-decoration-none">
<h1 class="h4 mb-0 fw-bold">{{ config('app.name') }}</h1>
</a>
</div>
<ul class="nav col-12 col-md-auto mb-2 justify-content-center mb-md-0">
@foreach ($categories as $category)
@if ($category->is_top)
<li><a href="#" class="nav-link px-2 link-secondary">{{ $category->short_name }}</a></li>
@endif
@endforeach
</ul>
</div>
</div>
<a href="/" class="d-inline-flex link-body-emphasis text-decoration-none">
<h1 class="h4 mb-0 fw-bold">{{ config('app.name') }}</h1>
</a>
</div>
<ul class="nav col-12 col-md-auto mb-2 justify-content-center mb-md-0">
@foreach ($categories as $category)
@if ($category->is_top)
<li><a href="#" class="nav-link px-2 link-secondary">{{ $category->short_name }}</a></li>
@endif
@endforeach
</ul>
<div class="col-md-3 text-end">
<div class="dropdown">
<button class="btn btn-outline-secondary dropdown-toggle" type="button" id="dropdownMenuSwitch" data-bs-toggle="dropdown" aria-expanded="false">
{{ $country->name }}
</button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenuSwitch">
<li><a class="dropdown-item" href="#">Country 1</a></li>
<li><a class="dropdown-item" href="#">Country 2</a></li>
<li><a class="dropdown-item" href="#">Country 3</a></li>
</ul>
</div>
</div>
</header>
<div class="col-md-3 text-end">
<div class="dropdown">
<button class="btn btn-outline-secondary dropdown-toggle" type="button" id="dropdownMenuSwitch"
data-bs-toggle="dropdown" aria-expanded="false">
{{ $country->name }}
</button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenuSwitch">
<li><a class="dropdown-item" href="#">Country 1</a></li>
<li><a class="dropdown-item" href="#">Country 2</a></li>
<li><a class="dropdown-item" href="#">Country 3</a></li>
</ul>
</div>
</div>
</header>
</div>

View File

@@ -19,12 +19,10 @@
Auth::routes();
Route::prefix('admin')->middleware('auth')->group(function () {
Route::get('/', [App\Http\Controllers\Admin\DashboardController::class, 'index'])->name('dashboard');
Route::view('about', 'admin.about')->name('about');
Route::get('users', [\App\Http\Controllers\Admin\UserController::class, 'index'])->name('users.index');