Ana içeriğe geç

Özel alanlar

Özet

Özel alanlar, mevcut Strapi türlerinin girdilerini değiştirmek için bir yol sağlar ve içerik düzenleme deneyimini iyileştirir.

Ayrıntılı tasarım

Bir özel alanın hem admin panelinde hem de sunucuda kaydedilmesi gerekir.

Sunucu

Bir özel alanı sunucuda kaydetmek için belgelere bakın.

bilgi

Özel alan, sunucu kaydetme yaşam döngüsü sırasında Strapi'ye eklenecektir.

type: customField, bir içerik tipi veya bileşeni için schema.json'da kaydedildiğinde, uygulama başlatıldığında ve tüm özel alanlar yüklendikten hemen sonra convertCustomFieldType fonksiyonu çağrılarak altında yatan Strapi veri tipine dönüştürülür.

Admin

Bir özel alanı admin paneline kaydetmek için belgelere bakın.

ipucu

Bir içerik tipi veya bileşen üzerinde kaydedilen özel alan, formatAttributes fonksiyonu aracılığıyla kaydetmeden hemen önce, altında yatan veri tipinden type: customField tipine dönüştürülecektir.

Paketleme

Bir özel alan, ya bir Strapi uygulamasında ya da bir Strapi eklentisinde kaydedilebilir. Ancak yalnızca npm üzerinde paket yayınlayarak eklentiler aracılığıyla paylaşılabilirler.

Örnekler


Dezavantajlar

  • Strapi'de özel bir veritabanı türü oluşturma yeteneği henüz sunulmamaktadır.
  • İçerik Tipi Yapıcı'da bir özel alanın temel ve gelişmiş formlarını genişletirken, özel giriş bileşenlerini içe aktarmak henüz mümkün değildir.
  • Özel alanların ilişki, bileşen, dinamik alan ve medya türlerini kullanmalarına izin verilmiyor.

Alternatifler

Özel alanlar için özel paketler yapmayı düşünüyoruz ancak:

  • Özel alanların eklenti API'sinden diğer özelliklere erişim sağlama yeteneği olmayacak. Bu her zaman gerekli olmasa da, özel alanların ihtiyacı olduğunda daha gelişmiş davranışlar uygulamasını sağlar. Örneğin, bir özel alan gerektiğinde enjekte alanlarını da kullanabilir.
  • Yeni bir özel alan türü paketi tanıtmak, Strapi'de yeni bir yükleyici ve pazar yerinde yeni bir bölüm ile inceleme süreçleri gerektirecekti, bu da özelliği göndermeyi daha karmaşık hale getirecekti.
  • Bir özel alan için basit bir eklenti API'sinin gereksiz karmaşıklığını azaltmak, yalnızca bir özel alan için gerekli dosyaları oluşturan yeni bir eklenti jeneratörü ekleyerek sağlanabilirdi.

Kaynaklar