Sadece kodlama değil, mimari kuruyoruz. DLE'nin tüm gücünü şablonlarınıza nasıl yansıtacağınızı öğrenin.
Default temada gördüğünüz her şeyi körü körüne kopyalamayın. v19.0 ile statik dosyaların yerini ayırmak güvenlik ve hız için zorunludur.
Sadece .tpl dosyaları burada olur. DLE bunları buradan okur.
CSS, JS, Resim ve Fontlar burada olur. Tarayıcı buraya doğrudan erişebilir.
Sayfa yenilendiğinde eski CSS'lerin kalmaması için asset çağırırken versiyon ekleyin:
href="{THEME}/css/style.css?v=1.2"
Kullanıcıların en çok sorduğu soru: "Ana sayfada poster, iç sayfalarda liste görünümü nasıl yapılır?" Cevabı çok basit: Dinamik Class veya Dinamik Template mantığı.
`main.tpl` dosyanızda body veya ana taşıyıcı div'e sayfa ismini class olarak enjekte edin:
<div class="content-wrapper [available=main]home-poster-view[/available] [available=showfull]detail-view[/available]">
{content}
</div>
CSS'inizde ise şöyle kontrol edin:
/* Normal Liste Görünümü */
.short-story { display: flex; gap: 15px; }
/* Ana Sayfada Poster Görünümü */
.home-poster-view .short-story { display: block; text-align: center; }
Ana sayfada tamamen farklı bir TPL kullanmak istiyorsanız `{content}` yerine `{custom}` kullanın:
[available=main]
<!-- Ana sayfada poster tasarımını yükle -->
{custom template="poster-article" limit="12" cache="yes"}
[/available]
[not-available=main]
<!-- Diğer sayfalarda standart shortstory.tpl çalışsın -->
{content}
[/not-available]
Master bir temacı asla sadece `{content}`'e bağlı kalmaz. `{custom}` etiketiyle sitenizi bir portala dönüştürebilirsiniz.
Oyun kategorisinde yeşil, Film kategorisinde kırmızı bir tema mı istiyorsunuz? `[category=X]` etiketi yardımınıza koşar.
<!-- Sadece 5 ID'li kategoride özel bir banner göster -->
[category=5]
<div class="cinema-banner">Sinema Dunyasina Hosgeldiniz!</div>
[/category]
<!-- CSS dosyanızı bile kategoriye göre çağırabilirsiniz -->
[category=10]<link rel="stylesheet" href="{THEME}/css/gaming.css">[/category]
Yeni başlayanların en çok yaptığı hata engine.css dosyasını silmektir. Bu dosya DLE'nin motor gücünü görselleştirir.
Dosyayı tamamen değiştirmek yerine, kendi style.css dosyanızda engine.css sınıflarını (örneğin .navigation) ezerek (override) temanıza uydurmalısınız.
Altın Kural: engine.css yoksa, DLE'nin %40 görsel fonksiyonu bozuk görünür.
Üyelerinize veya ziyaretçilerinize farklı içerikler göstermek için DLE'nin grup etiketlerini kullanın. Bu, "Üyelere Özel" alanlar yaratmanızı sağlar.
[group=1,2]
<div class="admin-tools">Sadece Admin ve Editor görebilir.</div>
[/group]
[not-group=5]
<div class="member-content">Ziyaretçiler hariç herkes görebilir.</div>
[/not-group]
Hakkımızda sayfasıyla İletişim sayfasının aynı static.tpl'yi kullanması sıkıcı olabilir. İsme özel kontrol geliştirin:
[static=iletisim]
<!-- Sadece 'iletisim' isimli statik sayfada Google Maps göster -->
<iframe src="..."></iframe>
[/static]
[not-static=iletisim]
<!-- İletişim dışındaki statik sayfalarda standart içerik -->
{static}
[/not-static]
DLE 18.x sonrası yıldızlı oylama yerine Like/Dislike sistemi standart hale geldi. Şablonunuzda (shortstory.tpl veya fullstory.tpl) bunu en şık haliyle şöyle kurgulayabilirsiniz:
[rating-type-4]
[rating-plus]
<i class="fas fa-thumbs-up"></i> {rating}
[/rating-plus]
[/rating-type-4]
[rating-type-4]
[rating-minus]
<i class="fas fa-thumbs-down"></i> {dislikes}
[/rating-minus]
[/rating-type-4]
Not: [rating-type-4] etiketi, yönetim panelinden "Like/Dislike" sistemi seçildiğinde aktif olur. Eğer yıldız sistemi seçiliyse bu alan boş görünür.
DLE'de haber silme, şikayet etme veya hata mesajları gibi işlemler "UI Dialogue" kutuları ile yapılır. Bu kutuların şık görünmesi temanızın profesyonelliğini belirler.
DLE, dahili olarak bir modal motoruyla gelir. Bir butona basıldığında çıkan "Emin misiniz?" kutusu veya Hata pencereleri bu sistemdir.
Önemli: Bunların çalışması için main.tpl dosyanızda mutlaka {AJAX} etiketi bulunmalıdır.
Default temada kullanılan ana sınıflar şunlardır. Bunları style.css dosyanızda ezebilirsiniz:
.ui-dialog: Ana taşıyıcı pencere..ui-dialog-titlebar: Pencere başlık çubuğu..ui-dialog-title: Başlık metni alanı..ui-dialog-content: Mesajın veya formun olduğu alan..ui-button: Pencere altındaki butonlar.
Uzman Tavsiyesi: Default temada diyalog başlıkları mavi (#517fa4) gelir. Kendi temanıza uydurmak için .ui-dialog-titlebar sınıfına kendi ana renginizi vermeyi unutmayın.
DLE 19.x'te hız her şeydir. Temanızı uçuracak 3 kural:
img taglarına loading="lazy" ekleyin.
{AJAX} etiketini body sonuna koyarak render kilidini açın.
| Klasör / Dosya | v19.0+ Standart Konumu | Önerilen Çağırma |
|---|---|---|
| Şablon Dosyaları | /templates/TemaAdı/*.tpl |
Sistem tarafından otomatik |
| CSS / Stil | /public/theme/css/style.css |
{THEME}/css/style.css |
| JavaScript | /public/theme/js/scripts.js |
{THEME}/js/scripts.js |
| Resim / İkon | /public/theme/images/ |
{THEME}/images/logo.png |
"İyi bir tema sadece güzel görünmez, DLE motoruyla kusursuz bir uyum içinde dans eder."