Ana içeriğe geç

Giriş

Web sitesi sayfalarını ve mobil uygulama ekranlarını dinamik içerikle yönetin.

🎯 Bu modül ne yapar?

Pages modülü, sayfaları oluşturmanıza, almanıza ve yönetmenize olanak tanır (web siteleri için) veya ekranları (mobil uygulamalar için) tüm içerikleriyle - metin, resimler, SEO ayarları ve özel nitelikler.

Bunu içerik yönetim sisteminiz olarak düşünün - sayfaları sabit kodlamak yerine, OneEntry'de yönetir ve uygulamanızda dinamik olarak alırsınız.

📖 Basit Açıklama

Aşağıdaki sayfaları içeren bir web sitesi oluşturduğunuzu hayal edin:

  • 🏠 Ana sayfa - ana açılış sayfası
  • 📄 Hakkımızda - şirket bilgileri
  • 📞 İletişim - iletişim formu sayfası
  • 📝 Blog yazıları - birden fazla makale sayfası
  • SSS - yardım merkezi

Her sayfayı kodunuzda manuel olarak oluşturmak yerine:

  • ✅ OneEntry yönetim panelinde sayfalar oluşturun (içerik, resimler, SEO ile)
  • ✅ Bu modülü kullanarak sayfaları dinamik olarak alın
  • ✅ Uygulamanızı yeniden dağıtmadan içeriği güncelleyin
  • ✅ Sayfa yapısını, URL'leri ve meta verileri tek bir yerde yönetin

Gerçek dünya örneği:

Pages Modülü Olmadan (sabit kodlanmış):
- Ana sayfayı düzenle → Kodu değiştir → Test et → Dağıt → Bekle ❌
- 10 sayfa = yönetilecek 10 kod dosyası ❌
- SEO değişiklikleri = kod değişiklikleri ❌

Pages Modülü ile (dinamik):
- Ana sayfayı düzenle → OneEntry yönetim panelinde güncelle → Anında canlı ✅
- 100 sayfa = API'den dinamik olarak al ✅
- SEO değişiklikleri = yönetim panelinde güncelle ✅

✨ Temel Kavramlar

Sayfa Nedir?

Bir sayfa, aşağıdakileri temsil eden bir içerik varlığıdır:

  • Web: Web sitenizdeki bir sayfa (örneğin, /about, /contact)
  • Mobil: Uygulamanızdaki bir ekran (örneğin, Profil Ekranı, Ayarlar Ekranı)

Her sayfa şunları içerir:

  • İçerik - Metin, resimler, videolar
  • URL - Sayfa adresi (örneğin, /about-us)
  • SEO - Meta başlık, açıklama, anahtar kelimeler
  • Özel nitelikler - Tanımladığınız ek alanlar
  • Durum - Yayınlandı, taslak, arşivlendi
  • Yerelleştirme - Çok dilli destek

Sayfa Türleri

OneEntry, farklı sayfa türlerini destekler:

TürAçıklamaÖrnek Kullanım
Normal SayfaStandart statik sayfaHakkımızda, İletişim, Şartlar
Hata Sayfası404, 500 hata sayfalarıBulunamadı sayfası
Sistem SayfasıÖzel sayfalarGizlilik Politikası, Çerezler
Şablon SayfasıYeniden kullanılabilir sayfa yapısıBlog yazısı şablonu

Sayfa Hiyerarşisi

Sayfalar bir ağaç yapısında düzenlenebilir:

📁 Şirket
├─ Hakkımızda
├─ Ekip
└─ Kariyerler

📁 Ürünler
├─ Ürün Kategorisi 1
│ ├─ Ürün A
│ └─ Ürün B
└─ Ürün Kategorisi 2

Neden bu önemlidir: Bir bölümdeki tüm sayfaları alabilir veya otomatik olarak navigasyon menüleri oluşturabilirsiniz.

📋 Bilmeniz Gerekenler

Sayfaları Tanımlamanın İki Yolu

YöntemNe Zaman KullanılırÖrnek
URL ileKullanıcı belirli bir sayfayı ziyaret ettiğinde/about-us, /contact
ID ileDahili referanslar123, 456

