🔧 Widget Form Builder Ayrımı

📅 Tarih: 2025-12-04 | 🎯 Konu: FILE Widget ve Form Builder Organizasyonu | 👤 Pratik Çözümler

📊 Mevcut Durum - Sorun Ne?

33
Toplam FILE Widget
1
Schema Dosyası Var (ixtif-hero)
32
Schema Dosyası YOK (Boş)
0
items.json Kullanan Widget
⚠️ Ana Sorun: Form Builder, widget'ları düzenlemek için settings.json ve items.json dosyalarına ihtiyaç duyuyor. Ama sadece 1 widget'ta bu dosyalar var. Diğer 32 widget'ı Form Builder kullanamıyor!

Widget Detayları

Kategori Widget Adı view.blade.php settings.json items.json
HERO ixtif-hero ✅ Var ✅ Var ❌ Yok
HERO hero-1 ✅ Var ❌ Yok ❌ Yok
HERO simple ✅ Var ❌ Yok ❌ Yok
FORM contact-form ✅ Var ❌ Yok ❌ Yok
FORM contact-assistant ✅ Var ❌ Yok ❌ Yok
CARDS basic ✅ Var ❌ Yok ❌ Yok
CARDS grid ✅ Var ❌ Yok ❌ Yok
FEATURES basic ✅ Var ❌ Yok ❌ Yok
TESTIMONIALS basic ✅ Var ❌ Yok ❌ Yok
LAYOUT two-columns (ve 10+ varyant) ✅ Var ❌ Yok ❌ Yok
MODULES page, portfolio, announcement ❌ Yok ❌ Yok ❌ Yok

🚨 Tespit Edilen Sorunlar

1. Form Builder Hangi Widget'larla Çalışmalı?

Şu anda tüm FILE widget'lar aynı kategoride. Hangisi Form Builder ile çalışacak, hangisi sadece statik view olacak belli değil.

  • Hero, Form, Cards → Form Builder'a ihtiyaç var
  • Layout (two-columns vb.) → Sadece container, Form Builder gereksiz
  • Modules → Backend'den veri çekiyor, schema gereksiz

2. Boş FILE Widget'lar

32 widget'ın schema dosyaları yok. Form Builder bu widget'ları düzenleyemiyor.

  • Hero-1, Simple → Başlık, açıklama, buton ayarları yok
  • Contact-form → Form field'ları yok
  • Cards, Features → Döngü için items.json yok

3. Ayrım Sistemi Yok

Widget database'inde widget'ı ayırt edecek flag yok.

  • Hangi widget Form Builder destekliyor?
  • Hangi widget sadece statik view?
  • Admin panelde nasıl gösterelim?

💡 Önerilen Çözümler

Çözüm 1: Database'e Flag Ekle (ÖNERİLEN)

widgets tablosuna yeni field: supports_form_builder (boolean)

✅ Artıları
  • Basit ve net ayırım
  • Admin panelde filtre kolaylığı
  • Mevcut sisteme kolay entegre
  • Widget bazında kontrol
❌ Eksileri
  • Migration gerekli
  • Mevcut widget'ları güncelleme gerekli

Nasıl Çalışır:

  • Hero, Form, Cards → supports_form_builder = 1
  • Layout, Modules → supports_form_builder = 0
  • Admin'de: "Form Builder ile düzenle" butonu sadece support eden widget'larda görünür

Çözüm 2: Widget Type'ı Böl

Mevcut FILE type'ı ikiye ayır: FILE-STATIC ve FILE-DYNAMIC

✅ Artıları
  • Kategorik ayırım net
  • Type bazında filtreleme kolay
❌ Eksileri
  • Mevcut kodu etkileyebilir
  • Type enum'ını genişletmek gerekir
  • Tüm FILE kontrollerini güncellemek lazım

Çözüm 3: Otomatik Tespit

Schema dosyalarının varlığına göre otomatik tespit

✅ Artıları
  • Migration gereksiz
  • Otomatik, elle ayar yok
❌ Eksileri
  • Her kontrol file system okuma gerektirir
  • Performance sorunu olabilir
  • Cache gerekir

🎯 Öncelik Sırası - Hangi Widget'ları Önce Tamamlamalıyız?

Yüksek Öncelik

Orta Öncelik

Düşük Öncelik

❌ Schema Gerekmeyenler

📋 Adım Adım Yapılacaklar

1. Adım: Database'e Flag Ekle

  • Migration oluştur: add_supports_form_builder_to_widgets
  • Field: supports_form_builder (boolean, default: 0)
  • Hero, Form, Cards, Features, Testimonials → 1 yap
  • Layout, Modules → 0 bırak

2. Adım: Hero Widget'ları Tamamla

  • hero/hero-1/settings.json oluştur (ixtif-hero'yu referans al)
  • hero/simple/settings.json oluştur
  • View dosyalarını güncelle (settings'ten veri çekecek şekilde)
  • Database settings_schema güncelle

3. Adım: Form Widget Tamamla

  • form/contact-form/settings.json oluştur
  • Form field'ları tanımla (name, email, message, submit button)
  • View dosyasını güncelle

4. Adım: Items Gereken Widget'ları Tamamla

  • cards/basic/items.json oluştur (başlık, açıklama, resim)
  • features/basic/items.json oluştur (ikon, başlık, açıklama)
  • testimonials/basic/items.json oluştur (isim, yorum, resim)
  • View'larda döngü ekle

5. Adım: Admin Panel'de Göster

  • Widget listesinde "Form Builder Desteği" badge ekle
  • Sadece destekleyen widget'larda "Form Builder ile Düzenle" butonu göster
  • Desteklemeyenlerde normal view editor göster

✅ Sonuç

Önerilen Yol Haritası

  1. Database flag ekle → Form Builder destekleyenleri ayırt et
  2. 3 Hero widget tamamla → En kritik widget'lar
  3. Contact-form tamamla → İletişim önemli
  4. Cards, Features, Testimonials items.json ekle → Döngüler
  5. Admin panel güncelle → Kullanıcı deneyimi iyileştir

Bu şekilde hem mevcut sistem bozulmadan devam eder, hem de Form Builder kullanılabilir hale gelir. Layout ve Module widget'lar statik kalır, Hero/Form/Cards gibi dinamik widget'lar Form Builder ile düzenlenebilir olur.