🔍 Widget Yaklaşım Analizi

📅 Tarih: 2025-12-04 | 🎯 Konu: Mevcut FILE Widget'lar vs Bizim Hero Widget

📊 Mevcut Sistem vs Bizim İhtiyaç

MEVCUT FILE Widget Sistemi

Sistemde şu an kullanılan genel amaçlı widget'lar

Örnekler:

  • hero-1 (Hero 1)
  • hero-simple (Simple)
  • cards-basic (Basic)
  • layout-two-columns (Two Columns)

Settings Örneği:

{ "settings_schema": [ { "name": "title", "type": "text", "label": "Başlık" }, { "name": "unique_id", "type": "text", "label": "ID" } ] } 👉 Sadece 2 alan!

Özellikler:

  • ✅ Çok basit (2 alan)
  • ✅ İçerik hardcoded (Blade'de sabit)
  • ✅ Genel amaçlı
  • ✅ Sürükle-bırak ile eklenebilir
  • ✅ "Boş şablon" mantığı

BİZİM Hero Widget (İxtif)

Homepage hero bölümü için özel widget

Örnek:

  • hero-ixtif (Hero - İxtif Ana Banner)

Settings Örneği:

{ "settings_schema": [ {"name": "title_line1", ...}, {"name": "title_line2", ...}, {"name": "description", ...}, {"name": "cta_text", ...}, {"name": "cta_url", ...}, {"name": "cta_icon", ...}, {"name": "hero_image", ...}, {"name": "hero_image_alt", ...} ] } 👉 8 alan!

Özellikler:

  • ⚠️ Çok karmaşık (8 alan)
  • ⚠️ İçerik tamamen dinamik
  • ⚠️ İxtif'e ÖZEL
  • ⚠️ Homepage için özel
  • ⚠️ "Dolu widget" mantığı

📋 Detaylı Karşılaştırma

Özellik Mevcut FILE Widget'lar Bizim Hero Widget
Settings Sayısı 2 alan (basit) 8 alan (karmaşık)
İçerik Hardcoded (Blade'de sabit) Dinamik (DB'den çekiliyor)
Kullanım Amacı Genel amaçlı, her yerde Homepage'e özel
Tenant Tüm tenant'lar kullanabilir Sadece İxtif
Sürükle-Bırak ✅ Var ❌ Gerekmez (direkt homepage)
Items (WidgetItem) ❌ Yok (basit) ✅ Var (4 feature kartı)
Kategori Hero, Cards, Layout... Homepage Components?

⚠️ Sorun Nedir?

Bizim Hero Widget Mevcut Sistemle Uyuşmuyor!

Mevcut FILE widget'lar "boş şablon" mantığıyla çalışıyor. Basit, genel amaçlı.

Bizim Hero widget ise "dolu, özel widget" mantığında. Karmaşık, homepage'e özel.

İkisi aynı sistemde yan yana durduğunda uyumsuz görünüyor!

🎯 3 Seçenek

❌ SEÇENEK 2: İptal Et, Widget Kullanma

Widget sistemini kullanma. Homepage.blade.php'de direkt dinamik yap (Settings modülü kullan).

✅ Artılar
  • Basit, direkt
  • Mevcut sistemle karışmaz
  • Settings modülü yeterli
❌ Eksiler
  • Widget sistemi kullanılmaz
  • Yeniden kullanılamaz
  • Tenant-aware değil
  • Admin panel widget yönetimi yok
  • Homepage.blade.php şişer (757 satır kalır)

⚠️ SEÇENEK 3: CUSTOM Widget (DB'de HTML)

FILE değil, CUSTOM tipi kullan. HTML yapısını da DB'de sakla.

✅ Artılar
  • İxtif'e özel
  • Admin panelden düzenlenebilir
  • Tamamen esnek
❌ Eksiler
  • Her tenant ayrı HTML (maintenance zor)
  • Git versiyon kontrolü yok
  • FILE sisteminden farklı
  • XSS riski

🎯 Karar Zamanı!

BENİM ÖNERİM: Seçenek 1 (FILE widget + Kategori ekle)

Widget sistemi kullanmak doğru yaklaşım. Sadece "Homepage Components" kategorisi ekleyip, genel widget'lardan ayırmalıyız.

VEYA şu an iptal edip, başka bir çözüm düşünebiliriz.