Başlarken ve Şablonlar

DLE'de görünümün tamamı şablonlardan gelir. Çekirdek, veriyi hazırlar ve şablona verir; HTML'i şablon üretir. Bu yüzden siteyi özelleştirmenin ilk adımı templates/ klasörünü anlamaktır.

Klasör yapısı

templates/ ├── default_templates/ # hazır temalar │ ├── Air/ # bir tema │ │ ├── main.tpl # ana sayfa iskeleti │ │ ├── shortstory.tpl # kısa makale │ │ ├── fullstory.tpl # tam makale │ │ ├── … (toplam 34 .tpl) │ │ ├── modules/ # alt şablonlar (sidebar, footer…) │ │ ├── css/ js/ images/ dleimages/ │ │ └── info.json # tema bilgisi │ ├── Chronicle/ Cover/ Flow/ Hub/ Overview/ │ └── Default_Images/ ├── banned.tpl # temalar arası paylaşılan ├── rss.tpl └── default_templates.zip

Paketle gelen 7 hazır tema vardır. Her temada 34 .tpl dosyası bulunur; her biri sitenin bir bölümünü üretir.

i
Altın kural: engine/'e dokunmayın Çekirdeği (engine/) doğrudan düzenlerseniz güncellemede değişiklikleriniz silinir. Görünüm değişikliklerini her zaman templates/<tema>/ içinde yapın. Davranış değişiklikleri için de eklenti yazın.

Hangi .tpl, sitenin neresi?

Şablon dosyasıNe üretir?
main.tplAna sayfa iskeleti; diğer tüm çıktılar {content} yerine oturur
shortstory.tplHaber listesindeki kısa makale
fullstory.tplTam makale sayfası
comments.tplYorumlar ve yorum ağacı
addcomments.tplYorum yazma formu
relatednews.tplİlgili haberler
topnews.tplPopüler / önemli haberler
navigation.tplSayfalama (listeler ve yorumlar)
splitnewsnavigation.tplÇok sayfalı içerikte ileri/geri
categorymenu.tplKategori menüsü
speedbar.tplHız çubuğu (breadcrumb)
static.tpl / static_print.tplStatik sayfalar ve yazdırma sürümü
print.tplHaberin yazdırma sürümü
search.tpl / searchresult.tpl / fastsearchresult.tplArama formu, sonuçları ve hızlı arama
login.tpl / registration.tpl / lostpassword.tplGiriş, kayıt, şifre kurtarma
pm.tplÖzel mesajlar
poll.tpl / vote.tplHabere bağlı anket / sitedeki oylamalar
tagscloud.tplEtiket bulutu
stats.tplSite istatistikleri
informer.tplRSS bilgilendirici
info.tplBilgi ve hata mesajları
offline.tplSite geçici olarak kapalıyken
banned.tplEngellenen ziyaretçi
feedback.tplE-posta gönderme formu
attachment.tplDosya indirme
userinfo.tpl / profile_popup.tplÜye profili / profil kartı
addnews.tpl / preview.tplHaber ekleme / önizleme
informer.tpl, rss.tplRSS çıktıları

Bir sayfa nasıl oluşur?

index.php └─ engine/init.php # oturum, ayarlar, kategori, cihaz tespiti └─ engine/modules/main.php # sayfayı yöneten modül ├─ modül kendi şablonunu yükler $tpl->load_template('fullstory.tpl') ├─ etiketleri doldurur $tpl->set('{title}', …) ├─ derler $tpl->compile('content') └─ main.tpl derlenir $tpl->set('{content}', $tpl->result['content'])

Yani her zaman aynı iki katman vardır: içerik şablonu (örn. fullstory.tpl) ve onu saran ana şablon (main.tpl). Menü, kenar çubuğu, alt bilgi gibi ortak alanlar main.tpl içindedir.

Tema nasıl seçilir?

Tema, panelden veya ziyaretçi tarafından değiştirilebilir. Öncelik sırası şöyledir:

ÖncelikKaynakNasıl?
1 Kategoriye atanmış tema Kategori ayarlarında bir tema klasörü seçilmişse o kullanılır ve dle_skin çerezi yok sayılır.
2 Kullanıcı seçimi (dle_skin çerezi) Ziyaretçi tema değiştirme formunu kullandıysa tercihi 365 gün saklanır.
3 Sistem varsayılanı Panelde seçili tema ($config['skin']).

Ziyaretçiye tema seçtirmek için main.tpl içine tema seçme formu yerleştirilir; bunun etiketi {changeskin}'dir (yalnızca allow_skin_change ayarı açıkken anlamlıdır) ve şu blokla sarmalanır:

[changeskin]
    {changeskin}
[/changeskin]

Tema bilgisi info.json dosyasında tutulur:

{"name":"{{Open Horizon}}","type":"light"}
!
type alanının tek işlevi "koyu tema" işaretlemektir DLE, info.json içinde yalnızca "type":"dark" değerini dikkate alır; bu durumda düzenleyiciler koyu tema sınıfını kullanır. "light" ise sadece "dark değil" anlamına gelir — ayrıca işlenmez.

Şablonu güvenle düzenlemek

  1. Yedek alın Düzenlemeden önce tema klasörünün bir kopyasını alın. .tpl dosyaları düz metindir.
  2. Yeni bir tema klasörü oluşturun Hazır temayı olduğu gibi kopyalayıp yeni ad verin. Böylece güncellemelerde orijinal bozulmaz.
  3. Şablonu parçalara ayırın Uzun dosyalar yerine {include file="modules/sidebar.tpl"} ile alt şablonlar kullanın.
  4. Yorum ekleyin Şablon içinde {* bu bir yorumdur *} yazabilirsiniz; çıktıya dahil edilmez.
  5. Önbelleği temizleyin Şablon değişikliği hemen görünmüyorsa panelden sistem önbelleğini boşaltın.
★
Şablon yorumu: {* … *} Şablon motoru {* yorum *} bloklarını çıktıdan tamamen siler. HTML yorumu (<!-- -->) kullanmak yerine bunu tercih edin; HTML yorumları hâlâ sayfa kaynağında görünür.

Etiketler

Şablonlarda iki tür etiket vardır; ikisi de bu bölümün konusudur:

TürÖrnekNerede anlatılıyor?
Global etiketler {THEME}, [group=2], [smartphone], {include file="…"} Ana ve Global Etiketler
Haber etiketleri {title}, {full-story}, [xfvalue_x], {comments-num} Haber Etiketleri

Kontrol listesi

  • Değişiklikler templates/ içinde yapıldı, engine/'e dokunulmadı.
  • Yeni bir tema klasöründe çalışıyorum (orijinal tema korunuyor).
  • Şablon yorumları için {* … *} kullanıyorum.
  • Değişiklikten sonra önbelleği temizledim.
  • Mobil görünümü de test ettim (cihaz koşulları için Akıllı Telefon Desteği).