feat: Add Logos page, refactor Testimonials to RelationManager, and improve designs
This commit is contained in:
@@ -0,0 +1,128 @@
|
||||
@extends('layouts.site')
|
||||
|
||||
@section('content')
|
||||
|
||||
<section class="wrapper bg-light">
|
||||
<div class="container pt-14 pb-14 xl:pt-20 xl:pb-20 lg:pt-20 lg:pb-20 md:pt-20 md:pb-20">
|
||||
|
||||
<div class="row text-center mb-10">
|
||||
<div class="col-md-10 col-lg-8 col-xl-7 mx-auto">
|
||||
<h1 class="display-1 mb-3">{!! t('Logolarımız') !!}</h1>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-10 col-xl-9 mx-auto">
|
||||
<h2 class="display-6 mb-6">{!! t('Logomuzun Felsefesi') !!}</h2>
|
||||
|
||||
<div class="description-text mb-10">
|
||||
<p class="mb-4">
|
||||
{!! t('Trunçgil, kelime anlamıyla birçok kelimenin birleşmesinden meydana gelmektedir. Dikkat ederseniz "turunçgil" tabirinden farklı olarak baştaki "T" ile "r" arasında "u" harfi yoktur. Bunun sebebi "Türkiye Cumhuriyeti"nin ulusal kısaltması olan "Tr" yi nitelemektedir.') !!}
|
||||
</p>
|
||||
<p class="mb-4">
|
||||
{!! t('"r" harfini kapattığınızda Trunçgil\'in kurucusu olan Ümit Tunç\'un soy ismi "Tunç" kelimesi oluşmaktadır. "gil" tabiri Türkçe\'de aile, ekosistem kavramını, Osmanlıca\'da su ile bulanmış toprak anlamını taşıyan "kil" tabirini ortaya çıkartmaktadır. Kelimenin toplamına baktığımızda okunuş itibariyle "turunçgil" turuncuyu yani dinamizmi simgelemektedir. Aynı zamanda İngilizce\'de budamak, kesmek anlamına gelen "truncate" kelimesini de çağrıştırmaktadır. Detaylı olarak bu kelimelerin logo üzerindeki anlamlarını açıklayalım.') !!}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="space-y-8">
|
||||
<div>
|
||||
<h4 class="mb-3">{!! t('TR: Önce Türkiye, Öncü Türkiye') !!}</h4>
|
||||
<p>
|
||||
{!! t('Yaptığımız ve yapacağımız bütün işlerin güzel yurdumuz olan Türkiye\'ye adadığımızı, baştan taahhüt etmekteyiz.') !!}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h4 class="mb-3">{!! t('Tunç: Dayanıklılık ve Güç') !!}</h4>
|
||||
<p>
|
||||
{!! t('Ayakkabı tamiri yapan atamızın çekiç ve örs aletleri tunçtan yapılmıştı. 1934\'de yayınlanan soy ismi kanununda bu sebeple Tunç soyadını almışız. Tunç madeninin kullanım alanları çok dayanıklı araç ve gereçlerin yapımına sebep olmuştur. Dayanıklı araç ve gereçlerin dışında nispeten çok ince emek isteyen mücevher, takı ve süs aksesuarlarında da kullanılmıştır. Güçlü silahlar, değerli eşyalar ve süs eşyaları yapımında tunç madeninden oldukça faydalanılmıştır.') !!}
|
||||
</p>
|
||||
<p class="mt-4">
|
||||
{!! t('Bundan dolayıdır ki yapacağımız tüm işler tunç madeni kadar dayanıklı, tunç kadar ince emek isteyen işlerden oluşmasıdır.') !!}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h4 class="mb-3">{!! t('Gil: Aile, ekosistem / kil yarı mamulü') !!}</h4>
|
||||
<p>
|
||||
{!! t('Toplumun en küçük birimi olan sosyal yapıyı niteleyen aile kavramını bütünsel yapılanma ve yapmış olduğumuz tüm ürünlerin bir ailenin ferdi olarak nitelendirdiğimizi belirtmek isteriz.') !!}
|
||||
</p>
|
||||
<p class="mt-4">
|
||||
{!! t('Osmanlıcadaki "gil" kelimesinin anlamı, sulanmış toprak olan "kil" hamur gibi işlenen ve bir ürün ortaya çıkartmak için kullanılan yarı mamulünü niteler. Dolayısıyla "gil", sistemde değişikliğe gidebilecek olduğumuzu, yapılan bir işi farklı bir işe kolay evirebileceğimizi nitelemektedir.') !!}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h4 class="mb-3">{!! t('Truncate: Verimlilik için budamak') !!}</h4>
|
||||
<p>
|
||||
{!! t('Transact SQL dilinde de kullanılan "Truncate" deyimi budamak, kesmek anlamına gelmektedir. Budama aynı zamanda botanikte de bitkinin daha verimli olabilmesini, daha sağlıklı gelişebilmesini sağlamak amacıyla yapılan, fazla veya istenmeyen dalların kesilmesini sağlayan bir eylemdir.') !!}
|
||||
</p>
|
||||
<p class="mt-4">
|
||||
{!! t('Dolayısıyla "truncate" bizim nezdimizde yalın kodu, basitliğin en güzel gelişmişlik olduğunu betimlemektedir.') !!}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-15">
|
||||
<h2 class="display-6 mb-8 text-center">{!! t('Logo Varyasyonlarımız') !!}</h2>
|
||||
|
||||
|
||||
@php
|
||||
$data = $page->data ?? [];
|
||||
$logos = [
|
||||
['label' => 'Logo 1', 'file' => $data['logo_1'] ?? null],
|
||||
['label' => 'Logo 2', 'file' => $data['logo_2'] ?? null],
|
||||
['label' => 'Logo 3', 'file' => $data['logo_3'] ?? null],
|
||||
];
|
||||
@endphp
|
||||
|
||||
<div class="row g-8">
|
||||
@foreach($logos as $logo)
|
||||
@if($logo['file'])
|
||||
<div class="col-md-4">
|
||||
<div class="card shadow-sm h-100 hover-shadow transition-all duration-300">
|
||||
<div class="card-body p-6 text-center flex flex-col justify-between">
|
||||
<div>
|
||||
<div class="bg-gray-100/50 border border-gray-100 rounded-lg p-6 mb-4 flex items-center justify-center min-h-[120px] relative overflow-hidden transition-colors">
|
||||
<!-- Decorative Elements -->
|
||||
<div class="absolute top-0 right-0 -mt-2 -mr-2 w-12 h-12 bg-primary/5 rounded-full blur-xl"></div>
|
||||
<div class="absolute bottom-0 left-0 -mb-2 -ml-2 w-14 h-14 bg-blue-500/5 rounded-full blur-xl"></div>
|
||||
|
||||
<img src="{{ asset('storage/' . $logo['file']) }}" class="img-fluid relative z-10 drop-shadow-sm group-hover:scale-105 transition-transform duration-300" style="max-height: 80px;" alt="{{ $logo['label'] }}">
|
||||
</div>
|
||||
<h5 class="mb-1 font-bold text-dark">{!! t($logo['label']) !!}</h5>
|
||||
</div>
|
||||
<div class="flex gap-2 justify-center mt-3 scale-90 origin-top">
|
||||
<a href="{{ asset('storage/' . $logo['file']) }}" download class="btn btn-soft-primary btn-sm rounded-pill px-4">
|
||||
<i class="uil uil-download-alt me-1 text-xs"></i> {!! t('İndir') !!}
|
||||
</a>
|
||||
<a href="{{ route('logo.preview', ['path' => $logo['file'], 'bg' => 'f8f9fa']) }}" target="_blank" class="btn btn-soft-primary btn-sm rounded-pill px-4">
|
||||
<i class="uil uil-external-link-alt me-1 text-xs"></i> {!! t('Görüntüle') !!}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
<div class="alert alert-info border-0 shadow-sm mt-12 bg-gray-100">
|
||||
<div class="flex items-start gap-4">
|
||||
<i class="uil uil-info-circle text-primary text-xl mt-1"></i>
|
||||
<div>
|
||||
<h5 class="mb-2">{!! t('Logoların Kullanımı Hakkında') !!}</h5>
|
||||
<p class="text-sm mb-0">
|
||||
{!! t('Trunçgil logoları, markanın bütünlüğünü korumak adına oranları bozulmadan ve renk paletine sadık kalınarak kullanılmalıdır. SVG formatındaki dosyalar yüksek kalitede baskı için uygundur.') !!}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@endsection
|
||||
@@ -3,12 +3,12 @@
|
||||
@section('content')
|
||||
|
||||
{{-- Unified Hero & Testimonials Section --}}
|
||||
<section class="wrapper image-wrapper bg-image bg-overlay bg-overlay-400" data-image-src="{{ asset('assets/img/photos/bg18.png') }}">
|
||||
<section id="testimonials-hero" class="wrapper image-wrapper bg-image bg-overlay bg-overlay-500" data-image-src="{{ asset('assets/img/photos/bg1.jpg') }}">
|
||||
|
||||
{{-- Inline style override to ensure background image works if JS fails --}}
|
||||
{{-- Inline style scoped to this ID --}}
|
||||
<style>
|
||||
.wrapper.bg-image[data-image-src] {
|
||||
background-image: url("{{ asset('assets/img/photos/bg18.png') }}");
|
||||
#testimonials-hero.bg-image[data-image-src] {
|
||||
background-image: url("{{ asset('assets/img/photos/bg1.jpg') }}");
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -30,20 +30,34 @@
|
||||
<div class="swiper-container dots-closer dots-light dots-light-75" data-margin="30" data-dots="true" data-items-xl="3" data-items-md="2" data-items-xs="1">
|
||||
<div class="swiper">
|
||||
<div class="swiper-wrapper">
|
||||
@php
|
||||
$testimonials = $page ? $page->testimonials()->where('is_active', true)->orderBy('sort_order')->get() : collect([]);
|
||||
@endphp
|
||||
|
||||
{{-- Müşteri 1: Stellar Construction --}}
|
||||
@forelse($testimonials as $testimonial)
|
||||
<div class="swiper-slide">
|
||||
<div class="item-inner">
|
||||
<div class="card border-0 h-full" style="background-color: rgba(255, 255, 255, 0.85); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.5); box-shadow: 0 10px 30px rgba(0,0,0,0.05);">
|
||||
<div class="card-body flex-[1_1_auto] p-[40px]">
|
||||
<span class="ratings inline-block relative w-20 h-[0.8rem] text-[0.9rem] leading-none before:text-[rgba(0,0,0,0.1)] five !mb-4" style="color: #fcc032;"></span>
|
||||
<span class="ratings inline-block relative w-20 h-[0.8rem] text-[0.9rem] leading-none before:text-[rgba(0,0,0,0.1)] five !mb-4" style="color: #fcc032;">
|
||||
@for($i=0; $i<$testimonial->rating; $i++)
|
||||
<i class="uil uil-star"></i>
|
||||
@endfor
|
||||
</span>
|
||||
|
||||
<blockquote class="!text-[1rem] !leading-[1.7] font-medium m-[0_0_1rem] !mb-0 text-[#1e293b]">
|
||||
<p>“{!! t('Dijital dönüşüm yolculuğumuzda yanımızda oldukları için mutluyuz. Profesyonel yaklaşımları ve çözüm odaklı çalışmaları ile projelerimize değer kattılar.') !!}”</p>
|
||||
<p>“{!! $testimonial->content !!}”</p>
|
||||
<div class="flex items-center text-left mt-6">
|
||||
@if($testimonial->avatar)
|
||||
<div class="avatar w-12 h-12 !mr-4">
|
||||
<img src="{{ asset('storage/' . $testimonial->avatar) }}" class="!rounded-[50%] w-full h-full object-cover" alt="{{ $testimonial->name }}">
|
||||
</div>
|
||||
@endif
|
||||
<div class="info p-0">
|
||||
<h5 class="!mb-0 text-[#1e293b] !font-bold !text-[1.05rem]">Kerem Can Azak</h5>
|
||||
<p class="!mb-0 !text-[0.85rem] text-[#1e293b] opacity-70">Stellar Construction</p>
|
||||
<h5 class="!mb-0 text-[#1e293b] !font-bold !text-[1.05rem]">{{ $testimonial->name }}</h5>
|
||||
@if($testimonial->position)
|
||||
<p class="!mb-0 !text-[0.85rem] text-[#1e293b] opacity-70">{{ $testimonial->position }}</p>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</blockquote>
|
||||
@@ -51,47 +65,15 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- Müşteri 2: Dijimind Akademi --}}
|
||||
@empty
|
||||
<div class="swiper-slide">
|
||||
<div class="item-inner">
|
||||
<div class="card border-0 h-full" style="background-color: rgba(255, 255, 255, 0.85); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.5); box-shadow: 0 10px 30px rgba(0,0,0,0.05);">
|
||||
<div class="card-body flex-[1_1_auto] p-[40px]">
|
||||
<span class="ratings inline-block relative w-20 h-[0.8rem] text-[0.9rem] leading-none before:text-[rgba(0,0,0,0.1)] five !mb-4" style="color: #fcc032;"></span>
|
||||
<blockquote class="!text-[1rem] !leading-[1.7] font-medium m-[0_0_1rem] !mb-0 text-[#1e293b]">
|
||||
<p>“{!! t('Eğitim teknolojileri alanındaki vizyoner bakış açıları ve teknik altyapı konusundaki uzmanlıkları sayesinde hedeflediğimiz kitleye çok daha etkili bir şekilde ulaştık.') !!}”</p>
|
||||
<div class="flex items-center text-left mt-6">
|
||||
<div class="info p-0">
|
||||
<h5 class="!mb-0 text-[#1e293b] !font-bold !text-[1.05rem]">Servet Demir</h5>
|
||||
<p class="!mb-0 !text-[0.85rem] text-[#1e293b] opacity-70">Dijimind Akademi</p>
|
||||
</div>
|
||||
</div>
|
||||
</blockquote>
|
||||
</div>
|
||||
<div class="text-center text-white opacity-50">
|
||||
<p>{{ t('Henüz bir müşteri görüşü eklenmemiş.') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- Müşteri 3: Rhapsode Akademik Yayınevi --}}
|
||||
<div class="swiper-slide">
|
||||
<div class="item-inner">
|
||||
<div class="card border-0 h-full" style="background-color: rgba(255, 255, 255, 0.85); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.5); box-shadow: 0 10px 30px rgba(0,0,0,0.05);">
|
||||
<div class="card-body flex-[1_1_auto] p-[40px]">
|
||||
<span class="ratings inline-block relative w-20 h-[0.8rem] text-[0.9rem] leading-none before:text-[rgba(0,0,0,0.1)] five !mb-4" style="color: #fcc032;"></span>
|
||||
<blockquote class="!text-[1rem] !leading-[1.7] font-medium m-[0_0_1rem] !mb-0 text-[#1e293b]">
|
||||
<p>“{!! t('Akademik yayıncılık süreçlerimizi dijitalleştirirken sundukları yenilikçi çözümler ve hızlı destekleri için teşekkür ederiz. Güvenilir bir iş ortağı.') !!}”</p>
|
||||
<div class="flex items-center text-left mt-6">
|
||||
<div class="info p-0">
|
||||
<h5 class="!mb-0 text-[#1e293b] !font-bold !text-[1.05rem]">A. Cezmi Savaş</h5>
|
||||
<p class="!mb-0 !text-[0.85rem] text-[#1e293b] opacity-70">Rhapsode Akademik Yayınevi</p>
|
||||
</div>
|
||||
</div>
|
||||
</blockquote>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endforelse
|
||||
</div>
|
||||
<!--/.swiper-wrapper -->
|
||||
</div>
|
||||
|
||||
@@ -30,10 +30,18 @@
|
||||
@endif
|
||||
@endforeach
|
||||
@else
|
||||
{{-- Hiç blok yoksa placeholder göster --}}
|
||||
<div class="container py-24 text-center">
|
||||
<h2 class="!text-[2rem] !mb-4">Bu sayfa henüz içerik eklenmemiş</h2>
|
||||
<p>Admin panelinden bu sayfaya bloklar ekleyebilirsiniz.</p>
|
||||
{{-- Hiç blok yoksa standart content'i göster --}}
|
||||
<div class="container py-24">
|
||||
@if($page && $page->translate('content'))
|
||||
<div class="prose max-w-none">
|
||||
{!! $page->translate('content') !!}
|
||||
</div>
|
||||
@else
|
||||
<div class="text-center">
|
||||
<h2 class="!text-[2rem] !mb-4">{{ t('Bu sayfa henüz içerik bulunmuyor') }}</h2>
|
||||
<p>{{ t('Admin panelinden bu sayfaya içerik veya bloklar ekleyebilirsiniz.') }}</p>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
@endsection
|
||||
|
||||
@@ -19,45 +19,36 @@
|
||||
<div class="swiper-container dots-start dots-closer !mb-6 relative z-10 swiper-container-0" data-margin="30" data-dots="true">
|
||||
<div class="swiper swiper-initialized swiper-horizontal swiper-pointer-events swiper-backface-hidden">
|
||||
<div class="swiper-wrapper">
|
||||
@php
|
||||
$homePageTestimonials = $page ? $page->testimonials()->where('is_active', true)->orderBy('sort_order')->get() : collect([]);
|
||||
|
||||
// If home page has no testimonials, maybe fetch from 'musteri-gorusleri' page as fallback
|
||||
if ($homePageTestimonials->isEmpty()) {
|
||||
$tPage = \App\Models\Page::where('slug', 'musteri-gorusleri')->first();
|
||||
if ($tPage) {
|
||||
$homePageTestimonials = $tPage->testimonials()->where('is_active', true)->orderBy('sort_order')->take(5)->get();
|
||||
}
|
||||
}
|
||||
@endphp
|
||||
|
||||
@forelse($homePageTestimonials as $testimonial)
|
||||
<div class="swiper-slide">
|
||||
<span class="ratings inline-block relative w-20 h-[0.8rem] text-[0.9rem] leading-none before:text-[rgba(38,43,50,0.1)] after:inline-block after:not-italic after:font-normal after:absolute after:!text-[#fcc032] after:content-['\2605\2605\2605\2605\2605'] after:overflow-hidden after:left-0 after:top-0 before:inline-block before:not-italic before:font-normal before:absolute before:!text-[#fcc032] before:content-['\2605\2605\2605\2605\2605'] before:overflow-hidden before:left-0 before:top-0 five !mb-3"></span>
|
||||
<blockquote class="pl-0 text-[1.05rem] !mb-0 border-0 !leading-[1.7] font-medium m-[0_0_1rem]">
|
||||
<p>"{!! t('Dijital dönüşüm yolculuğumuzda yanımızda oldukları için mutluyuz. Profesyonel yaklaşımları ve çözüm odaklı çalışmaları ile projelerimize değer kattılar.') !!}"</p>
|
||||
<p>"{!! $testimonial->content !!}"</p>
|
||||
<div class="flex items-center text-left">
|
||||
<div class="info !pl-0">
|
||||
<h5 class="!mb-1 text-[.95rem] !leading-[1.5]">Kerem Can Azak</h5>
|
||||
<p class="!mb-0 text-[.85rem]">Stellar Construction</p>
|
||||
<h5 class="!mb-1 text-[.95rem] !leading-[1.5]">{{ $testimonial->name }}</h5>
|
||||
<p class="!mb-0 text-[.85rem]">{{ $testimonial->position }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</blockquote>
|
||||
</div>
|
||||
<!--/.swiper-slide -->
|
||||
@empty
|
||||
<div class="swiper-slide">
|
||||
<span class="ratings inline-block relative w-20 h-[0.8rem] text-[0.9rem] leading-none before:text-[rgba(38,43,50,0.1)] after:inline-block after:not-italic after:font-normal after:absolute after:!text-[#fcc032] after:content-['\2605\2605\2605\2605\2605'] after:overflow-hidden after:left-0 after:top-0 before:inline-block before:not-italic before:font-normal before:absolute before:!text-[#fcc032] before:content-['\2605\2605\2605\2605\2605'] before:overflow-hidden before:left-0 before:top-0 five !mb-3"></span>
|
||||
<blockquote class="pl-0 text-[1.05rem] !mb-0 border-0 !leading-[1.7] font-medium m-[0_0_1rem]">
|
||||
<p>"{!! t('Eğitim teknolojileri alanındaki vizyoner bakış açıları ve teknik altyapı konusundaki uzmanlıkları sayesinde hedeflediğimiz kitleye çok daha etkili bir şekilde ulaştık.') !!}"</p>
|
||||
<div class="flex items-center text-left">
|
||||
<div class="info !pl-0">
|
||||
<h5 class="!mb-1 text-[.95rem] !leading-[1.5]">Servet Demir</h5>
|
||||
<p class="!mb-0 text-[.85rem]">Dijimind Akademi</p>
|
||||
</div>
|
||||
</div>
|
||||
</blockquote>
|
||||
<p class="text-center opacity-50">{{ t('Müşteri görüşleri yakında burada olacak.') }}</p>
|
||||
</div>
|
||||
<!--/.swiper-slide -->
|
||||
<div class="swiper-slide">
|
||||
<span class="ratings inline-block relative w-20 h-[0.8rem] text-[0.9rem] leading-none before:text-[rgba(38,43,50,0.1)] after:inline-block after:not-italic after:font-normal after:absolute after:!text-[#fcc032] after:content-['\2605\2605\2605\2605\2605'] after:overflow-hidden after:left-0 after:top-0 before:inline-block before:not-italic before:font-normal before:absolute before:!text-[#fcc032] before:content-['\2605\2605\2605\2605\2605'] before:overflow-hidden before:left-0 before:top-0 five !mb-3"></span>
|
||||
<blockquote class="pl-0 text-[1.05rem] !mb-0 border-0 !leading-[1.7] font-medium m-[0_0_1rem]">
|
||||
<p>"{!! t('Akademik yayıncılık süreçlerimizi dijitalleştirirken sundukları yenilikçi çözümler ve hızlı destekleri için teşekkür ederiz. Güvenilir bir iş ortağı.') !!}"</p>
|
||||
<div class="flex items-center text-left">
|
||||
<div class="info !pl-0">
|
||||
<h5 class="!mb-1 text-[.95rem] !leading-[1.5]">A. Cezmi Savaş</h5>
|
||||
<p class="!mb-0 text-[.85rem]">Rhapsode Akademik Yayınevi</p>
|
||||
</div>
|
||||
</div>
|
||||
</blockquote>
|
||||
</div>
|
||||
<!--/.swiper-slide -->
|
||||
@endforelse
|
||||
</div>
|
||||
<!--/.swiper-wrapper -->
|
||||
<span class="swiper-notification" aria-live="assertive" aria-atomic="true"></span></div>
|
||||
|
||||
Reference in New Issue
Block a user