Ana içeriğe geç

Giriş

🎯 Bu modül ne yapar?

GeneralTypes modülü, OneEntry'deki içeriğinizin yapısını ve kategorilerini tanımlayan sistem genelindeki varlık türlerini - sayfa türleri, form türleri, ürün blok türleri ve daha fazlasını - almanıza olanak tanır.

Bunu içeriğinizin sınıflandırma sistemi olarak düşünün - OneEntry, farklı türdeki sayfaları (anasayfa, blog yazısı, ürün sayfası), formları (iletişim, anket), blokları (kahraman, galeri) ve ürünleri (fiziksel, dijital) düzenlemek için türleri kullanır ve bu modül, dinamik arayüzler oluşturmak için mevcut tüm türleri almanıza olanak tanır.


📖 Basit Açıklama

OneEntry'de, her varlığın bir türü vardır ve bu tür, amacını ve yapısını belirler:

  • Sayfa Türleri: homepage, blog_post, product_page, landing_page
  • Form Türleri: contact_form, survey, registration, feedback
  • Ürün Blok Türleri: hero_section, image_gallery, text_block, video_embed
  • Ürün Türleri: physical_product, digital_product, service, subscription

GeneralTypes modülü, OneEntry projenizde yapılandırılmış tüm türlerin tam listesini sağlar, böylece:

Dinamik açılır menüler oluşturun - İçerik oluştururken yöneticilerin sayfa türünü seçmesine izin verin
İçeriği filtreleyin - Sadece "blog_post" sayfalarını veya "contact_form" formlarını gösterin
Verileri doğrulayın - Bir varlık oluşturmadan önce bir türün var olup olmadığını kontrol edin
Tür tabanlı mantık oluşturun - Sayfa türüne göre farklı kullanıcı arayüzleri gösterin

Gerçek dünya örneği:

Blog uygulamanız tüm sayfa türlerini alır:
- "homepage" → Öne çıkan gönderiler kaydırıcısını render eder
- "blog_post" → Yorumlarla birlikte makale düzenini render eder
- "about_page" → Ekip üyesi kartlarını render eder
- "contact_page" → İletişim formunu render eder

✨ Temel Kavramlar

Tür Sistemi Hiyerarşisi

OneEntry, her varlığın bir kategoriye ait olduğu bir tür sistemi kullanarak içeriği organize eder:

VarlıkÖrnek TürlerAmaç
Sayfalarhomepage, blog_post, product_page, landing_pageSayfa düzenlerini ve işlevselliğini tanımlar
Formlarcontact_form, survey, registration, feedbackFarklı form amaçlarını kategorize eder
Ürün Bloklarıhero_section, gallery, text_block, video_embedÜrün sayfaları için yapı taşları
Ürünlerphysical_product, digital_product, service, subscriptionÜrün envanterini sınıflandırır

Tür Varlık Yapısı

GeneralTypes.getAllTypes() tarafından döndürülen her tür bu yapıya sahiptir:

interface GeneralTypeEntity {
id: number; // Benzersiz sayısal ID (örneğin, 1, 2, 3)
type: string; // Tür adı (örneğin, "blog_post", "contact_form")
}

GeneralTypes Ne Zaman Kullanılır

Kullanım DurumuNeden GeneralTypes?
CMS yönetici arayüzü oluşturmaMevcut türlerle açılır menüleri doldurma
Tür filtreleri oluşturmaKullanıcıların içeriği türüne göre filtrelemesine izin verme (blog yazıları vs. açılış sayfaları)
Varlık oluşturma doğrulamaBir sayfa/form oluşturmadan önce bir türün var olup olmadığını kontrol etme
Dinamik yönlendirmeFarklı sayfa türlerini farklı bileşenlere yönlendirme
Tür tabanlı izinlerFarklı rollerin farklı içerik türlerine erişmesine izin verme

📋 Bilmeniz Gerekenler

Türler OneEntry Yönetim Panelinde yapılandırılır

Türleri SDK aracılığıyla oluşturamazsınız - türler, projenizi yapılandırdığınızda OneEntry yönetim panelinde tanımlanır. GeneralTypes modülü yalnızca mevcut türlerin listesini alır.

Türlerin nasıl oluşturulduğu:

OneEntry Yönetim Paneli → Ayarlar → İçerik Türleri → Sayfa Türü Ekle → "blog_post"

Oluşturulduktan sonra, bunları alabilirsiniz.

Türler vs. İşaretçiler vs. ID'ler

Önemli ayrım:

TanımlayıcıNedirÖrnekEn İyi Kullanım
TürVarlığın kategori/sınıflandırması"blog_post"Filtreleme ve gruplama
İşaretçiBenzersiz insan tarafından okunabilir tanımlayıcı"my_about_page"Belirli varlıkları alma
IDSayısal veritabanı tanımlayıcısı42Dahili sistem kullanımı

getAllTypes() tüm türleri döndürür

Bu yöntem, OneEntry projenizdeki:

  • Sayfalar
  • Formlar
  • Ürün Blokları
  • Ürünler
  • Diğer varlıkların tüm türlerinin birleşik listesini döndürür.

Varlık kategorisine göre yerleşik bir filtreleme yoktur, bu nedenle manuel olarak filtrelemeniz gerekecek:

Türler büyük/küçük harf duyarlıdır

