Amaç: Hero widget için settings schema'sını tasarlamak ve admin panelde nasıl görüneceğini planlamak.
Yaklaşım: Kademe kademe ilerleyeceğiz. Her adımda test edilebilir, geri alınabilir.
Admin Panel: https://tuufi.com/admin/widgetmanagement/manage
Hero widget için admin panelde düzenlenebilecek ayarlar:
| Alan Adı | Tip | Açıklama | Varsayılan Değer (İxtif) |
|---|---|---|---|
| title_line1 | text | Başlık birinci satır | TÜRKİYE'NİN |
| title_line2 | text | Başlık ikinci satır | İSTİF PAZARI |
| description | textarea | Ana açıklama metni | Profesyonel istif çözümleri, güçlü stok ve hızlı teslimat ile işletmenizin güvenilir ortağı |
| cta_text | text | CTA button yazısı | Ürünleri İncele |
| cta_url | url | CTA button linki | /shop |
| cta_icon | text | CTA button icon (FontAwesome class) | fa-light fa-shopping-cart |
| hero_image | image | Hero görseli (media picker) | storage/tenant2/4/hero.png |
| hero_image_alt | text | Hero görsel alt text (SEO) | iXtif İstif Makinesi - Forklift |
Settings formu admin panelde şu şekilde görünecek:
Hero başlığının ilk satırı
Hero başlığının ikinci satırı
Hero bölümünün açıklama metni
Call-to-action button metni
Button tıklandığında gidilecek sayfa
FontAwesome icon class (opsiyonel)
Mevcut: hero.png
Ana hero görseli (önerilen: 1200x800px)
SEO için görsel açıklaması
4 feature kartı için widget item schema'sı:
| Alan Adı | Tip | Açıklama | Örnek Değer |
|---|---|---|---|
| title | text | Feature başlığı (otomatik - sistem alanı) | Güçlü Stok |
| icon | text | FontAwesome icon class | fa-light fa-boxes-stacked |
| subtitle | text | Alt başlık / açıklama | Zengin ürün çeşidi |
| is_active | switch | Aktif/Pasif (otomatik - sistem alanı) | true |
title ve is_active alanları otomatik olarak eklenir (Widget.php ensureRequiredItemFields metodu). Bunları schema'ya manuel eklemeye gerek yok!
Her adımı sırayla yapacağız, test edeceğiz, sorun olursa geri alacağız:
Ne Yapacağız?
Widget kaydını database'den sil:
DELETE FROM widgets WHERE slug = 'hero-ixtif';
Admin panelde "Hero - İxtif" widget'ı görünecek. Henüz kullanılamaz (Blade dosyası yok), ama ayarlar tanımlı olacak.
Ne Yapacağız?
blocks/hero/ixtif-hero/view.blade.phppublic/test-hero.php@widget('hero-ixtif')Blade dosyasını sil:
sudo rm -rf /path/to/blocks/hero/ixtif-hero/
Test sayfasında basit Hero HTML render olacak. Değişkenler boş, ama yapı çalışıyor.
Ne Yapacağız?
TenantWidget kaydını sil:
DELETE FROM tenant_widgets WHERE widget_id = [widget_id];
Hero bölümünde başlık, açıklama, CTA button görünecek. Görsel render olacak. Feature kartları henüz yok.
Ne Yapacağız?
WidgetItem kayıtlarını sil:
DELETE FROM widget_items WHERE tenant_widget_id = [tenant_widget_id];
Hero bölümünde 4 feature kartı görünecek. Tüm içerik dinamik, admin panelden düzenlenebilir.
Ne Yapacağız?
Bu adımda dosyayı değiştireceğiz. Mutlaka önce git commit yapacağız!
git add . && git commit -m "CHECKPOINT: Before Hero widget"php artisan view:clearGit ile geri al:
git reset --hard HEAD~1
# veya
git checkout homepage.blade.php
Ana sayfa önceki gibi görünecek, ama artık widget sistemi üzerinden! 757 satır → 676 satır.
Ne Yapacağız?
Tüm testler başarılı! Hero widget production'a hazır. Admin panelden kolayca düzenlenebiliyor.
Şu An: Settings tasarımı ve kademe kademe plan hazır.
Sonraki Adım: Adım 1'i gerçekleştireceğiz - Widget kaydı oluştur (Central DB).
Onayınızı Bekliyorum: "Adım 1'e başla" derseniz, Widget kaydını oluşturacağım.