优化导航菜单项没配置文字不应显示、优化404页面、优化商品详情 分类 品牌 title 显示对应名称、优化后台头部 添加 admin_locale 等

This commit is contained in:
pushuo 2022-12-29 17:44:29 +08:00
parent c2b82b4bee
commit 3c6442d698
26 changed files with 174 additions and 156 deletions

View File

@ -301,6 +301,19 @@ function locale(): string
return Session::get('locale') ?? system_setting('base.locale'); return Session::get('locale') ?? system_setting('base.locale');
} }
/**
* 获取后台当前语言
*
* @return string
*/
function admin_locale(): string
{
if (is_admin()) {
return current_user()->locale;
}
return locale();
}
/** /**
* 货币格式化 * 货币格式化
* *

View File

@ -18,6 +18,8 @@ class CategoryController extends Controller
{ {
$products = ProductRepo::getProductsByCategory($category->id); $products = ProductRepo::getProductsByCategory($category->id);
$category->load('description');
$data = [ $data = [
'category' => $category, 'category' => $category,
'products_format' => $products->jsonSerialize(), 'products_format' => $products->jsonSerialize(),

View File

@ -8,10 +8,14 @@ use Illuminate\Contracts\View\View;
class NoData extends Component class NoData extends Component
{ {
public string $text; public string $text;
public string $link;
public string $btn;
public function __construct(?string $text = '') public function __construct(?string $text = '', ?string $link = '', ?string $btn = '')
{ {
$this->text = $text ?: trans('common.no_data'); $this->text = $text ?: trans('common.no_data');
$this->link = $link;
$this->btn = $btn;
} }
public function render() public function render()

View File

@ -13,6 +13,11 @@
src: url('/fonts/poppins/Poppins-Regular.ttf'); src: url('/fonts/poppins/Poppins-Regular.ttf');
} }
@font-face {font-family: 'poppins';
src: url('/fonts/poppins/Poppins-Bold.ttf');
font-weight: bold;
}
@font-face {font-family: 'Poppins-Medium'; @font-face {font-family: 'Poppins-Medium';
src: url('/fonts/poppins/Poppins-Medium.ttf'); src: url('/fonts/poppins/Poppins-Medium.ttf');
} }

View File

@ -42,12 +42,12 @@
padding: 0; padding: 0;
list-style: none; list-style: none;
> li { > li {
html[lang="zh_cn"] &, html[lang="zh_hk"] &, html[lang="en"] & { html[lang="zh_cn"] &, html[lang="zh_hk"] &, html[lang="en"] &, html[lang="ja"] & {
padding: 0 1rem; padding: 0 1rem;
} }
@media screen and (max-width: 1200px) { @media screen and (max-width: 1200px) {
html[lang="zh_cn"] &, html[lang="zh_hk"] &, html[lang="en"] & { html[lang="zh_cn"] &, html[lang="zh_hk"] &, html[lang="en"] &, html[lang="ja"] & {
padding: 0 .2rem; padding: 0 .2rem;
} }
} }

View File

@ -3,7 +3,6 @@
<div class="header-left"> <div class="header-left">
<div class="logo"> <div class="logo">
<a href=""><img src="{{ asset('image/logo.png') }}" class="img-fluid"></a> <a href=""><img src="{{ asset('image/logo.png') }}" class="img-fluid"></a>
{{-- <div class="text-center"><h5 class="mb-0">beike admin</h5></div> --}}
</div> </div>
</div> </div>
<div class="header-right"> <div class="header-right">
@ -14,16 +13,13 @@
</ul> </ul>
<ul class="navbar navbar-right"> <ul class="navbar navbar-right">
<li class="nav-item"> <li class="nav-item">
<a href="{{ admin_route('marketing.index') }}" class="nav-link"><i class="bi bi-gem"></i>&nbsp;@lang('admin/common.marketing')</a> <a href="{{ admin_route('marketing.index') }}" class="nav-link"><i class="bi bi-gem text-primary"></i>&nbsp;@lang('admin/common.marketing')</a>
</li>
<li class="nav-item">
<a target="_blank" href="{{ shop_route('home.index') }}" class="nav-link"><i class="bi bi-send me-1"></i> @lang('admin/common.access_frontend')</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<div class="dropdown"> <div class="dropdown">
<a class="nav-link dropdown-toggle" href="javascript:void(0)" data-bs-toggle="dropdown">{{ $admin_language['name'] }}</a> <a class="nav-link dropdown-toggle" href="javascript:void(0)" data-bs-toggle="dropdown">{{ $admin_language['name'] }}</a>
<ul class="dropdown-menu" aria-labelledby="dropdownMenuLink"> <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="dropdownMenuLink">
@foreach ($admin_languages as $language) @foreach ($admin_languages as $language)
<li><a href="{{ admin_route('edit.locale', ['locale' => $language['code']]) }}" class="dropdown-item">{{ $language['name'] }}</a></li> <li><a href="{{ admin_route('edit.locale', ['locale' => $language['code']]) }}" class="dropdown-item">{{ $language['name'] }}</a></li>
@endforeach @endforeach
@ -33,12 +29,15 @@
<li class="nav-item me-3"> <li class="nav-item me-3">
<div class="dropdown"> <div class="dropdown">
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown"> <a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
{{-- <img src="http://dummyimage.com/100x100" class="avatar img-fluid rounded-circle me-1"> --}}
<span class="text-dark ml-2">{{ current_user()->name }}</span> <span class="text-dark ml-2">{{ current_user()->name }}</span>
</a> </a>
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="dropdownMenuLink"> <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="dropdownMenuLink">
<li><a href="{{ admin_route('logout.index') }}" class="dropdown-item"><i class="bi bi-box-arrow-left"></i> {{ __('common.sign_out') }}</a></li> <li>
<a target="_blank" href="{{ shop_route('home.index') }}" class="dropdown-item"><i class="bi bi-send me-1"></i> @lang('admin/common.access_frontend')</a>
</li>
<li><hr class="dropdown-divider"></li>
<li><a href="{{ admin_route('logout.index') }}" class="dropdown-item"><i class="bi bi-box-arrow-left me-1"></i> {{ __('common.sign_out') }}</a></li>
</ul> </ul>
</div> </div>
</li> </li>

View File

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="{{ locale() }}"> <html lang="{{ admin_locale() }}">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
@ -26,7 +26,7 @@
{{-- <x-analytics /> --}} {{-- <x-analytics /> --}}
</head> </head>
<body class="@yield('body-class') {{ locale() }}"> <body class="@yield('body-class') {{ admin_locale() }}">
<x-admin-header /> <x-admin-header />
<div class="main-content"> <div class="main-content">

View File

@ -20,6 +20,11 @@ body[class^="page-account-"] {
src: url('/fonts/poppins/Poppins-Regular.ttf'); src: url('/fonts/poppins/Poppins-Regular.ttf');
} }
@font-face {font-family: 'poppins';
src: url('/fonts/poppins/Poppins-Bold.ttf');
font-weight: bold;
}
@font-face {font-family: 'Poppins-Medium'; @font-face {font-family: 'Poppins-Medium';
src: url('/fonts/poppins/Poppins-Medium.ttf'); src: url('/fonts/poppins/Poppins-Medium.ttf');
} }

View File

@ -166,7 +166,10 @@ body.page-product {
} }
.peoduct-info { .peoduct-info {
h1 { .product-name {
font-size: 1.5rem;
line-height: 1.4;
@media (max-width: 768px) { @media (max-width: 768px) {
font-size: 1.2rem; font-size: 1.2rem;
} }

View File

@ -71,6 +71,8 @@ return [
'created_at' => 'Erstellungszeit', 'created_at' => 'Erstellungszeit',
'updated_at' => 'geänderte Zeit', 'updated_at' => 'geänderte Zeit',
'sort_order' => 'sortieren', 'sort_order' => 'sortieren',
'error_page' => 'Die Daten, auf die Sie zugegriffen haben, existieren nicht oder wurden gelöscht~',
'error_page_btn' => 'Zurück zur vorherigen Seite',
'order' => [ 'order' => [
'unpaid' => 'zu bezahlen', 'unpaid' => 'zu bezahlen',

View File

@ -72,6 +72,8 @@ return [
'created_at' => 'Created At', 'created_at' => 'Created At',
'updated_at' => 'Updated At', 'updated_at' => 'Updated At',
'sort_order' => 'Sort Order', 'sort_order' => 'Sort Order',
'error_page' => 'The data you accessed does not exist or has been deleted~',
'error_page_btn' => 'Return to previous page',
'order' => [ 'order' => [
'unpaid' => 'Unpaid', 'unpaid' => 'Unpaid',

View File

@ -71,6 +71,8 @@ return [
'created_at' => 'tiempo de creación', 'created_at' => 'tiempo de creación',
'updated_at' => 'cambiar el tiempo', 'updated_at' => 'cambiar el tiempo',
'sort_order' => 'clasificar', 'sort_order' => 'clasificar',
'error_page' => 'Los datos a los que accedió no existen o han sido eliminados~',
'error_page_btn' => 'Volver a la página anterior',
'order' => [ 'order' => [
'unpaid' => 'A pagar', 'unpaid' => 'A pagar',

View File

@ -71,6 +71,8 @@ return [
'created_at' => 'temps de creation', 'created_at' => 'temps de creation',
'updated_at' => 'Changer l\'heure', 'updated_at' => 'Changer l\'heure',
'sort_order' => 'trier', 'sort_order' => 'trier',
'error_page' => 'Les données auxquelles vous avez accédé n\'existent pas ou ont été supprimées~',
'error_page_btn' => 'Retour à la page précédente',
'order' => [ 'order' => [
'unpaid' => 'Être payé', 'unpaid' => 'Être payé',

View File

@ -71,6 +71,8 @@ return [
'created_at' => 'tempo di creazione', 'created_at' => 'tempo di creazione',
'updated_at' => 'Cambia l\'ora', 'updated_at' => 'Cambia l\'ora',
'sort_order' => 'ordinare', 'sort_order' => 'ordinare',
'error_page' => 'I dati a cui hai effettuato l\'accesso non esistono o sono stati eliminati~',
'error_page_btn' => 'Torna alla pagina precedente',
'order' => [ 'order' => [
'unpaid' => 'Essere pagato', 'unpaid' => 'Essere pagato',

View File

@ -71,6 +71,8 @@ return [
'created_at' => '作成時間', 'created_at' => '作成時間',
'updated_at' => '時間を変更する', 'updated_at' => '時間を変更する',
'sort_order' => '選別', 'sort_order' => '選別',
'error_page' => 'アクセスしたデータは存在しないか削除されています~',
'error_page_btn' => '前のページに戻る',
'order' => [ 'order' => [
'unpaid' => '支払われる', 'unpaid' => '支払われる',

View File

@ -71,6 +71,8 @@ return [
'created_at' => 'время создания', 'created_at' => 'время создания',
'updated_at' => 'измененное время', 'updated_at' => 'измененное время',
'sort_order' => 'сортировать', 'sort_order' => 'сортировать',
'error_page' => 'Данные, к которым вы обращались, не существуют или были удалены~',
'error_page_btn' => 'Вернуться на предыдущую страницу',
'order' => [ 'order' => [
'unpaid' => 'подлежит оплате', 'unpaid' => 'подлежит оплате',

View File

@ -72,6 +72,8 @@ return [
'created_at' => '创建时间', 'created_at' => '创建时间',
'updated_at' => '修改时间', 'updated_at' => '修改时间',
'sort_order' => '排序', 'sort_order' => '排序',
'error_page' => '您访问的数据不存在或已被删除~',
'error_page_btn' => '返回上一页',
'order' => [ 'order' => [
'unpaid' => '待支付', 'unpaid' => '待支付',

View File

@ -71,6 +71,8 @@ return [
'created_at' => '創建時間', 'created_at' => '創建時間',
'updated_at' => '修改時間', 'updated_at' => '修改時間',
'sort_order' => '排序', 'sort_order' => '排序',
'error_page' => '您訪問的數據不存在或已被刪除~',
'error_page_btn' => '返回上一頁',
'order' => [ 'order' => [
'unpaid' => '待支付', 'unpaid' => '待支付',

View File

@ -1,5 +1,6 @@
@extends('layout.master') @extends('layout.master')
@section('body-class', 'page-categories') @section('body-class', 'page-categories')
@section('title', $brand->name)
@section('content') @section('content')
<div class="container"> <div class="container">

View File

@ -1,5 +1,6 @@
@extends('layout.master') @extends('layout.master')
@section('body-class', 'page-categories') @section('body-class', 'page-categories')
@section('title', system_setting('base.meta_title', 'BeikeShop开源好用的跨境电商系统 - BeikeShop官网') .' - '. $category->description->name)
@section('content') @section('content')
<div class="container"> <div class="container">

View File

@ -1,4 +1,7 @@
<div class="d-flex flex-column align-center align-items-center mb-4"> <div class="d-flex flex-column align-center align-items-center mb-4">
<img src="{{ asset('image/no-data.svg') }}" class="img-fluid wp-400"> <img src="{{ asset('image/no-data.svg') }}" class="img-fluid wp-400">
<div class="text-secondary fs-4">{{ $text }}</div> <div class="text-secondary fs-4 mb-3">{{ $text }}</div>
@if ($link)
<a href="{{ $link }}" class="btn btn-primary"><i class="bi bi-box-arrow-left"></i> {{ $btn }}</a>
@endif
</div> </div>

View File

@ -1,5 +1,6 @@
@extends('errors::minimal') @extends('errors.layout')
@section('title', __('common.error_page'))
@section('title', __('Not Found')) @section('content')
@section('code', '404') <x-shop-no-data text="{{ __('common.error_page') }}" link="javascript:history.go(-1)" btn="{{ __('common.error_page_btn') }}" />
@section('message', __('Not Found')) @endsection

View File

@ -1,53 +1,21 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>@yield('title')</title> <head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>@yield('title')</title>
<link rel="stylesheet" type="text/css" href="{{ asset('/build/beike/shop/default/css/bootstrap.css') }}">
</head>
<!-- Styles --> <body class="page-400">
<style> <div class="flex-center position-ref full-height">
html, body { <div class="content">
background-color: #fff; <div class="title">
color: #636b6f; @yield('content')
font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; </div>
font-weight: 100; </div>
height: 100vh; </div>
margin: 0; </body>
}
.full-height {
height: 100vh;
}
.flex-center {
align-items: center;
display: flex;
justify-content: center;
}
.position-ref {
position: relative;
}
.content {
text-align: center;
}
.title {
font-size: 36px;
padding: 20px;
}
</style>
</head>
<body>
<div class="flex-center position-ref full-height">
<div class="content">
<div class="title">
@yield('message')
</div>
</div>
</div>
</body>
</html> </html>

View File

@ -1,6 +1,6 @@
@extends('layout.master') @extends('layout.master')
@section('body-class', 'page-product') @section('body-class', 'page-product')
@section('title', $product['name'])
@push('header') @push('header')
<script src="{{ asset('vendor/vue/2.6.14/vue' . (!config('app.debug') ? '.min' : '') . '.js') }}"></script> <script src="{{ asset('vendor/vue/2.6.14/vue' . (!config('app.debug') ? '.min' : '') . '.js') }}"></script>
@ -51,7 +51,7 @@
<div class="col-12 col-lg-6"> <div class="col-12 col-lg-6">
<div class="peoduct-info"> <div class="peoduct-info">
<h1 class="mb-4">{{ $product['name'] }}</h1> <h1 class="mb-4 product-name">{{ $product['name'] }}</h1>
<div class="price-wrap d-flex align-items-end"> <div class="price-wrap d-flex align-items-end">
<div class="new-price fs-1 lh-1 fw-bold me-2">@{{ product.price_format }}</div> <div class="new-price fs-1 lh-1 fw-bold me-2">@{{ product.price_format }}</div>
<div class="old-price text-muted text-decoration-line-through">@{{ product.origin_price_format }}</div> <div class="old-price text-muted text-decoration-line-through">@{{ product.origin_price_format }}</div>

View File

@ -1,52 +1,45 @@
<div class="accordion accordion-flush" id="menu-accordion"> <div class="accordion accordion-flush" id="menu-accordion">
@foreach ($menu_content as $key => $menu) @foreach ($menu_content as $key => $menu)
<div class="accordion-item"> @if ($menu['name'])
<div class="nav-item-text"> <div class="accordion-item">
<a class="nav-link" <div class="nav-item-text">
target="{{ isset($menu['new_window']) && $menu['new_window'] ? '_blank' : '_self' }}" <a class="nav-link" target="{{ isset($menu['new_window']) && $menu['new_window'] ? '_blank' : '_self' }}" href="{{ $menu['link'] ?? '' }}">
href="{{ $menu['link'] ?? '' }}"> {{ $menu['name'] }}
{{ $menu['name'] }} @if (isset($menu['badge']) && $menu['badge']['name'])
@if (isset($menu['badge']) && $menu['badge']['name']) <span class="badge" style="background-color: {{ $menu['badge']['bg_color'] }}; color: {{ $menu['badge']['text_color'] }}; border-color: {{ $menu['badge']['bg_color'] }}">
<span class="badge"
style="background-color: {{ $menu['badge']['bg_color'] }}; color: {{ $menu['badge']['text_color'] }}; border-color: {{ $menu['badge']['bg_color'] }}">
{{ $menu['badge']['name'] }} {{ $menu['badge']['name'] }}
</span> </span>
@endif
</a>
@if (isset($menu['children_group']) && $menu['children_group'])
<span class="collapsed" data-bs-toggle="collapse" data-bs-target="#flush-menu-{{ $key }}"><i class="bi bi-chevron-down"></i></span>
@endif @endif
</a> </div>
@if (isset($menu['children_group']) && $menu['children_group']) @if (isset($menu['children_group']) && $menu['children_group'])
<span class="collapsed" data-bs-toggle="collapse" data-bs-target="#flush-menu-{{ $key }}"><i class="bi bi-chevron-down"></i></span>
@endif
</div>
@if (isset($menu['children_group']) && $menu['children_group'])
<div class="accordion-collapse collapse" id="flush-menu-{{ $key }}" data-bs-parent="#menu-accordion"> <div class="accordion-collapse collapse" id="flush-menu-{{ $key }}" data-bs-parent="#menu-accordion">
@forelse ($menu['children_group'] as $group) @forelse ($menu['children_group'] as $group)
<div class="children-group mb-3"> <div class="children-group mb-3">
@if ($group['name']) @if ($group['name'])
<div class="group-name">{{ $group['name'] }}</div> <div class="group-name">{{ $group['name'] }}</div>
@endif
@if ($group['type'] == 'image')
<a target="{{ isset($group['image']['link']['new_window']) && $group['image']['link']['new_window'] ? '_blank' : '_self' }}" href="{{ $group['image']['link'] }}"><img src="{{ $group['image']['image'] }}" class="img-fluid"></a>
@else
<ul class="nav flex-column ul-children">
@foreach ($group['children'] as $children)
@if (!is_array($children['link']['text']) && $children['link']['text'])
<li class="nav-item">
<a target="{{ isset($children['link']['new_window']) && $children['link']['new_window'] ? '_blank' : '_self' }}" class="nav-link px-0" href="{{ $children['link']['link'] }}">{{ $children['link']['text'] }}</a>
</li>
@endif @endif
@if ($group['type'] == 'image') @endforeach
<a </ul>
target="{{ isset($group['image']['link']['new_window']) && $group['image']['link']['new_window'] ? '_blank' : '_self' }}" @endif
href="{{ $group['image']['link'] }}"><img src="{{ $group['image']['image'] }}" </div>
class="img-fluid"></a>
@else
<ul class="nav flex-column ul-children">
@foreach ($group['children'] as $children)
@if (!is_array($children['link']['text']) && $children['link']['text'])
<li class="nav-item">
<a
target="{{ isset($children['link']['new_window']) && $children['link']['new_window'] ? '_blank' : '_self' }}"
class="nav-link px-0"
href="{{ $children['link']['link'] }}">{{ $children['link']['text'] }}</a>
</li>
@endif
@endforeach
</ul>
@endif
</div>
@endforeach @endforeach
</div> </div>
@endif @endif
</div> </div>
@endif
@endforeach @endforeach
</div> </div>

View File

@ -1,57 +1,59 @@
<ul class="navbar-nav mx-auto"> <ul class="navbar-nav mx-auto">
@foreach ($menu_content as $menu) @foreach ($menu_content as $menu)
<li @if ($menu['name'])
class="nav-item {{ isset($menu['children_group']) ? 'dropdown' : '' }} {{ isset($menu['isFull']) && $menu['isFull'] ? 'position-static' : '' }}"> <li
<a class="nav-link fw-bold {{ isset($menu['children_group']) ? 'dropdown-toggle' : '' }}" class="nav-item {{ isset($menu['children_group']) ? 'dropdown' : '' }} {{ isset($menu['isFull']) && $menu['isFull'] ? 'position-static' : '' }}">
target="{{ isset($menu['new_window']) && $menu['new_window'] ? '_blank' : '_self' }}" <a class="nav-link fw-bold {{ isset($menu['children_group']) ? 'dropdown-toggle' : '' }}"
href="{{ $menu['link'] ?: 'javascript:void(0)' }}"> target="{{ isset($menu['new_window']) && $menu['new_window'] ? '_blank' : '_self' }}"
{{ $menu['name'] }} href="{{ $menu['link'] ?: 'javascript:void(0)' }}">
@if (isset($menu['badge']) && $menu['badge']['name']) {{ $menu['name'] }}
<span class="badge" @if (isset($menu['badge']) && $menu['badge']['name'])
style="background-color: {{ $menu['badge']['bg_color'] }}; color: {{ $menu['badge']['text_color'] }}; border-color: {{ $menu['badge']['bg_color'] }}"> <span class="badge"
{{ $menu['badge']['name'] }} style="background-color: {{ $menu['badge']['bg_color'] }}; color: {{ $menu['badge']['text_color'] }}; border-color: {{ $menu['badge']['bg_color'] }}">
</span> {{ $menu['badge']['name'] }}
@endif </span>
</a> @endif
@if (isset($menu['children_group']) && $menu['children_group']) </a>
<div class="dropdown-menu {{ $menu['isFull'] ? 'w-100' : '' }}" @if (isset($menu['children_group']) && $menu['children_group'])
style="min-width: {{ count($menu['children_group']) * 240 }}px"> <div class="dropdown-menu {{ $menu['isFull'] ? 'w-100' : '' }}"
<div class="card card-lg"> style="min-width: {{ count($menu['children_group']) * 240 }}px">
<div class="card-body"> <div class="card card-lg">
<div class="container"> <div class="card-body">
<div class="row"> <div class="container">
@forelse ($menu['children_group'] as $group) <div class="row">
<div class="col-6 col-md"> @forelse ($menu['children_group'] as $group)
@if ($group['name']) <div class="col-6 col-md">
<div class="mb-3 fw-bold group-name">{{ $group['name'] }}</div> @if ($group['name'])
@endif <div class="mb-3 fw-bold group-name">{{ $group['name'] }}</div>
@if ($group['type'] == 'image') @endif
<a @if ($group['type'] == 'image')
target="{{ isset($group['image']['link']['new_window']) && $group['image']['link']['new_window'] ? '_blank' : '_self' }}" <a
href="{{ $group['image']['link'] ?: 'javascript:void(0)' }}"><img src="{{ $group['image']['image'] }}" target="{{ isset($group['image']['link']['new_window']) && $group['image']['link']['new_window'] ? '_blank' : '_self' }}"
class="img-fluid"></a> href="{{ $group['image']['link'] ?: 'javascript:void(0)' }}"><img src="{{ $group['image']['image'] }}"
@else class="img-fluid"></a>
<ul class="nav flex-column ul-children"> @else
@foreach ($group['children'] as $children) <ul class="nav flex-column ul-children">
@if (!is_array($children['link']['text']) && $children['link']['text']) @foreach ($group['children'] as $children)
<li class="nav-item"> @if (!is_array($children['link']['text']) && $children['link']['text'])
<a <li class="nav-item">
target="{{ isset($children['link']['new_window']) && $children['link']['new_window'] ? '_blank' : '_self' }}" <a
class="nav-link px-0" target="{{ isset($children['link']['new_window']) && $children['link']['new_window'] ? '_blank' : '_self' }}"
href="{{ $children['link']['link'] ?: 'javascript:void(0)' }}">{{ $children['link']['text'] }}</a> class="nav-link px-0"
</li> href="{{ $children['link']['link'] ?: 'javascript:void(0)' }}">{{ $children['link']['text'] }}</a>
@endif </li>
@endforeach @endif
</ul> @endforeach
@endif </ul>
</div> @endif
@endforeach </div>
@endforeach
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> @endif
@endif </li>
</li> @endif
@endforeach @endforeach
</ul> </ul>