Türlerle çalışırken her zaman tam büyük/küçük harf eşleşmesi kullanın.

Dinamik içerik render'ı için türleri kullanın

Türler, polimorfik içerik sağlar - türüne göre farklı render mantığı:


📊 Hızlı Referans Tablosu

YöntemAçıklamaKullanım Durumu
getAllTypes()Sistemdeki tüm genel türleri alırAçılır menüleri doldurmak, türleri doğrulamak

GeneralTypeEntity Yapısı:

{
id: number; // Benzersiz sayısal ID
type: string; // Tür adı (örneğin, "blog_post")
}

❓ Sıkça Sorulan Sorular (SSS)

Yeni türleri nasıl oluşturabilirim?

SDK aracılığıyla tür oluşturamazsınız. Türler, OneEntry Yönetim Panelinde oluşturulur:

1. OneEntry Yönetim Paneline giriş yapın
2. Ayarlar → İçerik Türleri'ne gidin
3. "Sayfa Türü Ekle" (veya Form Türü, Ürün Türü, vb.)'ne tıklayın
4. Tür adını girin: "blog_post"
5. Kaydedin

Artık SDK aracılığıyla alabilirsiniz:
const types = await GeneralTypes.getAllTypes();
// Döner: [{ id: 1, type: "blog_post" }, ...]

Türleri varlığa (sayfalar, formlar, ürünler) göre nasıl filtrelerim?

getAllTypes() yöntemi tüm varlıklar arasındaki tüm türleri döndürür. Manuel olarak filtrelemeniz gerekir.


SDK aracılığıyla türleri güncelleyebilir veya silebilir miyim?

Hayır. GeneralTypes modülü salt okunur. Tüm tür yönetimi OneEntry Yönetim Panelinde gerçekleşir.


Tür ID'si ile tür adı arasındaki fark nedir?

Her birini ne zaman kullanmalıyım:

AlanKullanım AmacıÖrnek
idDahili sistem referanslarıVeritabanı ilişkileri
typeKod mantığınız ve karşılaştırmalarınızif (page.type === 'blog_post')

En iyi uygulama: Her zaman kodunuzda id numarası yerine type dizesini kullanın (ID'ler ortamlar arasında değişebilir).


Türler listesini önbelleğe alabilir miyim?

Evet! Türler nadiren değişir, bu nedenle önbelleğe almak önerilir.


Eksik türleri nasıl düzgün bir şekilde ele alabilirim?

Kullanmadan önce bir türün var olduğunu her zaman doğrulayın.


Türleri yetkilendirme/izinler için kullanabilir miyim?

Evet! Tür tabanlı erişim kontrolü uygulayabilirsiniz.


💡 Önemli Notlar

⚠️ Türler Projeye Özgüdür

Türler, OneEntry yönetim panelinizde yapılandırılır ve projeler arasında değişir. Evrensel "varsayılan" türler yoktur - her zaman listeyi dinamik olarak alın:

// ❌ Türleri sabit kodlamayın
const pageTypes = ['homepage', 'blog_post', 'product_page'];

// ✅ Türleri dinamik olarak alın
const allTypes = await GeneralTypes.getAllTypes();
const pageTypes = allTypes.filter(t => t.type.endsWith('_page'));

🔒 Salt Okunur Modül

GeneralTypes modülü yalnızca türleri okur. Tüm tür oluşturma, değiştirme ve silme işlemleri OneEntry Yönetim Panelinde gerçekleşir.


🎓 En İyi Uygulamalar

  • Türleri dinamik olarak alın - Tür listelerini sabit kodlamayın
  • Türleri önbelleğe alın - Nadiren değişir, performans için önbelleğe alın
  • Tür dizelerini kullanın, ID'leri değil - Tür adları ortamlar arasında kararlıdır
  • Türlerin var olduğunu doğrulayın - Kullanımdan önce bir türün geçerli olup olmadığını kontrol edin
  • İsimlendirme kurallarını uygulayın - Tutarlı isimlendirme filtrelemeyi kolaylaştırır
  • Yedek render'ı uygulayın - Bilinmeyen türleri düzgün bir şekilde ele alın
  • Türlerinizi belgeleyin - Türlerin ve amaçlarının bir listesini tutun
  • Tür güvenliği için TypeScript kullanın - GeneralTypeEntity arayüzünden yararlanın

GeneralTypes modülünün tanımı

OneEntry Platformundaki GeneralTypes modülü, sistem içinde kullanılan genel türleri yönetmek ve almak için tasarlanmıştır. defineOneEntry fonksiyonunu kullanarak, bu türlerle etkileşimde bulunmak için bir GeneralTypes nesnesi oluşturabilirsiniz. Mevcut olan birincil yöntem getAllTypes'dir; bu, API'den GeneralTypeEntity türündeki tüm nesneleri alır. Bu yöntem, her biri bir id ve bir type içeren GeneralTypeEntity nesnelerinin bir dizisine çözülmek üzere bir Promise döndürür. Türler, sayfa düzenleri, formlar, ürün blokları ve daha fazlası gibi çeşitli amaçları kapsar ve farklı içerik yönetimi ihtiyaçları için esneklik sağlar.


const { GeneralTypes } = defineOneEntry(
"your-project-url", {
"token": "your-app-token"
}
);