관리-도구
편집 파일: app.blade.php
<!DOCTYPE html> <html lang="{{ str_replace('_', '-', app()->getLocale()) }}" dir="{{ session()->get('direction') }}"> <head> <meta name="base-url" content="{{ url('/') }}"> <meta property="og:site_name" content="{{ $web_config['company_name'] }}" /> <meta name="google-site-verification" content="{{ getWebConfig('google_search_console_code') }}"> <meta name="msvalidate.01" content="{{ getWebConfig('bing_webmaster_code') }}"> <meta name="baidu-site-verification" content="{{ getWebConfig('baidu_webmaster_code') }}"> <meta name="yandex-verification" content="{{ getWebConfig('yandex_webmaster_code') }}"> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <meta name="robots" content="index, follow"> <meta name="_token" content="{{ csrf_token() }}"> <link rel="shortcut icon" href="{{ $web_config['fav_icon']['path'] }}"/> <link rel="stylesheet" href="{{ theme_asset('assets/css/fonts-init.css') }}"/> <link rel="stylesheet" href="{{ theme_asset('assets/css/bootstrap.min.css') }}"/> <link rel="stylesheet" href="{{ theme_asset('assets/css/bootstrap-icons.min.css') }}"/> <link rel="stylesheet" href="{{ theme_asset('assets/plugins/magnific-popup-1.1.0/magnific-popup.css') }}" /> <link rel="stylesheet" href="{{ theme_asset('assets/plugins/swiper/swiper-bundle.min.css') }}"/> <link rel="stylesheet" href="{{ theme_asset('assets/plugins/sweet_alert/sweetalert2.css') }}"> <link rel="stylesheet" href="{{ theme_asset('assets/css/toastr.css') }}"/> <link rel="stylesheet" href="{{ dynamicAsset(path: 'public/assets/backend/webfonts/uicons-regular-rounded.css') }}"> <link rel="stylesheet" href="{{ dynamicAsset(path: 'public/assets/backend/webfonts/uicons-solid-rounded.css') }}"> <link rel="stylesheet" href="{{ theme_asset('assets/plugins/select2/css/select2.min.css') }}"> <link rel="stylesheet" href="{{ theme_asset('assets/css/style.css') }}"/> <link rel="stylesheet" href="{{ dynamicAsset(path: 'public/assets/backend/libs/intl-tel-input/css/intlTelInput.css') }}"> <link rel="stylesheet" href="{{ dynamicAsset(path: 'public/assets/backend/libs/google-recaptcha/google-recaptcha-init.css') }}"> <title>@yield('title')</title> @include(VIEW_FILE_NAMES['robots_meta_content_partials']) @stack('css_or_js') <link rel="stylesheet" href="{{ theme_asset('assets/css/custom.css') }}"/> <!-- Elegant Fonts --> <link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700&family=Poppins:wght@300;400;500;600&display=swap" rel="stylesheet"> <!-- Animate.css --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css"/> <!-- AOS Scroll Animations --> <link href="https://unpkg.com/aos@2.3.1/dist/aos.css" rel="stylesheet"> <style> /* ===== ELEGANT SAREE STORE THEME ===== */ :root { --elegant-primary: #8B1A4A; --elegant-gold: #D4AF37; --elegant-cream: #FDF8F0; --elegant-dark: #1A1A1A; --elegant-light: #F5E6D3; } /* Typography */ body { font-family: 'Poppins', sans-serif !important; background-color: var(--elegant-cream) !important; } h1, h2, h3, h4, h5 { font-family: 'Playfair Display', serif !important; } /* Navbar elegant */ header, .navbar, nav { background: linear-gradient(135deg, #1A1A1A 0%, #2D0A1E 100%) !important; box-shadow: 0 2px 20px rgba(139,26,74,0.3) !important; } .navbar-brand, .logo { font-family: 'Playfair Display', serif !important; color: var(--elegant-gold) !important; } /* Product Cards */ .product-card, .card { border: none !important; border-radius: 16px !important; overflow: hidden !important; box-shadow: 0 4px 20px rgba(0,0,0,0.08) !important; transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) !important; background: #fff !important; } .product-card:hover, .card:hover { transform: translateY(-10px) !important; box-shadow: 0 20px 50px rgba(139,26,74,0.2) !important; } /* Product Images */ .product-card img, .card img { transition: transform 0.5s ease !important; } .product-card:hover img, .card:hover img { transform: scale(1.08) !important; } /* Buttons */ .btn-primary, .btn-success { background: linear-gradient(135deg, #8B1A4A, #D4AF37) !important; border: none !important; border-radius: 25px !important; padding: 10px 28px !important; font-weight: 500 !important; letter-spacing: 0.5px !important; transition: all 0.3s ease !important; box-shadow: 0 4px 15px rgba(139,26,74,0.3) !important; } .btn-primary:hover, .btn-success:hover { transform: translateY(-2px) !important; box-shadow: 0 8px 25px rgba(139,26,74,0.4) !important; } /* Section headings */ .section-title, h2 { position: relative !important; display: inline-block !important; } .section-title::after, h2.decorated::after { content: '' !important; position: absolute !important; bottom: -8px !important; left: 50% !important; transform: translateX(-50%) !important; width: 60px !important; height: 3px !important; background: linear-gradient(90deg, #8B1A4A, #D4AF37) !important; border-radius: 2px !important; } /* Banner/Hero area */ .banner-section, .hero-section, .main-banner { border-radius: 20px !important; overflow: hidden !important; box-shadow: 0 10px 40px rgba(0,0,0,0.15) !important; } /* Price styling */ .price, .product-price { color: var(--elegant-primary) !important; font-weight: 700 !important; font-family: 'Playfair Display', serif !important; } .old-price, .text-muted.price { color: #999 !important; text-decoration: line-through !important; } /* Discount badge */ .badge, .discount-badge { background: linear-gradient(135deg, #8B1A4A, #D4AF37) !important; border-radius: 20px !important; padding: 4px 10px !important; font-size: 11px !important; font-weight: 600 !important; } /* Footer */ footer { background: linear-gradient(135deg, #1A1A1A 0%, #2D0A1E 100%) !important; color: #F5E6D3 !important; } footer a { color: var(--elegant-gold) !important; transition: color 0.3s ease !important; } footer a:hover { color: #fff !important; } /* Preloader elegant */ .preloader { background: linear-gradient(135deg, #1A1A1A, #2D0A1E) !important; } /* Category chips */ .category-item, .shop-category { border-radius: 30px !important; transition: all 0.3s ease !important; border: 2px solid transparent !important; } .category-item:hover { border-color: var(--elegant-gold) !important; transform: scale(1.05) !important; } /* Search bar */ .search-bar, .search-form input { border-radius: 30px !important; border: 2px solid var(--elegant-light) !important; padding: 10px 20px !important; } .search-bar:focus, .search-form input:focus { border-color: var(--elegant-primary) !important; box-shadow: 0 0 0 3px rgba(139,26,74,0.15) !important; } /* Scrollbar */ ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: var(--elegant-cream); } ::-webkit-scrollbar-thumb { background: linear-gradient(var(--elegant-primary), var(--elegant-gold)); border-radius: 3px; } /* Smooth page transitions */ * { scroll-behavior: smooth; } /* Wishlist heart button */ .wishlist-btn, .add-to-wishlist { color: var(--elegant-primary) !important; transition: transform 0.3s ease !important; } .wishlist-btn:hover { transform: scale(1.3) !important; } /* Back to top button */ .back-to-top { background: linear-gradient(135deg, #8B1A4A, #D4AF37) !important; border-radius: 50% !important; width: 45px !important; height: 45px !important; display: flex !important; align-items: center !important; justify-content: center !important; box-shadow: 0 4px 15px rgba(139,26,74,0.4) !important; } </style> <style> :root { --bs-primary: {{ $web_config['primary_color'] }}; --bs-primary-rgb: {{ getHexToRGBColorCode($web_config['primary_color']) }}; --primary-dark: {{ $web_config['primary_color'] }}; --primary-light: {{ $web_config['primary_color_light'] }}; --bs-secondary: {{ $web_config['secondary_color'] }}; --bs-secondary-rgb: {{ getHexToRGBColorCode($web_config['secondary_color']) }}; } .announcement-color { background-color: {{ $web_config['announcement']['color'] }}; color: {{$web_config['announcement']['text_color']}}; } .btn-outline-success { --bs-btn-hover-bg: {{ $web_config['primary_color'] }} !important; --bs-btn-active-bg: {{ $web_config['primary_color'] }} !important; --bs-btn-border-color: {{ $web_config['primary_color'] }} !important; } .btn-outline-success:active { background-color: var(--bg-color) !important; color: {{ $web_config['primary_color'] }} !important; --bs-btn-border-color: {{ $web_config['primary_color'] }} !important; } </style> {!! getSystemDynamicPartials(type: 'analytics_script') !!} </head> <body class="toolbar-enabled"> <script> 'use strict'; function setThemeMode() { if (localStorage.getItem('theme') === null) { document.body.setAttribute('theme', 'light'); } else { document.body.setAttribute('theme', localStorage.getItem('theme')); } } setThemeMode(); </script> <div class="preloader d--none" id="loading"> <img width="200" alt="" src="{{ getStorageImages(path: getWebConfig(name: 'loader_gif'), type: 'source', source: theme_asset('assets/img/loader.gif')) }}"> </div> @include('theme-views.layouts.partials._alert-message') @include('theme-views.layouts.partials._header') @include('theme-views.layouts.partials._settings-sidebar') @yield('content') @include('theme-views.layouts.partials._feature') @include('theme-views.layouts.partials._footer') <a href="#" class="back-to-top"> <i class="bi bi-arrow-up"></i> </a> <div class="app-bar d-xl-none" id="mobile_app_bar"> @include('theme-views.layouts.partials._app-bar') </div> <span class="customize-text" data-textno="{{ translate('no') }}" data-textyes="{{ translate('yes') }}" data-textnow="{{ translate('now') }}" data-textsuccessfullycopied="{{ translate('successfully_copied') }}" data-text-no-discount="{{ translate('no_discount') }}" data-stock-available="{{ translate('stock_available') }}" data-stock-not-available="{{ translate('stock_not_available') }}" data-update-this-address="{{ translate('update_this_Address') }}" data-password-characters-limit="{{ translate('your_password_must_be_at_least_8_characters') }}" data-password-not-match="{{ translate('password_does_not_Match') }}" data-textpleaseselectpaymentmethods="{{ translate('please_select_a_payment_Methods') }}" data-reviewmessage="{{ translate('you_can_review_after_the_product_is_delivered') }}" data-refundmessage="{{ translate('you_can_refund_request_after_the_product_is_delivered') }}" data-textshoptemporaryclose="{{ translate('This_shop_is_temporary_closed_or_on_vacation').' '.translate('You_cannot_add_product_to_cart_from_this_shop_for_now') }}" ></span> <span class="system-default-country-code" data-value="{{ getWebConfig(name: 'country_code') ?? 'us' }}"></span> <span class="cannot_use_zero" data-text="{{ translate('cannot_Use_0_only') }}"></span> @php($cookie = $web_config['cookie_setting'] ? json_decode($web_config['cookie_setting']['value'], true):null) @if($cookie && $cookie['status']==1) <section id="cookie-section"></section> @endif @if(!auth()->guard('customer')->check()) @include('theme-views.layouts.partials.modal._register') @include('theme-views.layouts.partials.modal._login') @endif @include('theme-views.layouts.partials.modal._quick-view') @include('theme-views.layouts.partials.modal._buy-now') @include('theme-views.layouts.partials.modal._initial') @php($whatsapp = getWebConfig(name: 'whatsapp')) <div class="social-chat-icons"> @if(isset($whatsapp['status']) && $whatsapp['status'] == 1 ) <div class=""> <a href="https://wa.me/{{ $whatsapp['phone'] }}?text=Hello%20there!" target="_blank"> <img src="{{theme_asset('assets/img/whatsapp.svg')}}" width="35" class="chat-image-shadow" alt="Chat with us on WhatsApp"> </a> </div> @endif </div> @include('theme-views.layouts.partials._translate-text-for-js') @include('theme-views.layouts.partials._route-for-js') @include('theme-views.layouts.main-script') @include('theme-views.layouts._firebase-script') <span class="d-none" id="text-validate-translate" data-required="{{ translate('this_field_is_required') }}" data-file-size-larger="{{ translate('file_size_is_larger') }}" data-max-limit-crossed="{{ translate('max_limit_crossed') }}" data-something-went-wrong="{{ translate('something_went_wrong!') }}" data-passwords-do-not-match="{{ translate('passwords_do_not_match') }}" data-valid-email="{{ translate('please_enter_a_valid_email') }}" data-password-validation="{{ translate('password_must_be_8+_chars_with_upper,_lower,_number_&_symbol') }}" data-file-type-not-allowed="{{ translate('Invalid_file_type_selected') }}" ></span> <span id="imageUploadMaxSize" data-max-size="{{ getFileUploadMaxSize() }}"></span> {!! Toastr::message() !!} <script> function route_alert(route, message) { Swal.fire({ title: "{{translate('are_you_sure')}}?", text: message, type: 'warning', showCancelButton: true, cancelButtonColor: 'default', confirmButtonColor: '{{$web_config['primary_color']}}', cancelButtonText: '{{translate('no')}}', confirmButtonText: '{{translate('yes')}}', reverseButtons: true }).then((result) => { if (result.value) { location.href = route; } }) } </script> <!-- AOS Animation Init --> <script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script> <script> AOS.init({ duration: 800, once: true, offset: 100 }); // Add AOS to product cards automatically document.addEventListener('DOMContentLoaded', function() { document.querySelectorAll('.product-card, .card').forEach((el, i) => { el.setAttribute('data-aos', 'fade-up'); el.setAttribute('data-aos-delay', (i % 4) * 100); }); AOS.refresh(); }); </script> @stack('script') </body> </html>