Ana Sayfa Şablonu — main.tpl
main.tpl, sitenizin ana iskeletidir. Menü, kenar çubuğu, üst
panel, alt bilgi buradadır. Diğer tüm şablonların çıktısı {content} yerine
oturur — yani hangi sayfa açılırsa açılsın, ziyaretçi her zaman
main.tpl'i görür.
| Konu | Ayrıntı |
| İşleyen dosya | engine/modules/main.php |
| Çıktı | Doğrudan ekrana basılır ($tpl->result['main']) |
| Her sayfada mı? | Evet — özel çıktılar (RSS, yazdırma) hariç |
İskeletin temel etiketleri
| Etiket | İçeriği |
{content} |
Sayfanın içeriği. Diğer tüm modüllerin çıktısı buraya oturur.
Etiketi silerseniz site boş görünür. |
{info} |
Sayfaya özel bilgi/hata mesajı (varsa). |
{AJAX} |
Sayfanın ihtiyaç duyduğu satır içi JavaScript. Silmemelisiniz. |
{THEME} |
Temanızın tam adresi. Görsel/CSS/JS yollarında kullanın. |
{headers} |
Meta etiketleri ve stil/script bağlantıları. <head> içinde olmalı. |
{jsfiles} |
Script bağlantıları. Bunu kullanırsanız {headers} yalnızca meta basar. |
✕
Üç etiketi silmek siteyi bozar
{content}, {AJAX} ve {headers} (veya
{jsfiles}) etiketleri zorunludur. Özellikle
{AJAX} silinirse oylama, favori, yorum düzenleme gibi tüm AJAX işlevleri
sessizce çalışmaz hâle gelir.
Yerleşim blokları (widget'lar)
Bu etiketler, ilgili modül çalıştıysa dolar; çalışmadıysa boş kalır. Yani menüye
koymadığınız bir widget boş bir kutu bırakır — bu yüzden her birini bir koşul bloğuyla
sarmak iyi bir alışkanlıktır.
| Etiket | İçeriği | Kaynak |
{login} | Giriş/üye paneli | login.tpl |
{speedbar} | Hız çubuğu (breadcrumb) | speedbar.tpl |
{calendar} | Takvim / arşiv takvimi | calendar.php |
{archives} | Arşiv listesi | arşiv modülü |
{tags} | Etiket bulutu | tagscloud.php |
{vote} | Sitedeki oylama | vote.tpl |
{topnews} | Popüler / önemli haberler | topnews.tpl |
{related-news} | İlgili haberler (tam makale sayfasında) | relatednews.tpl |
Koşul blokları
| Blok | Ne zaman görünür? |
[navigation]…[/navigation] | Sayfalama varsa. Yoksa [not-navigation] görünür. |
[category=5]…[/category] | Yalnız belirtilen kategoride |
[not-category=5] | Belirtilen kategori dışında |
[static=hakkimizda] | Yalnız belirtilen statik sayfada |
[changeskin]…[/changeskin] | Tema değiştirme izni varsa |
[sort]…[/sort] | Sıralama değiştirme açıksa |
[custom=X]…[/custom] | Özel haber bloğu koşulu |
[customcomments=X]…[/customcomments] | Özel yorum bloğu koşulu |
Sayfalama ({navigation})
Haber listelerinde sayfalama iki etiketle gelir:
| Etiket | İçeriği |
{navigation} | Sayfalamanın kendisi (navigation.tpl çıktısı) |
{newsnavigation} | Haber navigasyonunun yerleşimi (haber modülüne özel) |
Blok sarmalayıcısıyla birlikte en güvenli kullanım:
[navigation]
<div class="pagination">
{navigation}
</div>
[/navigation]
Sosyal ağ blokları
Her sosyal ağ için bir koşul bloğu ve bir adres etiketi vardır. Adres tanımlı değilse blok
otomatik gizlenir:
| Blok | Etiket |
[vk] | {vk_url} |
[odnoklassniki] | {odnoklassniki_url} |
[facebook] | {facebook_url} |
[google] | {google_url} |
[mailru] | {mailru_url} |
[yandex] | {yandex_url} |
[telegram] | {telegram_url} |
[vk]
<a href="{vk_url}" rel="nofollow">Bizi VK'da takip edin</a>
[/vk]
Reklam ve RSS bilgilendirici
| Etiket | İçeriği |
{banner_GRUP}
[banner_GRUP]…[/banner_GRUP] |
Reklam bloğu. GRUP panelde tanımladığınız grup adıdır. |
{inform_AD} |
RSS bilgilendirici çıktısı. AD panelde tanımladığınız etikettir
(informer.tpl üretir). |
Favori etiketleri (giriş yapmış üyelerde dolar) main.tpl içinde de
kullanılabilir: {favorites}, [add-favorites],
[del-favorites]. Ayrıntı:
Favoriler.
İşlem sırası (neden önemli?)
main.php şablonu şu sırayla işler — bir etiketin neden boş geldiğini
anlamak için bu sıra işinize yarar:
-
main.tpl yüklenir
Global etiketler bu anda işlenir (
[group], cihaz koşulları vb.).
-
Hazır çıktılar bağlanır
{calendar}, {archives}, {tags}, {vote}, {login}, {speedbar} — bunlar başka modüllerin ürettiği çıktılardır.
-
Bloklar ve adresler set edilir
İlgili haber, tema değiştirme, sıralama, popüler haber, sosyal adresler.
-
{AJAX}, {info}, {content} bağlanır
Sayfanın asıl içeriği burada yerine oturur.
-
Şablon derlenir
Tüm süslü parantezli etiketler tek seferde değiştirilir.
-
JS/CSS listeleri tamamlanır
İçeriğe göre kod vurgulama, galeri, tembel yükleme, oynatıcı gibi dosyalar eklenir.
-
{headers} / {jsfiles} yerleştirilir
Meta etiketleri ve script bağlantıları sayfaya basılır.
-
{THEME} değiştirilir ve sayfa basılır
Son olarak tema adresi yerine konur ve çıktı gönderilir.
★
Doğru yerleşim kalıbı
Her widget'ı kendi koşuluyla sarmak, boş kutuları ve gereksiz "boş modül" sorgularını
engeller:
[customcomments=pop]
<aside class="widget">
<h3>En beğenilen yorumlar</h3>
{customcomments name="pop" order="rating" limit="5" cache="1h"}
</aside>
[/customcomments]
Sık yapılan hatalar
| Hata | Sonuç |
{content} silmek | Site boş; sayfa içeriği hiç görünmez. |
{AJAX} silmek | Oylama, favori, yorum işlemleri sessizce çalışmaz. |
{headers}/{jsfiles} silmek | Meta etiketleri ve script'ler kaybolur; sayfa bozulur. |
| Widget'ı koşulsuz koymak | Modül kapalıysa boş kutu kalır. |
| Görsel yollarında sabit adres kullanmak | Tema değiştirildiğinde görseller kırılır. {THEME} kullanın. |
Kontrol listesi
{content}, {AJAX}, {headers} yerinde.
- Tüm görsel/CSS/JS yolları
{THEME} ile başlıyor.
- Her widget bir koşul bloğuyla sarılmış.
- Sosyal bloklar kullanılıyor (
[vk] vb.), adresler tanımlı.
<head> içinde {headers} var (ya da {jsfiles} ayrı kullanılıyor).
- Değişiklikten sonra önbellek temizlendi.