Şablonlar — Genel Bilgiler
Bu bölüm, DLE temasını oluşturan 34 .tpl dosyasının her birini
ayrı ayrı anlatır: hangi PHP dosyası işler, hangi etiketler kullanılabilir, hangi izin ve
ayarlara bağlıdır.
Şablon dosyası → işleyen kod
Bir şablonu düzenlemeden önce onu hangi kodun ürettiğini bilmek, "bu etiket neden boş geliyor?" sorusunu tek başına cevaplar.
| Şablon | İşleyen dosya | Bu bölümdeki sayfa |
|---|---|---|
main.tpl | engine/modules/main.php | Ana Sayfa |
login.tpl | engine/init.php | Yetkilendirme Paneli |
shortstory.tpl | engine/modules/show.short.php | Kısa Makale |
fullstory.tpl | engine/modules/show.full.php | Tam Makale |
comments.tpl | engine/classes/comments.class.php | Yorumlar |
addcomments.tpl | engine/modules/show.full.php | Yorum Ekleme Formu |
categorymenu.tpl | dle_template::build_cat_menu() | Kategori Menüsü |
attachment.tpl | engine/modules/functions.php | Dosya İndirme |
poll.tpl | engine/modules/poll.php | Haber İçi Anketler |
vote.tpl | engine/modules/vote.php | Sitedeki Oylamalar |
addnews.tpl | engine/modules/addnews.php | Haber Ekleme |
preview.tpl | engine/preview.php | Haber Önizlemesi |
splitnewsnavigation.tpl | engine/modules/show.full.php | Önceki / Sonraki Haber |
navigation.tpl | birçok modül (ortak) | sayfalama (aşağıya bakın) |
registration.tpl | engine/modules/register.php | Siteye Kayıt |
userinfo.tpl | engine/modules/profile.php | Üye Profili |
profile_popup.tpl | engine/ajax/profile.php | Profil Kartı |
search.tpl | engine/modules/search.php | Arama Formu |
searchresult.tpl | engine/modules/search.php | Arama Sonuçları |
fastsearchresult.tpl | engine/ajax/search.php | Hızlı Arama |
stats.tpl | engine/modules/stats.php | Site İstatistikleri |
info.tpl | engine/modules/functions.php (msgbox) | Bilgi ve Hata Çıktısı |
feedback.tpl | engine/modules/feedback.php | E-posta Formu |
lostpassword.tpl | engine/modules/lostpassword.php | Şifre Kurtarma |
static.tpl | engine/modules/static.php | Statik Sayfalar |
pm.tpl | engine/modules/pm.php | Özel Mesajlar |
tagscloud.tpl | engine/modules/tagscloud.php | Etiket Bulutu |
topnews.tpl | engine/modules/topnews.php | Popüler Haberler |
relatednews.tpl | engine/modules/show.related.php | İlgili Haberler |
offline.tpl | engine/modules/offline.php | Siteyi Geçici Kapatma |
banned.tpl | engine/modules/banned.php | Üye Engelleme |
speedbar.tpl | engine/engine.php | Hız Çubuğu |
rss.tpl | engine/rss.php | RSS Haber Yayını |
informer.tpl | engine/modules/rssinform.php | RSS Bilgilendirici |
Şablonun yeri
Şablonların tamamı tema klasörünüzde değildir:
| Konum | Hangi dosyalar? |
|---|---|
templates/<tema>/ |
Temaya ait dosyalar — çoğunluk. Kendi temasında düzenleyecekleriniz buradadır. |
templates/<tema>/modules/ |
Alt şablonlar: sidebar.tpl, footer.tpl, catmenu.tpl,
comment-card.tpl, popular-item.tpl, wide-blocks.tpl,
showcase-slide.tpl, icons.tpl |
templates/ (kök) |
Temalar arası paylaşılan iki dosya: banned.tpl ve rss.tpl |
banned.tpl ve rss.tpl tema klasöründe değil
Bu iki dosya bilinçli olarak templates/ kökünde tutulur —
yani tema klasörlerinin yanında, içinde değil. Sebebi: birden fazla tema
tarafından paylaşılırlar; hangi temayı seçerseniz seçin aynı dosya
kullanılır.
Dağıtım paketinde bu dosyalar
templates/default_templates/ içinde durur ve
kurulum sırasında oradan templates/ köküne çıkarılır. Yani
kurulu bir sitede aradığınız yer templates/banned.tpl ve
templates/rss.tpl'dir. Diğer bütün şablonlar (ör. offline.tpl,
main.tpl) temanın kendi klasöründe bulunur.
Çift küme etiketler çalışma anında DEĞİŞMEZ
Hazır temaların içinde {{Registration}}, {{Password}},
{{Open Horizon}} gibi çift süslü parantezli yazımlar görürsünüz.
Bunlar şablon motoru tarafından işlenmez.
| Yazım | Ne zaman değişir? |
|---|---|
{title}, [group=2] | Çalışma anında — PHP üretir |
{{Registration}} | Kurulum/dil yükleme sırasında — dil paketindeki bul/değiştir haritasıyla |
Yani {{…}} etiketleri bir çeviri yer tutucusudur ve dil paketi
yüklendiğinde bir kez değiştirilir. Şablon motorunda böyle bir söz dizimi yoktur; kendi
şablonunuzda kullanmayın.
Ortak kullanılan şablonlar
Bazı şablonlar tek bir sayfaya değil, birden çok yere hizmet eder:
| Şablon | Nerede kullanılır? |
|---|---|
navigation.tpl |
Haber listeleri, özel listeler, yorumlar, son yorumlar, arama sonuçları, AJAX yorum sayfalaması |
info.tpl |
Tüm bilgi/hata mesajları (msgbox()), yetki reddi, işlem sonucu ekranları |
Bu yüzden navigation.tpl'de yaptığınız bir değişiklik sitenin her
sayfalama alanını etkiler. Test ederken bunu göz önünde bulundurun.
Bu bölümdeki sayfalar nasıl okunur?
Her şablon sayfası aynı düzende yazılmıştır:
- Bu şablon neyi üretir? Hangi sayfada göründüğü ve hangi dosyanın işlediği.
-
Etiket listesi
Kullanılabilir
{etiket}ve[blok]değerleri, anlamlarıyla. - Koşullar Hangi izin veya ayara bağlı olduğu.
- Örnek ve tuzaklar Kopyala-yapıştır kullanabileceğiniz örnek ve sık yapılan hatalar.
Genel kontrol listesi
- Yalnızca
templates/içinde çalışıyorum,engine/'e dokunmuyorum. - Etiketleri kullanmadan önce o şablonu işleyen dosyayı kontrol ettim.
- Global etiketleri (
[group],[if], cihaz koşulları) gerektiğinde kullanıyorum. - Şablon yorumları için
{* … *}kullanıyorum. - Çift küme
{{…}}yazımının çalışma anında işlenmediğini biliyorum. - Değişiklikten sonra önbelleği temizledim.