Add Custom Header and Footer Blade Selection: Implemented options for selecting custom Blade files for header and footer templates in the Page settings. Enhanced the PageController to render these templates dynamically, improving modularity and user experience. Updated relevant views to support this new functionality, ensuring better localization and flexibility in template management.

This commit is contained in:
Ümit Tunç
2026-01-01 10:54:38 +03:00
parent 10f2e9c9bb
commit 12441517f6
20 changed files with 587 additions and 256 deletions
@@ -22,105 +22,7 @@ $menuItems = \App\Models\Page::with(['children' => function ($query) {
@if($menuItems->isNotEmpty())
<ul class="navbar-nav">
@foreach($menuItems as $item)
@php
$hasChildren = $item->children->isNotEmpty();
$isMegaMenu = $item->slug === 'urunlerimiz';
@endphp
@if($isMegaMenu)
<li class="nav-item dropdown dropdown-mega">
<a class="nav-link dropdown-toggle font-bold !tracking-[-0.01rem] hover:!text-[#e31e24] after:!text-[#e31e24]" href="{{ route('page.show', $item->slug) }}" data-bs-toggle="dropdown">{{ $item->translate('title') }}</a>
<ul class="dropdown-menu mega-menu">
<li class="mega-menu-content">
<div class="flex flex-wrap mx-0 xl:mx-[-7.5px] lg:mx-[-7.5px]">
<div class="xl:w-4/12 lg:w-4/12 w-full flex-[0_0_auto] max-w-full">
<h6 class="dropdown-header !text-[#e31e24]">Kategoriler</h6>
<ul class="pl-0 list-none xl:columns-2 lg:columns-2 xl:pb-1 lg:pb-1">
<li class="xl:inline-block xl:w-full lg:inline-block lg:w-full"><a class='dropdown-item hover:!text-[#e31e24]' href='#'>Yazılım Çözümleri</a></li>
<li class="xl:inline-block xl:w-full lg:inline-block lg:w-full"><a class='dropdown-item hover:!text-[#e31e24]' href='#'>Donanım</a></li>
<li class="xl:inline-block xl:w-full lg:inline-block lg:w-full"><a class='dropdown-item hover:!text-[#e31e24]' href='#'>Danışmanlık</a></li>
<li class="xl:inline-block xl:w-full lg:inline-block lg:w-full"><a class='dropdown-item hover:!text-[#e31e24]' href='#'>Entegrasyon</a></li>
</ul>
<h6 class="dropdown-header !text-[#e31e24] xl:!mt-6 lg:!mt-6">Sektörler</h6>
<ul class="pl-0 list-none xl:columns-2 lg:columns-2">
<li class="xl:inline-block xl:w-full lg:inline-block lg:w-full"><a class='dropdown-item hover:!text-[#e31e24]' href='#'>Finans</a></li>
<li class="xl:inline-block xl:w-full lg:inline-block lg:w-full"><a class='dropdown-item hover:!text-[#e31e24]' href='#'>Sağlık</a></li>
<li class="xl:inline-block xl:w-full lg:inline-block lg:w-full"><a class='dropdown-item hover:!text-[#e31e24]' href='#'>Eğitim</a></li>
<li class="xl:inline-block xl:w-full lg:inline-block lg:w-full"><a class='dropdown-item hover:!text-[#e31e24]' href='#'>Perakende</a></li>
</ul>
</div>
<!--/column -->
<div class="xl:w-8/12 lg:w-8/12 w-full flex-[0_0_auto] max-w-full xl:border-l-[rgba(164,174,198,0.2)] xl:border-l xl:border-solid lg:border-l-[rgba(164,174,198,0.2)] lg:border-l lg:border-solid">
<h6 class="dropdown-header !text-[#e31e24]">Öne Çıkan Ürünler</h6>
<ul class="pl-0 list-none xl:columns-3 lg:columns-3">
<li><a class='dropdown-item hover:!text-[#e31e24]' href='#'>ERP Sistemi</a></li>
<li><a class='dropdown-item hover:!text-[#e31e24]' href='#'>CRM Modülü</a></li>
<li><a class='dropdown-item hover:!text-[#e31e24]' href='#'>Mobil App</a></li>
<li><a class='dropdown-item hover:!text-[#e31e24]' href='#'>Web Sitesi</a></li>
<li><a class='dropdown-item hover:!text-[#e31e24]' href='#'>E-Ticaret</a></li>
<li><a class='dropdown-item hover:!text-[#e31e24]' href='#'>SEO Paketi</a></li>
<li><a class='dropdown-item hover:!text-[#e31e24]' href='#'>Hosting</a></li>
<li><a class='dropdown-item hover:!text-[#e31e24]' href='#'>Bulut Yedekleme</a></li>
<li><a class='dropdown-item hover:!text-[#e31e24]' href='#'>Siber Güvenlik</a></li>
</ul>
</div>
<!--/column -->
</div>
<!--/.row -->
</li>
<!--/.mega-menu-content-->
</ul>
<!--/.dropdown-menu -->
</li>
@else
<li class="nav-item {{ $hasChildren ? 'dropdown' : '' }}">
@if($hasChildren)
<a class="nav-link dropdown-toggle font-bold !tracking-[-0.01rem] hover:!text-[#e31e24] after:!text-[#e31e24]"
href="{{ route('page.show', $item->slug) }}"
data-bs-toggle="dropdown">
{{ $item->translate('title') }}
</a>
<ul class="dropdown-menu">
@foreach($item->children as $child)
@php
$childHasChildren = $child->children->isNotEmpty();
@endphp
@if($childHasChildren)
<li class="dropdown dropdown-submenu dropend">
<a class="dropdown-item hover:!text-[#e31e24] dropdown-toggle"
href="{{ route('page.show', $child->slug) }}"
data-bs-toggle="dropdown">
{{ $child->translate('title') }}
</a>
<ul class="dropdown-menu">
@foreach($child->children as $grandChild)
<li class="nav-item">
<a class="dropdown-item hover:!text-[#e31e24]"
href="{{ route('page.show', $grandChild->slug) }}">
{{ $grandChild->translate('title') }}
</a>
</li>
@endforeach
</ul>
</li>
@else
<li class="nav-item">
<a class="dropdown-item hover:!text-[#e31e24]"
href="{{ route('page.show', $child->slug) }}">
{{ $child->translate('title') }}
</a>
</li>
@endif
@endforeach
</ul>
@else
<a class="nav-link font-bold !tracking-[-0.01rem] hover:!text-[#e31e24] after:!text-[#e31e24]"
href="{{ route('page.show', $item->slug) }}">
{{ $item->translate('title') }}
</a>
@endif
</li>
@endif
<x-front.menu-item :item="$item" />
@endforeach
</ul>
@endif
@@ -0,0 +1,79 @@
<footer class=" bg-[#21262c] opacity-100 !text-[#cacaca]">
<div class="container py-16 xl:!py-20 lg:!py-20 md:!py-20">
<div class="flex flex-wrap mx-[-15px] !mt-[-30px] xl:!mt-0 lg:!mt-0">
<div class="md:w-4/12 xl:w-3/12 lg:w-3/12 w-full flex-[0_0_auto] !px-[15px] max-w-full xl:!mt-0 lg:!mt-0 !mt-[30px]">
<div class="widget !text-[#cacaca]">
<img class="!mb-4" src="{{ asset('assets/img/truncgil-yatay-dark.svg') }}" alt="image">
<p class="!mb-4">© {{ date('Y') }} {{ t('Trunçgil Teknoloji') }}. <br class="hidden xl:block lg:block !text-[#cacaca]">{{ t('Tüm hakları saklıdır.') }}</p>
<?php $social_media = json_decode(setting('social_links'), true);
?>
<nav class="nav social social-white">
<a class="!text-[#cacaca] text-[1rem] transition-all duration-[0.2s] ease-in-out translate-y-0 motion-reduce:transition-none hover:translate-y-[-0.15rem] m-[0_.7rem_0_0]" href="{{ !empty($social_media['Twitter']) ? $social_media['Twitter'] : '#' }}" target="_blank" rel="noopener"><i class="uil uil-twitter before:content-['\ed59'] !text-white text-[1rem]"></i></a>
<a class="!text-[#cacaca] text-[1rem] transition-all duration-[0.2s] ease-in-out translate-y-0 motion-reduce:transition-none hover:translate-y-[-0.15rem] m-[0_.7rem_0_0]" href="{{ !empty($social_media['Facebook']) ? $social_media['Facebook'] : '#' }}" target="_blank" rel="noopener"><i class="uil uil-facebook-f before:content-['\eae2'] !text-white text-[1rem]"></i></a>
<a class="!text-[#cacaca] text-[1rem] transition-all duration-[0.2s] ease-in-out translate-y-0 motion-reduce:transition-none hover:translate-y-[-0.15rem] m-[0_.7rem_0_0]" href="{{ !empty($social_media['Github']) ? $social_media['Github'] : '#' }}" target="_blank" rel="noopener"><i class="uil uil-github before:content-['\eb40'] !text-white text-[1rem]"></i></a>
<a class="!text-[#cacaca] text-[1rem] transition-all duration-[0.2s] ease-in-out translate-y-0 motion-reduce:transition-none hover:translate-y-[-0.15rem] m-[0_.7rem_0_0]" href="{{ !empty($social_media['Instagram']) ? $social_media['Instagram'] : '#' }}" target="_blank" rel="noopener"><i class="uil uil-instagram before:content-['\eb9c'] !text-white text-[1rem]"></i></a>
<a class="!text-[#cacaca] text-[1rem] transition-all duration-[0.2s] ease-in-out translate-y-0 motion-reduce:transition-none hover:translate-y-[-0.15rem] m-[0_.7rem_0_0]" href="{{ !empty($social_media['Youtube']) ? $social_media['Youtube'] : '#' }}" target="_blank" rel="noopener"><i class="uil uil-youtube before:content-['\edb5'] !text-white text-[1rem]"></i></a>
</nav>
<!-- /.social -->
</div>
<!-- /.widget -->
</div>
<!-- /column -->
<div class="md:w-4/12 xl:w-3/12 lg:w-3/12 w-full flex-[0_0_auto] !px-[15px] max-w-full xl:!mt-0 lg:!mt-0 !mt-[30px]">
<div class="widget !text-[#cacaca]">
<h4 class="widget-title !text-white !mb-3">{{ t('İletişim') }}</h4>
<address class="xl:!pr-20 xxl:!pr-28 not-italic !leading-[inherit] block !mb-4">{{ setting('contact_address') }}</address>
<a class="!text-[#cacaca] hover:!text-[#3f78e0]" href="mailto:{{ setting('contact_email') }}">{{ setting('contact_email') }}</a><br> {{ setting('contact_phone') }}
</div>
<!-- /.widget -->
</div>
<!-- /column -->
<div class="md:w-4/12 xl:w-3/12 lg:w-3/12 w-full flex-[0_0_auto] !px-[15px] max-w-full xl:!mt-0 lg:!mt-0 !mt-[30px]">
<div class="widget !text-[#cacaca]">
<h4 class="widget-title !text-white !mb-3">{{ t('Daha Fazla Bilgi') }}</h4>
<ul class="pl-0 list-none !mb-0">
<li><a class="!text-[#cacaca] hover:!text-[#3f78e0]" href="#">{{ t('Hakkımızda') }}</a></li>
<li class="!mt-[0.35rem]"><a class="!text-[#cacaca] hover:!text-[#3f78e0]" href="#">{{ t('Hikayemiz') }}</a></li>
<li class="!mt-[0.35rem]"><a class="!text-[#cacaca] hover:!text-[#3f78e0]" href="#">{{ t('Projelerimiz') }}</a></li>
<li class="!mt-[0.35rem]"><a class="!text-[#cacaca] hover:!text-[#3f78e0]" href="#">{{ t('Kullanım Koşulları') }}</a></li>
<li class="!mt-[0.35rem]"><a class="!text-[#cacaca] hover:!text-[#3f78e0]" href="#">{{ t('Gizlilik Politikası') }}</a></li>
</ul>
</div>
<!-- /.widget -->
</div>
<!-- /column -->
<div class="md:w-full xl:w-3/12 lg:w-3/12 w-full flex-[0_0_auto] !px-[15px] max-w-full xl:!mt-0 lg:!mt-0 !mt-[30px]">
<div class="widget !text-[#cacaca]">
<h4 class="widget-title !text-white !mb-3">{{ t('Bizimle İletişime Geçin') }}</h4>
<p class="!mb-5">{{ t('Yeniliklerden haberdar olmak için bize e-posta adresinizi bırakın.') }}</p>
<div class="newsletter-wrapper">
<!-- Begin Mailchimp Signup Form -->
<div id="mc_embed_signup">
<form action="https://elemisfreebies.us20.list-manage.com/subscribe/post?u=aa4947f70a475ce162057838d&amp;id=b49ef47a9a" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate dark-fields" target="_blank" novalidate="">
<div id="mc_embed_signup_scroll">
<div class="!text-left input-group form-floating !relative flex flex-wrap items-stretch w-full">
<input type="email" value="" name="EMAIL" class="required email form-control block w-full text-[12px] font-medium !leading-[1.7] appearance-none bg-clip-padding shadow-[0_0_1.25rem_rgba(30,34,40,0.04)] px-4 py-[0.6rem] rounded-[0.4rem] motion-reduce:transition-none focus:shadow-[0_0_1.25rem_rgba(30,34,40,0.04),unset] disabled:bg-[#aab0bc] disabled:opacity-100 file:!mt-[-0.6rem] file:mr-[-1rem] file:!mb-[-0.6rem] file:ml-[-1rem] file:!text-[#60697b] file:bg-[#fefefe] file:pointer-events-none file:transition-all file:duration-[0.2s] file:ease-in-out file:px-4 file:py-[0.6rem] file:rounded-none motion-reduce:file:transition-none placeholder:!text-[#959ca9] placeholder:opacity-100 border border-solid !border-[rgba(255,255,255,0.1)] !text-[#cacaca] bg-[rgba(255,255,255,.03)] focus-visible:!border-[rgba(63,120,224,0.5)] " placeholder="" id="mce-EMAIL">
<label class="!ml-[0.05rem] !text-[#959ca9] text-[.75rem] absolute z-[2] h-full overflow-hidden text-start text-ellipsis whitespace-nowrap pointer-events-none origin-[0_0] px-4 py-[0.6rem] left-0 top-0" for="mce-EMAIL">{{ t('E-posta Adresiniz') }}</label>
<input type="submit" value="{{ t('Abone Ol') }}" name="subscribe" id="mc-embedded-subscribe" class="btn btn-primary !text-white !bg-[#3f78e0] border-[#3f78e0] hover:text-white hover:bg-[#3f78e0] hover:!border-[#3f78e0] active:text-white active:bg-[#3f78e0] active:border-[#3f78e0] disabled:text-white disabled:bg-[#3f78e0] disabled:border-[#3f78e0] !relative z-[2] focus:z-[5] hover:!transform-none border-0">
</div>
<div id="mce-responses" class="clear">
<div class="response" id="mce-error-response" style="display:none"></div>
<div class="response" id="mce-success-response" style="display:none"></div>
</div> <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
<div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_ddc180777a163e0f9f66ee014_4b1bcfa0bc" tabindex="-1" value=""></div>
<div class="clear"></div>
</div>
</form>
</div>
<!--End mc_embed_signup-->
</div>
<!-- /.newsletter-wrapper -->
</div>
<!-- /.widget -->
</div>
<!-- /column -->
</div>
<!--/.row -->
</div>
<!-- /.container -->
</footer>
@@ -0,0 +1,93 @@
@php
// Get menu items from Pages with nested children
$menuItems = \App\Models\Page::with(['children' => function ($query) {
$query->where('status', 'published')
->where('show_in_menu', true)
->orderBy('sort_order', 'asc')
->orderBy('title', 'asc');
}, 'children.children' => function ($query) {
$query->where('status', 'published')
->where('show_in_menu', true)
->orderBy('sort_order', 'asc')
->orderBy('title', 'asc');
}])
->whereNull('parent_id')
->where('status', 'published')
->where('show_in_menu', true)
->orderBy('sort_order', 'asc')
->orderBy('title', 'asc')
->get();
$midPoint = ceil($menuItems->count() / 2);
$leftMenuItems = $menuItems->slice(0, $midPoint);
$rightMenuItems = $menuItems->slice($midPoint);
@endphp
<header class="relative wrapper !bg-[#edf2fc]">
<nav class="navbar navbar-expand-lg center-logo transparent position-absolute navbar-dark">
<div class="container justify-between items-center">
<div class="flex flex-row w-full justify-between items-center xl:!hidden lg:!hidden">
<div class="navbar-brand"><a href="./">
<img class="logo-dark" src="{{ asset('assets/img/truncgil-yatay.svg') }}" alt="image">
<img class="logo-light" src="{{ asset('assets/img/truncgil-yatay-dark.svg') }}" alt="image">
</a></div>
<div class="navbar-other !ml-auto">
<ul class="navbar-nav flex-row items-center">
<li class="nav-item xl:!hidden lg:!hidden">
<button class="hamburger offcanvas-nav-btn"><span></span></button>
</li>
</ul>
<!-- /.navbar-nav -->
</div>
<!-- /.navbar-other -->
</div>
<!-- /.flex -->
<div class="navbar-collapse-wrapper flex flex-row items-center w-full">
<div class="navbar-collapse offcanvas offcanvas-nav offcanvas-start">
<div class="offcanvas-header lg:mx-auto xl:mx-auto order-0 lg:!order-1 lg:!px-[5rem] xl:!order-1 xl:!px-[5rem] p-[1.5rem] !flex items-center justify-between flex-row">
<a class="transition-none hidden lg:!flex xl:!flex" href="./"><img class="logo-dark" src="{{ asset('assets/img/truncgil-yatay.svg') }}" alt="image">
<img class="logo-light" src="{{ asset('assets/img/truncgil-yatay-dark.svg') }}" alt="image"></a>
</div>
<div class="w-full order-1 lg:!order-none lg:!flex xl:!order-none xl:!flex offcanvas-body">
<ul class="navbar-nav lg:!ml-auto xl:!ml-auto">
@foreach($leftMenuItems as $item)
<x-front.menu-item :item="$item" />
@endforeach
</ul>
<!-- /.navbar-nav -->
</div>
<div class="w-full order-3 lg:!order-2 lg:!flex xl:!order-2 xl:!flex offcanvas-body">
<ul class="navbar-nav lg:!mr-auto xl:!mr-auto">
@foreach($rightMenuItems as $item)
<x-front.menu-item :item="$item" />
@endforeach
</ul>
<!-- /.navbar-nav -->
</div>
<div class="offcanvas-body xl:!hidden lg:!hidden order-4 !mt-auto">
<div class="offcanvas-footer">
<div>
<a href="mailto:{{setting('contact_email')}}" class="link-inverse">{{setting('contact_email')}}</a>
<br> <a href="tel:{{setting('contact_phone')}}">{{setting('contact_phone')}}</a> <br>
<nav class="nav social social-white !mt-4">
<?php $social_media = json_decode(setting('social_links'), true); ?>
<a class="!text-[#cacaca] text-[1rem] transition-all duration-[0.2s] ease-in-out translate-y-0 motion-reduce:transition-none hover:translate-y-[-0.15rem] m-[0_.7rem_0_0]" href="{{ !empty($social_media['Twitter']) ? $social_media['Twitter'] : '#' }}" target="_blank" rel="noopener"><i class="uil uil-twitter before:content-['\ed59'] !text-white text-[1rem]"></i></a>
<a class="!text-[#cacaca] text-[1rem] transition-all duration-[0.2s] ease-in-out translate-y-0 motion-reduce:transition-none hover:translate-y-[-0.15rem] m-[0_.7rem_0_0]" href="{{ !empty($social_media['Facebook']) ? $social_media['Facebook'] : '#' }}" target="_blank" rel="noopener"><i class="uil uil-facebook-f before:content-['\eae2'] !text-white text-[1rem]"></i></a>
<a class="!text-[#cacaca] text-[1rem] transition-all duration-[0.2s] ease-in-out translate-y-0 motion-reduce:transition-none hover:translate-y-[-0.15rem] m-[0_.7rem_0_0]" href="{{ !empty($social_media['Github']) ? $social_media['Github'] : '#' }}" target="_blank" rel="noopener"><i class="uil uil-github before:content-['\eb40'] !text-white text-[1rem]"></i></a>
<a class="!text-[#cacaca] text-[1rem] transition-all duration-[0.2s] ease-in-out translate-y-0 motion-reduce:transition-none hover:translate-y-[-0.15rem] m-[0_.7rem_0_0]" href="{{ !empty($social_media['Instagram']) ? $social_media['Instagram'] : '#' }}" target="_blank" rel="noopener"><i class="uil uil-instagram before:content-['\eb9c'] !text-white text-[1rem]"></i></a>
<a class="!text-[#cacaca] text-[1rem] transition-all duration-[0.2s] ease-in-out translate-y-0 motion-reduce:transition-none hover:translate-y-[-0.15rem] m-[0_.7rem_0_0]" href="{{ !empty($social_media['Youtube']) ? $social_media['Youtube'] : '#' }}" target="_blank" rel="noopener"><i class="uil uil-youtube before:content-['\edb5'] !text-white text-[1rem]"></i></a>
</nav>
<!-- /.social -->
</div>
</div>
</div>
</div>
<!-- /.navbar-collapse -->
</div>
<!-- /.navbar-collapse-wrapper -->
</div>
<!-- /.container -->
</nav>
<!-- /.navbar -->
</header>
@@ -4,11 +4,11 @@
$hasChildren = $item->children->isNotEmpty();
$isMegaMenu = $item->slug === 'urunlerimiz';
$productCategories = [];
$categories = [];
$services = [];
if($isMegaMenu) {
$productCategories = \App\Models\ProductCategory::with(['products' => function($q) {
$q->where('is_active', true)->orderBy('sort_order');
}])->where('is_active', true)->orderBy('sort_order')->get();
$categories = \App\Models\ProductCategory::where('is_active', true)->orderBy('sort_order')->get();
$services = \App\Models\Product::where('is_active', true)->orderBy('sort_order')->limit(10)->get();
}
@endphp
@@ -18,27 +18,38 @@
<ul class="dropdown-menu mega-menu">
<li class="mega-menu-content">
<div class="flex flex-wrap mx-0 xl:mx-[-7.5px] lg:mx-[-7.5px]">
@foreach($productCategories as $category)
<div class="xl:w-3/12 lg:w-3/12 md:w-6/12 w-full flex-[0_0_auto] max-w-full mb-8 px-[7.5px]">
<h6 class="dropdown-header !text-[#e31e24] mb-4 border-b border-gray-100 pb-2">
{{ $category->translate('title') }}
</h6>
<ul class="pl-0 list-none space-y-3">
@foreach($category->products as $product)
<li>
<a class='dropdown-item hover:!text-[#e31e24] group flex items-center gap-3 !p-0 !bg-transparent' href='{{ route('products.show', $product->slug) }}'>
<div class="img-mask mask-3 w-10 h-10 shrink-0 bg-gray-100">
@if($product->hero_image)
<img src="{{ \Storage::url($product->hero_image) }}" alt="{{ $product->translate('title') }}" class="w-full h-full object-cover" />
@endif
</div>
<span class="text-sm font-medium group-hover:pl-1 transition-all">{{ $product->translate('title') }}</span>
</a>
</li>
<div class="xl:w-4/12 lg:w-4/12 w-full flex-[0_0_auto] max-w-full">
<h6 class="dropdown-header !text-[#e31e24]">{{ __('Kategoriler') }}</h6>
<ul class="pl-0 list-none xl:columns-2 lg:columns-2 xl:pb-1 lg:pb-1">
@foreach($categories as $category)
<li class="xl:inline-block xl:w-full lg:inline-block lg:w-full">
<a class='dropdown-item hover:!text-[#e31e24]' href='#'>{{ $category->translate('title') }}</a>
</li>
@endforeach
</ul>
</div>
@endforeach
<!--/column -->
<div class="xl:w-8/12 lg:w-8/12 w-full flex-[0_0_auto] max-w-full xl:border-l-[rgba(164,174,198,0.2)] xl:border-l xl:border-solid lg:border-l-[rgba(164,174,198,0.2)] lg:border-l lg:border-solid xl:pl-[15px] lg:pl-[15px]">
<h6 class="dropdown-header !text-[#e31e24] !ml-[10px]">{{ __('Öne Çıkan Ürünler') }}</h6>
<ul class="pl-0 list-none flex flex-wrap -mx-[10px]">
@foreach($services as $service)
<li class="xl:w-4/12 lg:w-4/12 w-full flex-[0_0_auto] xl:px-[10px] xl:mt-[10px] lg:px-[10px] lg:mt-[10px]">
<a class="dropdown-item group !bg-transparent !p-0 text-center" href="{{ route('products.show', $service->slug) }}">
<figure class="!rounded-[.4rem] lift hidden xl:block lg:block !mb-2 shadow-sm border border-gray-100 relative overflow-hidden aspect-[4/3]">
@if($service->hero_image)
<img class="!rounded-[.4rem] w-full h-full object-cover transition-all duration-300 group-hover:scale-105" src="{{ \Storage::url($service->hero_image) }}" alt="{{ $service->translate('title') }}">
@else
<img class="!rounded-[.4rem] w-full h-full object-cover" src="https://placehold.co/600x400?text={{ urlencode($service->translate('title')) }}" alt="{{ $service->translate('title') }}">
@endif
</figure>
<span class="xl:!hidden lg:!hidden">{{ $service->translate('title') }}</span>
<span class="hidden xl:block lg:block text-xs font-bold text-gray-800 group-hover:text-[#e31e24]">{{ $service->translate('title') }}</span>
</a>
</li>
@endforeach
</ul>
</div>
<!--/column -->
</div>
<!--/.row -->
</li>
@@ -1,4 +1,4 @@
@extends('layouts.front')
@extends('layouts.site')
@section('title', $product->translate('title') ?? 'Ürün Detayı')
@section('meta_description', Str::limit(strip_tags($product->translate('content')), 160))
+6 -3
View File
@@ -24,17 +24,20 @@ $favicon_path = setting('site_favicon');
</head>
<body>
{{-- Dynamic Header Template or Static Navbar --}}
@if(isset($renderedHeader) && $renderedHeader)
@if(isset($header) && $header)
@include($header)
@elseif(isset($renderedHeader) && $renderedHeader)
{!! $renderedHeader !!}
@else
@include('partials.header')
@endif
{{-- Main Content --}}
@yield('content')
{{-- Dynamic Footer Template or Static Footer --}}
@if(isset($renderedFooter) && !empty(trim($renderedFooter)))
@if(isset($footer) && $footer)
@include($footer)
@elseif(isset($renderedFooter) && !empty(trim($renderedFooter)))
{!! $renderedFooter !!}
@else
@include('partials.footer')
+9 -9
View File
@@ -26,9 +26,9 @@ $rightMenuItems = $menuItems->slice($midPoint);
<nav class="navbar navbar-expand-lg center-logo transparent position-absolute navbar-dark">
<div class="container justify-between items-center">
<div class="flex flex-row w-full justify-between items-center xl:!hidden lg:!hidden">
<div class="navbar-brand"><a href="./">
<img class="logo-dark" src="assets/img/truncgil-yatay.svg" alt="image">
<img class="logo-light" src="assets/img/truncgil-yatay-dark.svg" alt="image">
<div class="navbar-brand"><a href="{{url("./")}}">
<img class="logo-dark" src="{{url("assets/img/truncgil-yatay.svg")}}" alt="image">
<img class="logo-light" src="{{url("assets/img/truncgil-yatay-dark.svg")}}" alt="image">
</a></div>
<div class="navbar-other !ml-auto">
<ul class="navbar-nav flex-row items-center">
@@ -72,11 +72,11 @@ $rightMenuItems = $menuItems->slice($midPoint);
<br> <a href="tel:{{setting('contact_phone')}}">{{setting('contact_phone')}}</a> <br>
<nav class="nav social social-white !mt-4">
<?php $social_media = json_decode(setting('social_links'), true); ?>
<a class="!text-[#cacaca] text-[1rem] transition-all duration-[0.2s] ease-in-out translate-y-0 motion-reduce:transition-none hover:translate-y-[-0.15rem] m-[0_.7rem_0_0]" href="{{ !empty($social_media['Twitter']) ? $social_media['Twitter'] : '#' }}" target="_blank" rel="noopener"><i class="uil uil-twitter before:content-['\ed59'] !text-white text-[1rem]"></i></a>
<a class="!text-[#cacaca] text-[1rem] transition-all duration-[0.2s] ease-in-out translate-y-0 motion-reduce:transition-none hover:translate-y-[-0.15rem] m-[0_.7rem_0_0]" href="{{ !empty($social_media['Facebook']) ? $social_media['Facebook'] : '#' }}" target="_blank" rel="noopener"><i class="uil uil-facebook-f before:content-['\eae2'] !text-white text-[1rem]"></i></a>
<a class="!text-[#cacaca] text-[1rem] transition-all duration-[0.2s] ease-in-out translate-y-0 motion-reduce:transition-none hover:translate-y-[-0.15rem] m-[0_.7rem_0_0]" href="{{ !empty($social_media['Github']) ? $social_media['Github'] : '#' }}" target="_blank" rel="noopener"><i class="uil uil-github before:content-['\eb40'] !text-white text-[1rem]"></i></a>
<a class="!text-[#cacaca] text-[1rem] transition-all duration-[0.2s] ease-in-out translate-y-0 motion-reduce:transition-none hover:translate-y-[-0.15rem] m-[0_.7rem_0_0]" href="{{ !empty($social_media['Instagram']) ? $social_media['Instagram'] : '#' }}" target="_blank" rel="noopener"><i class="uil uil-instagram before:content-['\eb9c'] !text-white text-[1rem]"></i></a>
<a class="!text-[#cacaca] text-[1rem] transition-all duration-[0.2s] ease-in-out translate-y-0 motion-reduce:transition-none hover:translate-y-[-0.15rem] m-[0_.7rem_0_0]" href="{{ !empty($social_media['Youtube']) ? $social_media['Youtube'] : '#' }}" target="_blank" rel="noopener"><i class="uil uil-youtube before:content-['\edb5'] !text-white text-[1rem]"></i></a>
<a class="!text-[#cacaca] text-[1rem] transition-all duration-[0.2s] ease-in-out translate-y-0 motion-reduce:transition-none hover:translate-y-[-0.15rem] m-[0_.7rem_0_0]" href="#"><i class="uil uil-twitter before:content-['\ed59'] !text-white text-[1rem]"></i></a>
<a class="!text-[#cacaca] text-[1rem] transition-all duration-[0.2s] ease-in-out translate-y-0 motion-reduce:transition-none hover:translate-y-[-0.15rem] m-[0_.7rem_0_0]" href="#"><i class="uil uil-facebook-f before:content-['\eae2'] !text-white text-[1rem]"></i></a>
<a class="!text-[#cacaca] text-[1rem] transition-all duration-[0.2s] ease-in-out translate-y-0 motion-reduce:transition-none hover:translate-y-[-0.15rem] m-[0_.7rem_0_0]" href="#"><i class="uil uil-dribbble before:content-['\eaa2'] !text-white text-[1rem]"></i></a>
<a class="!text-[#cacaca] text-[1rem] transition-all duration-[0.2s] ease-in-out translate-y-0 motion-reduce:transition-none hover:translate-y-[-0.15rem] m-[0_.7rem_0_0]" href="#"><i class="uil uil-instagram before:content-['\eb9c'] !text-white text-[1rem]"></i></a>
<a class="!text-[#cacaca] text-[1rem] transition-all duration-[0.2s] ease-in-out translate-y-0 motion-reduce:transition-none hover:translate-y-[-0.15rem] m-[0_.7rem_0_0]" href="#"><i class="uil uil-youtube before:content-['\edb5'] !text-white text-[1rem]"></i></a>
</nav>
<!-- /.social -->
</div>
@@ -90,4 +90,4 @@ $rightMenuItems = $menuItems->slice($midPoint);
<!-- /.container -->
</nav>
<!-- /.navbar -->
</header>
</header>
+5
View File
@@ -1,3 +1,7 @@
@php
$header = "partials.header";
$footer = "partials.footer";
@endphp
@extends('layouts.site')
@section('title', 'Anasayfa')
@@ -6,6 +10,7 @@
@include('templates.home.hero')
@include('templates.home.services-cards')
@include('templates.home.why-choose-us')
@include('templates.home.carousel')
@include('templates.home.solutions')
@include('templates.home.services-grid')
@@ -0,0 +1,43 @@
@php
$products = \App\Models\Product::where('is_active', true)->whereNotNull('hero_image')->get();
@endphp
<div class="swiper-container swiper-auto swiper-auto-xs !mb-8 relative !z-10 swiper-container-0" data-margin="40" data-nav="false" data-dots="false" data-centered="true" data-loop="true" data-items-auto="true" data-autoplay="true" data-autoplaytime="1" data-drag="false" data-resizeupdate="false" data-speed="7000">
<div class="swiper overflow-visible pointer-events-none">
<div class="swiper-wrapper ticker">
@foreach($products as $product)
<div class="swiper-slide" style="margin-right: 40px;">
<a href="{{ route('products.show', $product->slug) }}" class="block group relative">
<figure class="!rounded-[0.8rem] shadow-[rgba(30,34,40,0.02)_0_2px_1px,rgba(30,34,40,0.02)_0_4px_2px,rgba(30,34,40,0.02)_0_8px_4px,rgba(30,34,40,0.02)_0_16px_8px,rgba(30,34,40,0.03)_0_32px_16px] transition-transform duration-300 group-hover:scale-105">
<img class="!rounded-[.8rem] h-[300px] w-auto object-cover" src="{{ asset('storage/' . $product->hero_image) }}" alt="{{ $product->translate('title') }}">
</figure>
<!-- Tooltip -->
<div class="absolute bottom-2 left-1/2 transform -translate-x-1/2 px-3 py-1 bg-black/80 backdrop-blur-sm text-white text-xs rounded opacity-0 group-hover:opacity-100 transition-opacity duration-300 pointer-events-none whitespace-nowrap z-20">
{{ $product->translate('title') }}
</div>
</a>
</div>
@endforeach
</div>
</div>
</div>
<div class="swiper-container swiper-auto swiper-auto-xs !mb-10 xl:!mb-14 lg:!mb-14 md:!mb-14 relative !z-10 swiper-container-1" data-margin="40" data-nav="false" data-dots="false" data-centered="true" data-loop="true" data-items-auto="true" data-autoplay="true" data-autoplaytime="1" data-drag="false" data-resizeupdate="false" data-speed="7000">
<div class="swiper overflow-visible pointer-events-none swiper-rtl" dir="rtl">
<div class="swiper-wrapper ticker">
@foreach($products as $product)
<div class="swiper-slide" style="margin-left: 40px;">
<a href="{{ route('products.show', $product->slug) }}" class="block group relative">
<figure class="!rounded-[0.8rem] shadow-[rgba(30,34,40,0.02)_0_2px_1px,rgba(30,34,40,0.02)_0_4px_2px,rgba(30,34,40,0.02)_0_8px_4px,rgba(30,34,40,0.02)_0_16px_8px,rgba(30,34,40,0.03)_0_32px_16px] transition-transform duration-300 group-hover:scale-105">
<img class="!rounded-[.8rem] h-[300px] w-auto object-cover" src="{{ asset('storage/' . $product->hero_image) }}" alt="{{ $product->translate('title') }}">
</figure>
<!-- Tooltip -->
<div class="absolute bottom-2 left-1/2 transform -translate-x-1/2 px-3 py-1 bg-black/80 backdrop-blur-sm text-white text-xs rounded opacity-0 group-hover:opacity-100 transition-opacity duration-300 pointer-events-none whitespace-nowrap z-20">
{{ $product->translate('title') }}
</div>
</a>
</div>
@endforeach
</div>
</div>
</div>