En iyi uygulama: Kodda id kullanın (değişmezler), yönlendirme için URL'leri kullanın.

Sayfa Yapısı

Her sayfanın bu ana alanları vardır:

{
"id": 9, // benzersiz ID
"parentId": 8, // üst ID
"moduleFormConfigs": [], // Formlar modülü yapılandırmaları
"pageUrl": "blog1", // sayfa URL'si
"depth": 1, // derinlik
"localizeInfos": { // yerelleştirme bilgisi
"title": "Blog 1", // başlık
"menuTitle": "Blog 1", // menü başlığı
"htmlContent": "",
"plainContent": "",
},
"isVisible": true, // görünürlük
"blocks": [], // bloklar
"type": "common_page", // sayfa türü
"templateIdentifier": null, // şablon tanımlayıcı
"attributeSetIdentifier": null, // nitelik seti tanımlayıcı
"attributeValues": {}, // nitelik değerleri
"isSync": false, // senkronizasyon
}

Yerelleştirme (Çok dilli)

Sayfalar birden fazla dili destekler

Aynı sayfa, farklı diller!

Özel Nitelikler

AttributesSets kullanarak sayfalara herhangi bir alan ekleyebilirsiniz:

Örnekler:

  • Blog yazıları: yazar, yayın tarihi, etiketler, öne çıkan resim
  • Ürün sayfaları: fiyat, SKU, galeri, spesifikasyonlar
  • Açılış sayfaları: kahraman resmi, CTA butonları, referanslar

Daha fazla bilgi: AttributesSets Modülü


📊 Hızlı Referans Tablosu - Yaygın Yöntemler

YöntemNe Yapar?Ne Zaman Kullanılır
getPages()Tüm sayfaları al (sayfalandırılmış)Site haritası oluşturma, tüm sayfaları listeleme
getRootPages()Tüm Kök sayfaları al (sayfalandırılmış)
getChildPagesByParentUrl()Üst URL'ye göre tüm Alt sayfaları al (sayfalandırılmış)
getBlocksByPageUrl()URL'ye göre sayfa için PositionBlock nesnelerini al.Bloklar sayfa içeriğini render etmek için kullanılır.
getConfigPageByUrl()URL'ye göre sayfanın ayarlarını al.Yapılandırma sayfaları sayfanın ayarlarını saklamak için kullanılır.
getPageById()Tek bir sayfayı al.Sayfalar sayfayı render etmek için kullanılır.
getPageByUrl()URL'ye göre tek bir sayfayı al.Sayfalar sayfayı render etmek için kullanılır.
searchPage()Sınırlı çıktı ile sayfalar için hızlı arama.Sayfaları başlık, açıklama, etiketler vb. ile arama

❓ Sıkça Sorulan Sorular (SSS)

URL ile Marker arasındaki fark nedir?

  • URL (pageUrl) - Kullanıcıların gördüğü web adresi (örneğin, /about-us, /contact)

    • Yönlendirme için kullanılır
    • Kullanıcı dostu
  • Marker - Kod içindeki teknik tanımlayıcı (örneğin, homepage, contact_page)

    • Kod referanslarında kullanılır
    • Teknik, kullanıcıya yönelik değil

💡 Önemli Notlar

Sayfa URL'leri ve Yönlendirme

Yönlendirme için en iyi uygulama:

✅ İyi: Dinamik tüm yakalama rotası Next.js örneği: pages/[...slug].js


Performans için Önbellekleme

Önbellekleme ile API çağrılarını azaltın.


Taslakları Önizleme

Taslak sayfalarını yalnızca yöneticilere gösterin.


🎓 En İyi Uygulamalar

  • API çağrılarını azaltmak için sayfaları önbelleğe alın
  • 404 hatalarını nazikçe yönetin
  • Üretim için statusId: 1 ve isVisible: true ile filtreleyin
  • UI'de yükleme durumları ekleyin
  • Sayfa önbellekleme stratejisi uygulayın

Modülün kullanıcı arayüzü hakkında daha fazla bilgi https://doc.oneentry.cloud/docs/category/pages


Pages modülünün tanımı


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


🔗 İlgili Belgeler