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ı
Paketle gelen 7 hazır tema vardır. Her temada 34 .tpl
dosyası bulunur; her biri sitenin bir bölümünü üretir.
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.tpl | Ana sayfa iskeleti; diğer tüm çıktılar {content} yerine oturur |
shortstory.tpl | Haber listesindeki kısa makale |
fullstory.tpl | Tam makale sayfası |
comments.tpl | Yorumlar ve yorum ağacı |
addcomments.tpl | Yorum yazma formu |
relatednews.tpl | İlgili haberler |
topnews.tpl | Popüler / önemli haberler |
navigation.tpl | Sayfalama (listeler ve yorumlar) |
splitnewsnavigation.tpl | Çok sayfalı içerikte ileri/geri |
categorymenu.tpl | Kategori menüsü |
speedbar.tpl | Hız çubuğu (breadcrumb) |
static.tpl / static_print.tpl | Statik sayfalar ve yazdırma sürümü |
print.tpl | Haberin yazdırma sürümü |
search.tpl / searchresult.tpl / fastsearchresult.tpl | Arama formu, sonuçları ve hızlı arama |
login.tpl / registration.tpl / lostpassword.tpl | Giriş, kayıt, şifre kurtarma |
pm.tpl | Özel mesajlar |
poll.tpl / vote.tpl | Habere bağlı anket / sitedeki oylamalar |
tagscloud.tpl | Etiket bulutu |
stats.tpl | Site istatistikleri |
informer.tpl | RSS bilgilendirici |
info.tpl | Bilgi ve hata mesajları |
offline.tpl | Site geçici olarak kapalıyken |
banned.tpl | Engellenen ziyaretçi |
feedback.tpl | E-posta gönderme formu |
attachment.tpl | Dosya indirme |
userinfo.tpl / profile_popup.tpl | Üye profili / profil kartı |
addnews.tpl / preview.tpl | Haber ekleme / önizleme |
informer.tpl, rss.tpl | RSS çıktıları |
Bir sayfa nasıl oluşur?
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:
| Öncelik | Kaynak | Nası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
-
Yedek alın
Düzenlemeden önce tema klasörünün bir kopyasını alın.
.tpldosyaları düz metindir. - Yeni bir tema klasörü oluşturun Hazır temayı olduğu gibi kopyalayıp yeni ad verin. Böylece güncellemelerde orijinal bozulmaz.
-
Şablonu parçalara ayırın
Uzun dosyalar yerine
{include file="modules/sidebar.tpl"}ile alt şablonlar kullanın. -
Yorum ekleyin
Şablon içinde
{* bu bir yorumdur *}yazabilirsiniz; çıktıya dahil edilmez. - Önbelleği temizleyin Şablon değişikliği hemen görünmüyorsa panelden sistem önbelleğini boşaltın.
{* … *}
Ş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 | Örnek | Nerede 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).