Giriş
🎯 Bu modül ne yapar?
Menus modülü, site navigasyon yapılarınızı - üst menüler, alt menüler, yan navigasyon, mobil menüler - dinamik olarak oluşturmanıza olanak tanır ve OneEntry'de yapılandırılmış sayfalardan çok seviyeli navigasyon oluşturur.
Bunu navigasyon yöneticiniz olarak düşünün - OneEntry yönetim panelinde menüler oluşturursunuz (sayfaları birbirine bağlayarak) ve bu modül, tam menü ağaç yapısını alır, böylece bağlantıları sabit kodlamadan dinamik olarak navigasyonu oluşturabilirsiniz.
📖 Basit Açıklama
Her web sitesinin kullanıcıların içeriği bulmasına yardımcı olmak için navigasyona ihtiyacı vardır:
- Üst Menü - Ana navigasyon (Anasayfa, Hakkında, Hizmetler, İletişim)
- Mobil Menü - Açılır menü ile hamburger menü
- Yan Menü - Kategori navigasyonu (Blog kategorileri, ürün filtreleri)
- Alt Menü - Yasal bağlantılar, sosyal bağlantılar, site haritası
- Mega Menü - Görseller ve kategorilerle karmaşık açılır menüler
- Kırıntılar - Mevcut sayfa yolu (Anasayfa > Ürünler > Elektronik)
Sorunlar:
- Güncellemesi zor - Menü değiştirmek için kodu yeniden dağıtmak gerekiyor
- Çok dilli destek yok - Her dil için farklı menüler
- Yönetici dostu değil - Her değişiklik için geliştiriciler gerekli
- Menü kopyası - Aynı menü birden fazla yerde sabit kodlanmış
Menus çözümü:
Faydalar:
- Kolay güncellemeler - Yönetim panelinde menüleri değiştirin, yeniden dağıtım yok
- Çok dilli - Menüler otomatik olarak yerelleştirilir
- Yönetici dostu - Geliştirici olmayanlar navigasyonu yönetebilir
- Tek gerçek kaynak - Her yerde tek bir menü yapısı
✨ Temel Kavramlar
Menü Nedir?
Bir Menü, sayfalara bağlantılar içeren bir navigasyon yapısıdır:
- Menü Öğeleri - Bireysel navigasyon bağlantıları (sayfalar)
- Hiyerarşi - İç içe geçmiş yapı (ebeveyn → çocuklar)
- Sıralama - Öğelerin görüntüleme sırası
- Yerelleştirme - Dile göre çevrilmiş başlıklar
- Dinamik - Yapıyı API'den al, uygulamanızda render et
Menü Yapısı
Her menü bu yapıya sahiptir:
{
id: 123,
identifier: "header_menu", // Benzersiz tanımlayıcı
localizeInfos: {
title: "Ana Üst Navigasyon" // Menü başlığı
},
pages: [ // Menü öğeleri (sayfalar)
{
id: 1, // Sayfa ID'si
pageUrl: "/home", // Sayfa URL'si
localizeInfos: {
title: "Anasayfa", // Sayfada görüntüle
menuTitle: "Anasayfa" // Menülerde görüntüle
},
attributeValues: {}, // Özellik değerleri
parentId: 0, // Üst düzey öğe
position: 1 // Görüntüleme sırası
}
]
}
Menü Hiyerarşisi
Menüler iç içe yapıları destekler (çok seviyeli navigasyon):
📂 Üst Menü
├─ 🏠 Anasayfa (derinlik: 0, parentId: 0)
├─ 📖 Hakkında (derinlik: 0, parentId: 0)
│ ├─ 👥 Ekip (derinlik: 1, parentId: 2)
│ ├─ 🏢 Ofis (derinlik: 1, parentId: 2)
│ └─ 📜 Tarih (derinlik: 1, parentId: 2)
├─ 🛍️ Ürünler (derinlik: 0, parentId: 0)
│ ├─ 💻 Elektronik (derinlik: 1, parentId: 4)
│ │ ├─ 📱 Telefonlar (derinlik: 2, parentId: 5)
│ │ └─ 💻 Dizüstü Bilgisayarlar (derinlik: 2, parentId: 5)
│ └─ 👕 Giyim (derinlik: 1, parentId: 4)
└─ 📞 İletişim (derinlik: 0, parentId: 0)
Yaygın Menü Türleri
| Menü Türü | Açıklama | Örnek Kullanım Durumları |
|---|---|---|
| Üst Menü | Ana site navigasyonu | Üst navigasyon çubuğu, birincil bağlantılar |
| Alt Menü | Alt bağlantılar | Yasal, sosyal, site haritası |
| Yan Menü | Kategori navigasyonu | Blog kategorileri, ürün filtreleri |
| Mobil Menü | Mobil özel navigasyon | Hamburger menü, çekme menüsü |
| Mega Menü | Kategorilerle karmaşık açılır menü | E-ticaret çok seviyeli navigasyon |
| Kırıntılar | Mevcut sayfa yolu | Anasayfa > Ürünler > Elektronik |
Neden Menüler Modülünü Kullanmalıyım?
| Faydası | Açıklama |
|---|---|
| Dinamik Navigasyon | Menü yapısını API'den al, sabit kodlama yok |
| Çok Dilli | Menüler otomatik olarak yerelleştirilir |
| Yönetici Dostu | Geliştirici olmayanlar navigasyonu güncelleyebilir |
| Hiyerarşik Yapı | İç içe menüleri destekler (sınırsız derinlik) |
| SEO Dostu | Uygun sayfa ilişkileri ve yapısı |
| Tek Gerçek Kaynak | Her yerde kullanılan tek bir menü yapısı |
📋 Bilmeniz Gerekenler
Menüler Yönetim Panelinde Oluşturulur
SDK aracılığıyla menü oluşturamazsınız - menüler OneEntry yönetim panelinde oluşturulur:
OneEntry Yönetim Paneli → Menüler → Menü Oluştur → Sayfaları Ekle → Kaydet
SDK, menü yapılarını almak içindir, oluşturmak için değil.
Menü Öğeleri Sayfalardır
Önemli: Menü öğeleri, OneEntry'de yapılandırılmış sayfalardır. Menülere rastgele bağlantılar ekleyemezsiniz - her menü öğesi bir sayfa olmalıdır.
Menü Hiyerarşisi (Ebeveyn-Çocuk İlişkileri)
Menüler sınırsız iç içe geçme derinliğini destekler.
💡 Önemli Notlar
Menüler Yönetim Panelinde Oluşturulur
Unutmayın: SDK, menü yapılarını almak içindir, menü oluşturmak için değil.
Menü oluşturmak/düzenlemek için: OneEntry Yönetim Panelini veya Yönetim API'sini kullanın.
Menü Öğeleri Sayfalar Olmalıdır
Menülere rastgele bağlantılar ekleyemezsiniz. Her menü öğesi, OneEntry'de yapılandırılmış bir sayfa olmalıdır.
Dış bağlantılar için geçici çözüm: OneEntry'de dış URL'lere sahip sayfalar oluşturun, ardından bunları menülere ekleyin.
Menü Hiyerarşisi Esnektir
Menüler sınırsız iç içe geçme derinliğini destekler - ihtiyaç duyduğunuz kadar seviye oluşturabilirsiniz.
Çok Dilli Destek
Menüler, defineOneEntry() içindeki langCode'a göre otomatik olarak çok dilli desteği sağlar.
En iyi uygulama: Menüleri kullanıcının tercih ettiği dilde alın.